我正在开发基于注释的spring配置,我也希望使用Hibernate。我有一个AnnotationSessionFactoryBean:
@Bean
public AnnotationSessionFactoryBean getSessionFactory() {
AnnotationSessionFactoryBean annotationSessionFactoryBean = new AnnotationSessionFactoryBean();
annotationSessionFactoryBean.setDataSource(getDataSource());
annotationSessionFactoryBean.setHibernateProperties(getHibernateProperties());
annotationSessionFactoryBean.setPackagesToScan("com.mobiusinversion.web");
return annotationSessionFactoryBean;
}
但现在在我的代码中,我如何在SessionFactory中自动装配,如:
@Transactional
@Repository
public class UserRepository {
@Autowired
private SessionFactory sessionFactory;
}
答案 0 :(得分:1)
AnnotationSessionFactoryBean
同时是InitializingBean
和FactoryBean
。这些是Spring作为bean生命周期的一部分进行处理的特殊接口。 InitializingBean
将提供afterProperties
设置来初始化bean,FactoryBean
将提供getObject
来检索bean。然后将该bean添加到上下文中。
AnnotationSessionFactoryBean
生成一个SessionFactory
bean,所以,是的,你所要做的就是自动装配它
@Autowired
private SessionFactory sessionFactory;
这些都在文档中解释:
你也应该通过javadoc。