zu konfigurieren Ich habe diese tutorial verfolgen Hibernate in meine Anwendung zu implementieren. Allerdings kann ich die darin genannten application.properties nicht lesen. Ich habe die doc auch gelesen, es wird erwähnt:So konfigurieren Sie Spring Boot, um Hibernate-Konfiguration mit application.properties
- A/config Unterverzeichnis des aktuellen Verzeichnisses.
- Das aktuelle Verzeichnis
- A Classpath/config Paket
- Die Classpath Wurzel
Aber was ist das aktuelle Verzeichnis mit Feder boot?
Ich bin auch nicht mit den folgenden Abhängigkeiten (siehe Tutorial), könnte mein Problem gelöst werden, indem Sie sie verwenden? Es verursacht eine Abhängigkeit Zusammenstoß:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
auch einfach applications.properties in src/main/resources setzen, wie im Tutorial ausführlich funktioniert nicht. Es funktioniert, wenn ich die folgende (das ist, was ich mit Spring Security verwenden) manuell einstellen:
@Bean(name = "dataSource")
public DriverManagerDataSource dataSource() {
DriverManagerDataSource driverManagerDataSource = new DriverManagerDataSource();
driverManagerDataSource.setDriverClassName("com.mysql.jdbc.Driver");
driverManagerDataSource.setUrl("jdbc:mysql://localhost:3306/hibernate");
driverManagerDataSource.setUsername("root");
driverManagerDataSource.setPassword("root");
return driverManagerDataSource;
}
Aber wenn ich den vorherigen Code zu entfernen, auf jeden Fall ist es nicht applications.properties finden:
Parameter 0 of constructor in org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration required a bean of type 'javax.sql.DataSource' that could not be found. - Bean method 'dataSource' not loaded because @ConditionalOnProperty (spring.datasource.jndi-name) did not find property 'jndi-name' - Bean method 'dataSource' not loaded because @ConditionalOnBean (types: org.springframework.boot.jta.XADataSourceWrapper; SearchStrategy: all) did not find any beans
Würde jemand wissen, wie man dieses Problem löst oder einen Vorsprung hat? Vielen Dank!
Edit:
So ein wenig mehr Erklärungen darüber, was ich getan habe. Hier ist die Architektur meines Projekts: http://imgur.com/a/V3f7p
Wie gesagt, mein pom ist anders, hier ist es: http://pastebin.com/fjrfKcVX
ich eine WebMvcConfigurerAdapter haben, die nicht mit irgendetwas stören sollte:
@Configuration
@EnableWebMvc
public class MvcConfiguration extends WebMvcConfigurerAdapter {
@Bean(name = "simpleMappingExceptionResolver")
public SimpleMappingExceptionResolver createSimpleMappingExceptionResolver() {
SimpleMappingExceptionResolver r = new SimpleMappingExceptionResolver();
Properties mappings = new Properties();
mappings.setProperty("ClassNotFoundException", "greeting");
mappings.setProperty("SQLException", "greeting");
mappings.setProperty("IOException", "greeting");
r.setExceptionMappings(mappings); // None by default
r.setDefaultErrorView("error"); // No default
r.setExceptionAttribute("ex"); // Default is "exception"
r.setWarnLogCategory("example.MvcLogger"); // No default
return r;
}
@Override
public void addViewControllers(ViewControllerRegistry registry) {
/* registry.addViewController("/accueil").setViewName("accueil");
registry.addViewController("/").setViewName("accueil");
registry.addViewController("/hello").setViewName("hello");
registry.addViewController("/login").setViewName("login");*/
registry.addViewController("/accessdenied").setViewName("accessdenied");
}
/* @Bean(name = "dataSource")
public DriverManagerDataSource dataSource() {
DriverManagerDataSource driverManagerDataSource = new DriverManagerDataSource();
driverManagerDataSource.setDriverClassName("com.mysql.jdbc.Driver");
driverManagerDataSource.setUrl("jdbc:mysql://localhost:3306/ai_15");
driverManagerDataSource.setUsername("root");
driverManagerDataSource.setPassword("root");
return driverManagerDataSource;
}*/
}
Abgesehen davon ist es identisch und nichts stört Hibernate. Ich habe gerade alles als "Test" umbenannt, zB TestDAO.java.
Edit 2: my application.properties Datei ist mit dem in dem Tutorial identisch, mit Ausnahme der folgenden Zeile:
spring.datasource.url = jdbc:mysql://localhost:3306/hibernate
"einfach applications.properties in src/main/resources wie im Tutorial beschrieben funktioniert nicht." Hilft nicht. Das Tutorial funktioniert so, dass Sie erklären sollten, was Sie getan haben, damit wir verstehen, was schief gelaufen ist. –
Ich habe meine Frage bearbeitet, um weitere Informationen hinzuzufügen. Um die Hauptunterschiede zusammenzufassen, sind meine 'WebSecurityConfig' und meine pom.xml. – Chuck
Der Schnitt hilft mir nicht, ich habe Angst. Sie geben an, dass Sie "application.properties" verwendet haben, wie im Tutorial beschrieben, aber das funktioniert nicht. Wir wissen immer noch nicht, was Sie in application.properties eingegeben haben. Sie können Ihre App auch im Debug-Modus ('--debug') ausführen, um den Autokonfigurationsbericht zu erhalten: Dies sollte Ihnen sagen, warum die' DataSource' nicht konfiguriert wurde. –