Spring 5 + Hibernate 5: как SessionFactory автоматически подключается с LocalSessionFactoryBean - PullRequest
0 голосов
/ 23 сентября 2019

Я разрабатываю REST apis с использованием Spring MVC 5.0.8 и Hibernate 5.2.11

Я создал AppConfig класс, в котором я создал getSessionFactory() метод с типом возврата LocalSessionFactoryBean

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

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

        return factoryBean;
    }

И внутри DaoImpl класс у меня с автозапуском 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 становится автоматически подключенным.

Поскольку я не возвращаю factoryBean.getObject(), который отвечает за возвращение SessionFactory объекта типа.

И @Autowire будет выглядетьдля SessionFactory введите на фабрике Бобов.

Так как же происходит Автоматическая проводка ?

Ответы [ 2 ]

1 голос
/ 23 сентября 2019

Поскольку после инициализации LocalSessionFactoryBean был вызван метод buildSessionFactory. Ссылка на звонок .

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

После этого компонент SessionFactory будет находиться в ApplicationContext.

0 голосов
/ 23 сентября 2019

Все бобы Spring загружены в ApplicationContext.Попробуйте прочитать здесь больше https://docs.spring.io/spring/docs/1.2.x/reference/beans.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...