详解Spring Boot Profiles 配置和使用
介绍
SpringProfiles提供了一套隔离应用配置的方式,不同的profiles提供不同组合的配置,在不同的环境中,应用在启动时通过选择激活某些特定的profiles来适应运行时环境,以达到在不同的环境可以使用相同的一套程序代码。
环境
- JDK8
- Maven3
- IntelliJIDEA2016
- SpringBoot1.5.2.RELEASE
@Profiles
你可以在任何@Component(@Service,@Repository)或@Configuration注解标注的类中使用@Profiles注解:
publicinterfacePaymentService{ StringcreatePaymentQrcode(); }
@Service @Profile("alipay") publicclassAlipayServiceimplementsPaymentService{ @Override publicStringcreatePaymentQrcode(){ return"支付宝支付二维码"; } }
@Service @Profile({"default","wechatpay"}) publicclassWechatpayServiceimplementsPaymentService{ @Override publicStringcreatePaymentQrcode(){ return"微信支付二维码"; } }
在SpringBoot中,默认的profile是default,因此,PaymentService.createPaymentQrcode()->微信支付二维码。
你可以通过spring.profiles.active来激活某个特定profile:
java-jar-Dspring.profiles.active='alipay'xxx.jar
PaymentService.createPaymentQrcode()->支付宝支付二维码。
多环境配置
在SpringBoot中,多环境配置文件可以使用application-{profile}.{properties|yml}的方式。
@Component @ConfigurationProperties("jdbc") publicclassJdbcProperties{ privateStringusername; privateStringpassword; //gettersandsetters }
开发环境application-dev.properties配置:
jdbc.username=root jdbc.password=123654
生产环境application-prod.properties配置:
jdbc.username=produser jdbc.password=16888888
或:
开发环境application-dev.yml配置:
jdbc: username:root password:123654
生产环境application-prod.yml配置:
jdbc: username:produser password:16888888
或:
只使用application.yml,并在此文件中通过---分隔符创建多profile配置:
app: version:1.0.0 spring: profiles: active:"dev" --- spring: profiles:dev jdbc: username:root password:123654 --- spring: profiles:prod jdbc: username:produser password:16888888
命令行启动:
java-jar-Dspring.profiles.active=prodxxxx.jar
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。