7-配置属性
1. 👍属性来源
不仅仅是Spring Boot需要的属性,也包含我们自己定义的属性。
- 配置文件
application.yml
、application.properties
,两个文件可以混用server.port = 8090
- 命令行参数
commandLineArgs
,在程序中直接获取java -jar taco-cloud-sd-jdbc-0.0.3-SNAPSHOT.jar -- server.port=8081
- JVM系统参数
-D
java -Dserver.port=8091 -jar taco-cloud-sd-jdbc-0.0.3-SNAPSHOT.jar
- 操作系统环境变量
set SERVER_PORT=8082、java -jar taco-cloud-sd-jdbc-0.0.3-SNAPSHOT.jar
2. YAML文件
- 使用缩进表示层级关系,不允许使用Tab建,只能使用空格(一般2个空格)
- # 表示注释
- 对象:键值对,使用冒号结构表示
- 冒号后面加空格
animal: pets
hash: {name: Steve, foo: bar}
- 一般数组:一组连线开头的行,构成一个数组
1 | - Cat |
- 行内数组:
animal: [Cat, Dog]
3. 配置数据源
- org.h2.Driver
- com.mysql.cj.jdbc.Driver
不一定要在application.yaml里显式指定,只添加对应依赖spring也能识别
4. 建立HTTPS安全通道
- 解决客户端和服务端传输数据时的加密问题
- HTTP明文传输数据,不安全
- TLS/SSL具有身份认证、信息加密和完整性校验
SSL(Secure Sockets Layer 安全套接字协议 ),及其继任者传输层安全(Transport Layer Security , TLS) 是为网络通信提供安全及数据完整性的一种安全协议。TLS 与SSL在传输层与应用层之间对网 络连接进行加密。
4.1. 单向认证
- 客户端校验服务端证书的合法性,服务端不需要校验客户端
4.2. 双向认证
- 客户端要校验服务端,服务端要校验客户端的证书
相对复杂
5. keytool
- 是JDK自带的一个密钥库管理工具,我们可以用它生产密钥库、管理证书
6. 从配置属性获取值/自定义属性
@ConfigurationProperties(prefix=<>)
从yaml
中加载属性值
通过application.yml文件提供值
环境变量:taco_orders_pageSize=12
程序参数:–taco.orders.pageSize=13
访问:http://localhost:8080/orders
7. 多个Profile文件
7.1. 命名规则
Profile文件命名有固定规则
- 定义特定profile的属性,通过使用不同的YAML或属性文件
- application-{profile名}.properties
- application-{profile名}.yml
- 也可以将不同profile属性放到同一个YAML文件中,使用3个短线进行分隔,并且使用spring.profiles属性来命名profile
7.2. 激活Profile
- 环境变量:spring_profiles_active=prod
- 命令行参数:java -jar <>.jar –spring.profiles.active=prod
- JVM系统属性:java -Dspring.profiles.active=prod -jar <>.jar
- 使用注解
@Profile
条件化地创建Bean,可以加到@Configuration
或@Bean
上- 场景:测试环境下初始化数据库填充测试数据,但是在生产环境下不能乱初始化
8. 配置日志
- 默认Logback,配置文件logback.xml
- 默认日志级别: INFO
- 日志配置(application.yml)
- 可以根据不同包路径设置不同日志级别
1 | logging: |
9. 👍Actuator
- 提供许多端点(endpoints), 监测程序运行情况
- /actuator,查询所有暴露端点
- /actuator/configprops,查询配置属性
- /actuator/health,健康检查
- /actuator/beans,包含bean依赖关系
- 想要获得更多端点如何配置:
include: "*"
暴露所有端口, 否则只暴露/actuator/health
1 | management: |
10. 分布式系统配置数据的获取
- 配置服务: Config Server
- 给所有微服务提供配置数据
- 配置可能来自文件系统,git仓库等
- 标题: 7-配置属性
- 作者: Charlie
- 创建于 : 2023-10-26 18:10:00
- 更新于 : 2024-07-05 12:55:04
- 链接: https://chillcharlie357.github.io/posts/c75c265a/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论