Meine letzte Ziel ist es, eine Spring-Boot-Anwendung zu erstellen, aber ohne XML-Konfigurationsdateien (oder so wenig wie möglich), also möchte ich einige XML-Dateien (zB web.xml) vermeiden einige Bean-Definitionsteile.Hibernate SessionFactory Annotation-basierte Konfiguration
Und hier kommt härterer Teil.
Ich mag eine Sessionbohne in Klassen mit @Autowired Anmerkung injizieren, aber jedes Mal wenn ich versuche Anwendung zu starten erhalte ich:
org.springframework.beans.factory.UnsatisfiedDependencyException: Fehler mit dem Namen Erstellen Bean ' temperatureController ': Unzufriedene Abhängigkeit ausgedrückt durch Feld' sessionFactory '; verschachtelte Ausnahme ist org.springframework.beans.factory.BeanCreationException: Fehler beim Erstellen einer Bean mit dem Namen 'sessionFactory': FactoryBean hat eine Exception bei der Objekterstellung ausgelöst; verschachtelte Ausnahme ist java.lang.IllegalStateException: EntityManagerFactory nicht null sein muss
Ok, ich verstehe, dass Frühling keine Sessionbohne hat, weil es keine EntityManagerFactory hat.
Also ich würde alle Vorschläge, wie Sie das lösen können, aber nur mit der Konfiguration durch Anmerkungen schätzen.
Bisher hat ich gelesen ähnlichen Beitrag Mine über eine Bohne auf diese Weise in @Configuration Klasse angeben:
@Bean
public HibernateJpaSessionFactoryBean sessionFactory() {
return new HibernateJpaSessionFactoryBean();
}
Und dann das Hinzufügen dieser Zeile in Properties-Datei:
spring.jpa.properties .hibernate.current_session_context_class = org.springframework.orm.hibernate4.SpringSessionContext
Und schließlich @Autowired mit Session sollte gut funktionieren. Aber natürlich funktioniert es nicht.
Irgendwelche Ideen was soll ich anders/besser machen?
ist Meine Eigenschaften Datei sehr einfach:
spring.jpa.show-sql = true spring.datasource.password = mysql spring.datasource.username = mysql spring.datasource.testWhileIdle = true spring.jpa.hibernate.ddl-auto = update spring.datasource.validationQuery = SELECT 1 spring.datasource.url = jdbc: mysql: // localhost: 3306/sys spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect spring.jpa.hibernate.naming-structure = org.hibernate.cfg.Imp rovedNamingStrategy spring.jpa.properties.hibernate.current_session_context_class = org.springframework.orm.hibernate4.SpringSessionContext