如何从AnnotationSessionFactoryBean自动装配SessionFactory

时间:2014-04-04 16:20:55

标签: java spring hibernate annotations

我正在开发基于注释的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;

}

1 个答案:

答案 0 :(得分:1)

AnnotationSessionFactoryBean同时是InitializingBeanFactoryBean。这些是Spring作为bean生命周期的一部分进行处理的特殊接口。 InitializingBean将提供afterProperties设置来初始化bean,FactoryBean将提供getObject来检索bean。然后将该bean添加到上下文中。

AnnotationSessionFactoryBean生成一个SessionFactory bean,所以,是的,你所要做的就是自动装配它

@Autowired
private SessionFactory sessionFactory;

这些都在文档中解释:

你也应该通过javadoc。