gpt4 book ai didi

java - Spring 5 + hibernate 5 : How SessionFactory is getting Autowired with LocalSessionFactoryBean

转载 作者:行者123 更新时间:2023-12-02 09:30:00 26 4
gpt4 key购买 nike

我正在使用 Spring MVC 5.0.8 和 Hibernate 5.2.11 开发 REST api

我创建了AppConfig类,在其中创建了返回类型为LocalSessionFactoryBeangetSessionFactory()方法

    @Bean
public LocalSessionFactoryBean getSessionFactory() {
LocalSessionFactoryBean factoryBean = new LocalSessionFactoryBean();

factoryBean.setDataSource(dataSource());
factoryBean.setPackagesToScan("saptarsi.auditdb.model");
factoryBean.setHibernateProperties(hibernateProperties());

return factoryBean;
}

DaoImpl 类中,我 Autowiring 了 SessionFactory

@Repository
public class LOcaldbDaoImpl implements LocaldbDao {

@Autowired
private SessionFactory sessionFactory;

private Session getCurrentSession() {
return sessionFactory.getCurrentSession();
}

@Override
public void getAllApiDetails(HttpRequestEntity<ApiDetailsFilterDto> requestEntityDto) {
}

}

一切正常

但我想知道 SessionFactory 是如何 Autowiring 的。

因为我没有返回factoryBean.getObject(),它负责返回SessionFactory类型对象。

并且@Autowire将在Bean工厂中查找SessionFactory类型。

那么 Autowiring 是如何发生的?

最佳答案

因为在初始化LocalSessionFactoryBean之后,调用了buildSessionFactory方法。 Link to calling

protected SessionFactory buildSessionFactory(LocalSessionFactoryBuilder sfb) {
return (this.bootstrapExecutor != null ? sfb.buildSessionFactory(this.bootstrapExecutor) :
sfb.buildSessionFactory());
}

之后,SessionFactory bean 将位于 ApplicationContext 中。

关于java - Spring 5 + hibernate 5 : How SessionFactory is getting Autowired with LocalSessionFactoryBean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58069083/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com