2016-12-31 4 views
0

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

+0

"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. –

+0

Ich habe meine Frage bearbeitet, um weitere Informationen hinzuzufügen. Um die Hauptunterschiede zusammenzufassen, sind meine 'WebSecurityConfig' und meine pom.xml. – Chuck

+0

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. –

Antwort

0

Dies ist, wie Sie Ihre Immobilie Datei in Datenbank Config angeben müssen XML.

jdbc.properties ist der Name der Eigenschaftendatei, die unter Ressourcen platziert wird.Dann können Sie auf die Eigenschaften wie folgt zugreifen:

Hinweis: Alle meine Eigentum Name beginnen mit jdbc. deshalb werden diese als jdbc.name bezeichnet

+0

Danke für die Antwort. Wo ist die Datei config.xml? Ich kann es nirgendwo in meinem Projekt finden. – Chuck

+0

Ohkay, Sie verwenden Anmerkungen. Ist Ihre Property-Datei genau so wie in der Anleitung, die Sie erwähnt haben? –

+0

Ja, es ist dasselbe, außer dass ich 'spring.datasource.url' geändert habe, um auf meine db zu zeigen. – Chuck

Verwandte Themen