在我的应用我有一个默认实现接口,是服务:负载服务只有在没有其他服务
public interface MessageGenerator {
Message getMessage();
}
@Service
public class PropertiesMessageGenerator implements MessageGenerator {
@Override
public Message getMessage() {
return doSmth();
}
}
这项服务是由弹簧靴子#ComponentScan
加载和一切工作正常,直到我有加入@Profile
@Service
@Profile("p1")
public class ProfileMessageGenerator implements MessageGenerator {
@Override
public Message getMessage() {
return doSmthWithProfile();
}
}
新的实现我怎样才能停止加载到DI服务PropertiesMessageGenerator
时ProfileMessageGenerator
是上下文?
PS 我不能在MultipleMessages
上使用@Profile("default")
,因为我有一次加载的更多配置文件。
'''@ConditionalOnMissingBean(MessageGenerator.class)'''完成了这项工作。谢谢 – MAGx2