数据库,缓存等,不同的开发环境,不同的配置
代码不同的环境,调用不同 。 如短信发送 测试环境不发,线上发
第一个问题解决不同的配置问题
Springboot 提供了自己的配置文件约束
不同的环境新建一个不同的配置文件
application.yml
新建配置文件命名规范 application-{自己命名}.yml
application-dev.yml
application-test.yml
application.yml 配置
spring:
profiles:
# active: dev # 默认选举dev环境
active: pro # 默认选举pro环境
默认方式pro
第二个问题解决 不同的实现方式
@Service
@Profile(“dev”) //使用哪种方式
public class SomeServiceImpl implements SomeService {
@Override
public String send() {
return “调用【开发】环境下的send()实现”;
}
}
dev 模式下的实现类代码
@Service
@Profile(“pro”)
public class OtherServiceImpl implements SomeService {
@Override
public String send() {
return “调用【生产】环境下的send()实现”;
}
}
pro 模式下的实现代码
因为我们每次打包切换环境都需要改代码,是不是有点费事那么如何解决这个问题
我们可以在启动时指定使用环境
java -jar ssss.jar --spring.profiles.active=dev