具有以下类结构:
public abstract class A {
String someProperty = "property"
public abstract void doSomething();
}
@Service
public class Aa extends A {
@Override
public abstract void doSomething() {
System.out.println("I did");
}
}
@Service
public class Ab extends A {
@Override
public abstract void doSomething() {
System.out.println("I did something else");
}
}
我需要一种方法根据 中的属性告诉 Spring 在我的 Foo 服务中哪个 A
具体类 Autowire
>属性文件。
@Service
public class Foo {
@Autowire
private A assignMeAConcreteClass;
}
在我的 properties
文件中我有这个:
should-Aa-be-used: {true, false}
最佳答案
删除@Service
注解,改写@Bean
-annotated method在读取属性的配置类中,并返回适当的 A
实例。
关于java - 如何指定抽象类的具体实现版本在 Spring 中 Autowiring ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53709734/