Я делаю hibernate, весенний пример с использованием java-конфигураций. Мой файл конфигурации:как весна autowired sessionFactory объект, даже если нет экземпляра sessionFactory присутствует
@Bean
@Autowired
public HibernateTransactionManager transactionManager(SessionFactory s) {
HibernateTransactionManager txManager = new HibernateTransactionManager();
txManager.setSessionFactory(s);
return txManager;
}
@Bean
public LocalSessionFactoryBean sessionFactory() {
LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
sessionFactory.setDataSource(dataSource());
sessionFactory.setPackagesToScan(new String[] { "dto" });
sessionFactory.setHibernateProperties(hibernateProperties());
return sessionFactory;
}
Работает отлично. Нет проблем с этим, но когда я вручную попытаться установить SessionFactory параметр для trasactionManager, как показано ниже ..
@Bean
@Autowired
public HibernateTransactionManager transactionManager(SessionFactory s) {
HibernateTransactionManager txManager = new HibernateTransactionManager();
txManager.setSessionFactory(sessionFactory());
return txManager;
}
IDE показ - The method setSessionFactory(SessionFactory) in the type HibernateTransactionManager is not applicable for the arguments (LocalSessionFactoryBean)
так я создал SessionFactory как ниже
@Bean
@Autowired
public SessionFactory sessionFactory(DataSource dataSource) {
LocalSessionFactoryBuilder sessionFactory = new LocalSessionFactoryBuilder(dataSource);
sessionFactory.addProperties(hibernateProperties());
sessionFactory.scanPackages("dto");
return sessionFactory.buildSessionFactory();
}
и перешел в trasactionManager. Это сработало.
Мой вопрос в том, как весна автоматически отлаживала объект sessionFactory, даже если в первом подходе нет экземпляра sessionFactory?
Просьба уточнить ..
'LocalSessionFactoryBean' не является' SessionFactory', это 'FactoryBean' для' SessionFactory', см. [Javadoc] (http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework /orm/hibernate4/LocalSessionFactoryBean.html) –
Да, я пропустил этот момент. Спасибо – kasinavijay
Но как весна autwires SessionFactory bean to transactionManager contructor? – kasinavijay