他们建议在注释scanBasePackages
中使用@SpringBootApplication
,它可以找到自动连线所需的所有bean。
问题说明
但是,在其中一项服务CategoryServiceImpl
中,有一个autowired
dao categoryDao
,其中包含@PersistenceContext
实体管理员。
我的春季启动应用程序无法找到EntityManagerFactory
这是我的申请破产的重点。
这是一个非常直接的应用程序(我正在努力学习)。 我有两个简单的项目。
第一个是其余控制器,第二个是持久化实体的JPA项目。
第一个项目:REST控制器项目设置
Application.java(切入点)
@SpringBootApplication(scanBasePackages = {
"com.example.resourcecontroller",
"com.example.service",
"com.example.dao",
"javax" })
public class Application {
}
的pom.xml
<groupId>org.springframework</groupId>
<artifactId>gs-rest-service</artifactId>
<version>0.1.0</version>
第二个项目:JPA SPRING HIBERNATE
的pom.xml
<groupId>com.example</groupId>
<artifactId>spring-hibernate-jpa-example</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<dependency>
<groupId>com.example</groupId>
<artifactId>spring-hibernate-jpa-example</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
服务类
@Configuration
@EnableTransactionManagement
@ComponentScans(value = { @ComponentScan("com.example.dao"),
@ComponentScan("com.example.service") })
@Service
public class CategoryServiceImpl implements CategoryService {
@Autowired
private CategoryDao categoryDao;
}
DAO
@Repository
public class CategoryDaoImpl implements CategoryDao {
@PersistenceContext
private EntityManager em;
}
**申请配置**
@Configuration
@EnableTransactionManagement
@ComponentScans(value = { @ComponentScan("com.example.dao"),
@ComponentScan("com.example.service") })
public class AppConfig {
@Bean
public LocalEntityManagerFactoryBean geEntityManagerFactoryBean() {
LocalEntityManagerFactoryBean factoryBean = new LocalEntityManagerFactoryBean();
factoryBean.setPersistenceUnitName("LOCAL_PERSISTENCE");
return factoryBean;
}
}