Моя недавняя цель - создать весеннее загрузочное приложение, но без каких-либо файлов конфигурации XML (или как можно меньше), поэтому я хотел бы избежать использования некоторых XML-файлов (например, web.xml), особенно для некоторые части определения компонента.Конфигурация на основе аннотации Hibernate SessionFactory
И здесь идет более жесткая часть.
Я хочу, чтобы ввести с помощью @Autowired аннотации к SessionFactory боба на классы, но каждый раз, когда я пытаюсь запустить приложение, я получаю:
org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании боба с именем ' temperatureController ': неудовлетворенная зависимость, выраженная через поле «sessionFactory»; Вложенное исключение - org.springframework.beans.factory.BeanCreationException: ошибка при создании компонента с именем sessionFactory: FactoryBean выбрал исключение для создания объекта; вложенное исключение java.lang.IllegalStateException: EntityManagerFactory не должен быть пустым
Хорошо, я понимаю, что весна не SessionFactory фасоли, потому что он не имеет EntityManagerFactory.
Так что я был бы признателен за любые предложения, как это решить, но только с настройкой аннотаций.
До сих пор я читал подобный пост помоему об указании в классе @Configuration боб этот путь:
@Bean
public HibernateJpaSessionFactoryBean sessionFactory() {
return new HibernateJpaSessionFactoryBean();
}
И затем добавить эту строку в файл свойств:
spring.jpa.properties .hibernate.current_session_context_class = org.springframework.orm.hibernate4.SpringSessionContext
И, наконец, @Autowired с SessionFactory должен работать хорошо. Но, конечно, для меня это не работает.
Любые идеи, что мне делать другим/лучше?
Мои свойства файла очень простой:
spring.jpa.show-SQL = верно spring.datasource.password = MySQL spring.datasource.username = MySQL spring.datasource.testWhileIdle = истина spring.jpa.hibernate.ddl-авто = обновление spring.datasource.validationQuery = ВЫБРАТЬ 1 spring.datasource.url = JDBC: MySQL: // локальный: 3306/SYS spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.Imp rovedNamingStrategy spring.jpa.properties.hibernate.current_session_context_class = org.springframework.orm.hibernate4.SpringSessionContext