Java 无法“自动连线”,未找到“SessionFactory”类型的bean
我正在尝试使用SpringHibernate运行向数据库添加数据的测试。我在Java 无法“自动连线”,未找到“SessionFactory”类型的bean,java,spring,hibernate,Java,Spring,Hibernate,我正在尝试使用SpringHibernate运行向数据库添加数据的测试。我在HibernateConfig.java中为函数getSessionFactory分配了@Bean,但当我在DAOImp文件中再次调用时,我发现错误无法自动连线。未找到“SessionFactory”类型的bean。 HibernateConfig.java CategoryDAOImp.java 如何修复它?您的HibernateConfig类在哪个包中找到 这个 没有被执行 为了确认,您可以执行“System.out
HibernateConfig.java
中为函数getSessionFactory分配了@Bean
,但当我在DAOImp文件中再次调用时,我发现错误无法自动连线。未找到“SessionFactory”类型的bean。
HibernateConfig.java
CategoryDAOImp.java
如何修复它?您的
HibernateConfig类在哪个包中找到
这个
没有被执行
为了确认,您可以执行“System.out.println(“XXX”)”这样的操作:
@Bean
public SessionFactory getSessionFactory(DataSource dataSource){
System.out.println("sessionFactory bean is getting created")
...
}
并检查在启动应用程序时是否可以在控制台中看到它
要确保它被提取,最简单的方法是确保在您的根类中有一个@ComponentScan
,可以在这里找到com.huyvt.onlineshopping
@ComponentScan
不带参数的命令Spring扫描当前
包及其所有子包
如果您使用的是Spring Boot,则当您使用@SpringBootApplication
时,会自动为您添加此选项
另外,在main
方法中,您可以检查创建的bean,如下所示:
private static ApplicationContext applicationContext;
public static void main(String[] args) {
applicationContext =
new AnnotationConfigApplicationContext(SpringComponentScanApp.class);
for (String beanName : applicationContext.getBeanDefinitionNames()) {
System.out.println(beanName);
}
}
您的HibernateConfig类在哪个包中找到
这个
没有被执行
为了确认,您可以执行“System.out.println(“XXX”)”这样的操作:
@Bean
public SessionFactory getSessionFactory(DataSource dataSource){
System.out.println("sessionFactory bean is getting created")
...
}
并检查在启动应用程序时是否可以在控制台中看到它
要确保它被提取,最简单的方法是确保在您的根类中有一个@ComponentScan
,可以在这里找到com.huyvt.onlineshopping
@ComponentScan
不带参数的命令Spring扫描当前
包及其所有子包
如果您使用的是Spring Boot,则当您使用@SpringBootApplication
时,会自动为您添加此选项
另外,在main
方法中,您可以检查创建的bean,如下所示:
private static ApplicationContext applicationContext;
public static void main(String[] args) {
applicationContext =
new AnnotationConfigApplicationContext(SpringComponentScanApp.class);
for (String beanName : applicationContext.getBeanDefinitionNames()) {
System.out.println(beanName);
}
}
@Autowired告诉应用程序上下文在DAOImpl中注入SessionFactory的实例。请在您的应用程序context.xml中启用
,以便可以扫描类中的@Controller、@Service等批注。在dispatcher.xml中,我添加了2个
是Controller和daoimp,可能缺少?另外,请提供完整的错误跟踪getSessionFactory函数,我错过了scanPackage方法,因此无法初始化的SessionFactoryCategoryDAOImpl@Autowired告诉应用程序上下文在DAOImpl中注入SessionFactory的实例。请在您的应用程序context.xml中启用
,以便可以扫描类中的@Controller、@Service等批注。在dispatcher.xml中,我添加了2个
是Controller和daoimp,可能缺少?另外,请提供完整的错误跟踪getSessionFactory函数,我错过了scanPackage方法,因此无法为CategoryDAOImpl初始化SessionFactory
private static ApplicationContext applicationContext;
public static void main(String[] args) {
applicationContext =
new AnnotationConfigApplicationContext(SpringComponentScanApp.class);
for (String beanName : applicationContext.getBeanDefinitionNames()) {
System.out.println(beanName);
}
}