【发布时间】:2022-01-31 20:23:59
【问题描述】:
我有以下使用限定符和配置文件dev。当!dev Service1 将使用基于限定符的FooImpl1 而Service2 将使用FooImpl2。当配置文件为dev 时,我希望两个服务都使用FooImpl3。我怎样才能做到这一点?
interface Foo {
public void fooToYou();
}
@Component("fooImpl1")
@Profile("!dev")
public class FooImpl1 implements Foo {
@Override
public void fooToYou() {}
}
@Component("fooImpl2")
@Profile("!dev")
public class FooImpl2 implements Foo {
@Override
public void fooToYou() {}
}
@Component("fooImpl3")
@Profile("dev")
public class FooImpl3 implements Foo {
@Override
public void fooToYou() {}
}
public class Service1 {
@Autowired
public void Service1(@Qualifier("fooImpl1") Foo foo) {}
}
public class Service2 {
@Autowired
public void Service1(@Qualifier("fooImpl2") Foo foo) {}
}
【问题讨论】:
标签: java spring spring-boot