Spring Boot, @Autowire in eine nicht verwaltete Klasse mit @Configurable und Ladezeitweberei
Ich habe eine Sammlung nicht verwalteter Klassen, die ich außerhalb von Spring instanziiert habe. Ich habe versucht, Spring AOP mit Ladezeit zu verwende@Autowire
eine Bohne in diese Klassen, aber bisher kein Glück gehabt.
Ich habe mit Tomcat 8 und Spring Boot 1.2.0 getestet.
My@Configuration
wo ich versuche, Klasse einzurichten, sieht so aus:
@Configuration
@PropertySource("classpath:application.properties")
@EnableSpringConfigured
@EnableLoadTimeWeaving
public class Config
InnerhalbConfig
Ich definiere die Bohne, die ich möchte@Auotwire
in meine nicht verwalteten Klassen:
@Bean
public StateProvider stateProvider() {
//setup bean
return new DynamoStateProviderImpl( );
}
Die nicht verwaltete Bean sieht folgendermaßen aus:
@Configurable(autowire = Autowire.BY_TYPE, dependencyCheck = true, preConstruction = true)
public class StateOutput implements UnifiedOutput {
@Autowired
private StateProvider stateProvider;
Und ich habe die folgenden Abhängigkeiten in meinem Pom
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-agent</artifactId>
<version>2.5.6.SEC03</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>3.0.0</version>
</dependency>
Bis jetzt habe ich noch nichts gesehen, was in @ injiziert wurdstateProvider
oder konnte Informationen aus den Protokollen abrufen. Ich habe auch versucht, Setter-Injektion mit
@Autowired
public void setStateProvider(StateProvider stateProvider){
this.stateProvider = stateProvider;
}
Vielen Dan