我有两个方法,实现方式因环境(dev/prod(而异。使用application.properties中的变量是个好主意吗?例如:
production-mode:true
并使用它:
@Value("${production-mode}")
private boolean isProd;
...
if (isProd) {
methodForProduction();
} else {
methodForDevelopment();
}
你有什么建议吗?或者你能告诉我一些有用资源的方向吗?
Spring引导附带了一个配置文件管理系统,允许您根据这些配置文件激活或交换功能和行为。这是官方文件的链接。
你可以做的是创建一个接口和2个这样的实现:
public interface MyClass {
void myMethod();
}
public class MyClassForDevelopment implements MyClass {
@Override
public void myMethod() { // your code for developement }
}
public class MyClassForProduction implements MyClass {
@Override
public void myMethod() { // your code for production }
}
并使用Spring引导的配置如下:
@Configuration
public class MyConfiguration {
@Bean
@Profile("dev")
public MyClass myClassDev() { return new MyClassForDevelopment(); }
@Bean
@Profile("prod")
public MyClass myClassProd() { return new MyClassForProduction(); }
}