Ich habe eine Sammlung von nicht verwalteten Klassen, die ich außerhalb von Spring instanziiert bin. Ich habe versucht, Spring AOP mit Ladezeit @Autowire
eine Bohne in diese Klassen zu weben, aber bisher noch kein Glück gehabt.Spring Boot, @Autowire in eine nicht verwaltete Klasse mit @Configurable und Ladezeit Weben
Ich habe mit Tomcat 8 und Spring Boot 1.2.0 getestet.
Mein @Configuration
, wo ich versuchen Klasse einzurichten sieht wie folgt aus:
@Configuration
@PropertySource("classpath:application.properties")
@EnableSpringConfigured
@EnableLoadTimeWeaving
public class Config
Innen Config
ich die Bohne definiere ich zu @Auotwire
in meine nicht verwalteten Klassen wollen:
@Bean
public StateProvider stateProvider() {
//setup bean
return new DynamoStateProviderImpl();
}
Die unmanaged Bohne aussieht wie folgt:
@Configurable(autowire = Autowire.BY_TYPE, dependencyCheck = true, preConstruction = true)
public class StateOutput implements UnifiedOutput {
@Autowired
private StateProvider stateProvider;
Und ich habe folgende deps 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>
Bisher habe ich nicht in der Lage, etwas zu sehen injizierte in stateProvider
oder in der Lage gewesen, irgendwelche Informationen aus den Protokollen zu ziehen. Ich habe auch Setter Stil Injektion mit
@Autowired
public void setStateProvider(StateProvider stateProvider){
this.stateProvider = stateProvider;
}
Dank