首页 > 解决方案 > 使用特定的 application.properties 自动装配

问题描述

我想使用具有多个实现和许多不同 application.properties 的接口。如果活动的 application-a.properties 他应该自动装配实现 a 否则 b。所以我得到了一个这样的界面:

public interface ab {
void dosomething();
}

和课程:

public a() implements ab{
@Override
void do something(){
    System.out.println("Hello here is a");
}
public b() implements ab{
@Override
void do something(){
    System.out.println("Hello here is b");
}

我知道有@Profile() 表示法,但有没有类似@Profile(!"a") 的东西?

标签: javaspring

解决方案


但是有类似@Profile(!"a") 的东西吗? 文档

如果给定的配置文件以 NOT 运算符 (!) 为前缀,则如果配置文件不活动,则将注册带注释的组件 — 例如,给定 @Profile({"p1", "!p2"}),如果配置文件“p1”处于活动状态,或者配置文件“p2”未处于活动状态。


推荐阅读