前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >spring.profiles.active 和 spring.profiles.include 的区别

spring.profiles.active 和 spring.profiles.include 的区别

原创
作者头像
安宁
修改2020-07-09 14:28:53
4.6K0
修改2020-07-09 14:28:53
举报

spring.profiles.activespring.profiles.include 有什么区别呢?笔者认为主要是语意上的区别,实际使用效果相同。假设,项目有 2 种环境:dev、prod,我们选择激活其中一种;其中涉及到 3 种组件:https、mysql、log,我们根据环境选择包含一个或多个。active 的构件被认为是与环境有关的,include 的构件被认为是与环境无关的。使用示例如下:

代码语言:javascript
复制
#每种环境都使用 mysql
spring.profiles.include: mysql
db.schema: db
---
#开发环境
spring.profiles: dev

db:
  hostname: localhost
  username: dev
  password: dev
  
---
#生产环境
spring.profiles: prod

spring.profiles.include: https,log

db:
  hostname: company.com
  username: prod
  password: prod
  
---
spring.profiles: mysql
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://${db.hostname}:3306/${db.schema}
    username: ${db.username}
    password: ${db.password}

---
#默认使用 http 协议,包含此项使用 https 协议
spring.profiles: https

server:
  ssl:
    key-store: file://${user.home}/peacetrue.cn.jks
    key-alias: peacetrue.cn
    key-store-password: password

---
#默认输出到控制台,包含此项输出到文件
spring.profiles: log

logging.file.name: logs/root.log

在实际启动项目时,执行 java -jar app.jar --spring.profiles.active=dev 或者 java -jar app.jar --spring.profiles.include=dev 是等效的,可以在控制台看到输出的日志都是:The following profiles are active: dev

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档