Spring Boot ConflictingBeanDefinitionException: Anmerkungsspezifizierter Bean-Name für die @Controller-Klasse

8

Ich erhalte den ConflictingBeanDefinitionException-Fehler in meiner Spring-Boot-Anwendung. Ich bin mir nicht ganz sicher, wie ich das angehen soll. Ich habe mehrere mit Anmerkungen versehene @Configuration-Klassen, die dabei helfen, Thymeleaf, Spring Security und Web einzurichten. Warum versucht die Anwendung, den HomeController zweimal einzurichten? (Und wo versucht es das?)

Der Fehler ist:

%Vor%

Mein Springboot-Hauptanwendungsinitialisierer:

%Vor%

Meine Datenbankkonfigurationsdatei:

%Vor%

Meine Thymeleaf-Konfigurationsdatei:

%Vor%

}

Meine Web-Konfigurationsklasse:

%Vor%

Mein Controller (bei einem Fehler beim Einrichten des Controllers)

%Vor%

Was könnte den ConflictingBeanDefinitionException-Fehler für meine Controller-Klasse verursachen?

    
Timothy Tuti 13.02.2015, 11:10
quelle

4 Antworten

5

Wie ich herausfand, besteht die Lösung darin, die doppelte Initialisierung zu deaktivieren, indem ein Filter in den Komponentenscan eingefügt wird. In meinem Fall:

%Vor%     
Timothy Tuti 13.02.2015, 16:03
quelle
12

Ich stieß auf das gleiche Problem, aber aus einem anderen Grund.

Dies kann auch auftreten, wenn Sie Ihre Klassen in Ihrem Projekt verschieben und nicht sauber machen.

Ich benutze Gradle mit Spring-Boot-Plugin. Jetzt laufe ich normalerweise:

%Vor%     
mchlstckl 22.12.2015 15:52
quelle
0

Es sieht so aus, als hätten Sie zwei entityManagerFactory, eine, die Sie automatisch ansteuern werden, und eine, die Sie programmatisch als Bean auflösen:

%Vor%

Ich denke, Sie brauchen nur Ihre konfigurierte Factory in entityManagerFactory () -Methode.

    
sven.kwiotek 13.02.2015 11:55
quelle
0

Ich hatte das gleiche Problem mit einer generierten WAR-Datei vom Spring-Boot. Die genehmigte Lösung (Timothy Tutis eigene Lösung) funktionierte für mich nicht ganz so wie sie ist, aber ich habe sie ein wenig optimiert und es hat funktioniert. Ich habe meiner Application.java gerade die folgende Zeile hinzugefügt:

@ComponentScan(basePackages = { "com.mypackage" })

Als Referenz hier meine volle Application.java

%Vor%     
lotif 22.04.2015 16:24
quelle