java - 如何使用 Spring 配置基于属性文件配置一个实现?

标签 java spring

我有一个可以使用服务的两种实现的应用程序:

package test;

public interface MyService {
    void doSomething();
}


package test;

public class MyServiceA implements MyService {

    private final String whatever;

    public MyServiceA(final String whatever) {
        this.whatever = whatever;
    }

    @Override
    public void doSomething() {
        System.out.println("MyServiceA did "+whatever);
    }
}


package test;

public class MyServiceB implements MyService {

    private final String what;

    public MyServiceB(final String what) {
       this.what = what;
    }

    @Override
    public void doSomething() {
        System.out.println("MyServiceB did "+what);
    }
}

具有不同的配置。

我想选择与系统属性一起使用的实现。

我希望每个实现都有它自己的属性文件和它自己的 spring 配置中的配置。所以我可以在不使用时完全删除所有未使用的配置。

如何在不需要未配置实现的属性文件的情况下配置这两个实现中的任何一个?

欢迎针对此问题提供其他解决方案。

最佳答案

您可以为不同的配置文件使用配置文件和不同的 @Configuration 类。 http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#beans-definition-profiles-java

关于java - 如何使用 Spring 配置基于属性文件配置一个实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39562453/

相关文章:

java - 仅创建一个小程序实例并更新其余实例

java - 应用程序执行时不使用 spring.cloud.config 的 application.yml 中的设置

java - Java虚拟机中静态方法的调用

java - org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V

java - 使用pdfbox从pdf中提取文本时出错

java - ByteBuffer 到 int 数组(每个字节)

Spring 4.1.6 JdbcTemplate 阻塞和同步?

java - 如何修复Java Spark提交错误: NoSuchMethodError: javax.validation.BootstrapConfiguration.getClockProviderClassName()Ljava/lang/String

java - 使用 PropertiesFactoryBean 进行属性扩展

java开发和重新部署