Ich frage mich, warum die Feldinjektion in der Klasse @SpringBootApplication
funktioniert und die Konstruktorinjektion nicht.
Mein ApplicationTypeBean
funktioniert wie erwartet, aber wenn ich eine Konstruktorinjektion von CustomTypeService
haben möchte, erhalte ich diese Ausnahme:
Gibt es einen Grund, warum es bei @SpringBootApplication
class nicht funktioniert?
Meine SpringBootApplication-Klasse:
%Vor%Meine @Service-Klasse:
%Vor%Meine @Component-Klasse:
%Vor% SpringBootApplication
ist eine Meta-Anmerkung, die:
Also baiscally, Ihre ThirdPartyGlobalAndCustomTypesApplication
ist auch eine Spring Configuration
-Klasse. As Configuration
s javadoc sagt:
@Configuration wird daher mit @Component meta-kommentiert @Configuration-Klassen sind Kandidaten für das Scannen von Komponenten (in der Regel mit Spring XML-Element) und Daher können Sie auch @ Autowired / @ Inject am Feld nutzen und Methodenebene (, aber nicht auf der Konstruktorebene ).
Sie können also die Konstruktorinjektion nicht für Configuration
-Klassen verwenden. Offensichtlich wird es in Version 4.3 behoben, basierend auf dieser Antwort und dieser jira-Ticket .
Tags und Links java spring spring-boot