IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Springboot配置文件 -> 正文阅读

[Java知识库]Springboot配置文件

导入解析配置文件

1.YAML(7.2.5)

  • 概述
1.YAML是一种高级的JSON支持
2.SpringApplication类自动支持YAML作为一种可选的属性配置文件
3.YAML是层级结构,而properties是平级结构
  • 基础语法
1.用缩进表示层级关系
2.缩进时只可以使用空格
3.空格数不重要,只要同层的元素左对齐即可
4.大小写敏感
  • 支持的数据结构
1.对象:键值对集合Map...   -->注意缩进
	行内:- object: {key1: value1,key2: value2}
	行外:object:
			key1: value1
		    key2: value2
		    
2.数组:List...
	行内:- arrays: [value1,value2]
	行外:- arrays:
			- value1
		  	- value2
		  	- 
3.字面量:不可再分的值
	字符串:默认不加"" ''""不会转义特殊字符,即该换行换行
			加''会转义特殊字符,即当成普通的字符串
			
4.多文档:一个yml文件中可以有多个配置文档,使用----隔开即可
  • @ConfigurationProperties
1.导入的是默认配置文件application.yml或application.properties
2.批量注入
3.松散绑定:(属性)firstName --> (配置文件)firstName/first-name/first_name/FIRSTNAME
4.不支持spEL:不支持注入计算后的值-->price: 10*10
5.支持属性自动注入
--------------------------------------------
@Component
@Data
@ConfigurationProperties(prefix = "product")
public class Product {
    private String pname;
    private Double price;
    private Boolean isUsed;//两个单词一般用-分割
    private Date manDate;
    private List<String> types;//相当数组
    private Map<String, String> attributes;//相当对象
    private Address address;//相当对象
}
-----application.yml----------------------------
product:
  pname: apple
  price: 3000
  is-used: true
  man-date: 2022/03/06
  type:
    - 消费手机
    - 手机
    - 移动设备
  attributes: {'color': 'white','com-type': '5G'}
  address:
    province: 湖南省
    city: 长沙
-----application.properties---------------------
product.pname=apple
product.price=3000
product.is-used=true
product.man-date=2022/03/06
product.type=消费手机,手机,移动设备
product.attributes.color=white
product.attributes.com-type=5G
product.address.province=湖南省
product.address.city=长沙
  • 在配置文件中随机生成值(7.2.6)
product:
  pname: apple${random.int(12)}//随机生成值
  price: 3000
  is-used: true
  man-date: 2022/03/06

  types:
    - 消费手机${product.pname}//引用前面已经出现过的值
    - 手机
    - 移动设备
  attributes: {'color': 'white','com-type': '5G'}
  address:
    province: 湖南省
    city: 长沙

2.类型安全的配置属性(7.2.8)

  • @Configuration+@PropertySource+@Value
1.导入的是自定义的properties的配置文件
2.单个注入
3.有限支持松散绑定 @Value中的name需要与配置文件中的完全一致
4.支持spEL:@Value("#{10*10}")
5.属性不支持自动注入,使用@value手动注入
6.@Configuration配合使用
--------------------------------------------
@Configuration
@PropertySource(value = "classpath:db.properties")
public class DbCon{
    @Value("${db.driver_name}")
    private String driver_name;
    @Value("${db.url}")
    private String url;
    @Value("${db.username}")
    private String username;
    @Value("${db.password}")
    private String password;
}
-----db.properties----------------------------
db.driver_name=oracle.jdbc.driver.OracleDriver
db.url=jdbc:oracle:thin:@//localhost:1521/orcl
db.username=scott
db.password=a

3.传统的xml配置文件

  • @ImportResource
导入外部传统的spring的xml文件,引入xml的配置
	注意:@Import引入外部配置类,@SpringBootApplication只能扫描到同级或子级的配置类
--------------------------------------------
//随便放在什么类上
@ImportResource(locations = {"classpath:beans.xml"})
-----beans.xml----------------------------
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="banana" class="com.yc.bean.Banana"></bean>
</beans>

Profiles 配置项(7.3)

1.概述

  • 多环境配置与部署
  • 作用:限制环境(生产环境+线上…),即决定配置文件在什么时候起作用
  • 命令行的参数覆盖配置文件的参数

2.多环境

开发环境:dev
测试环境:test
生产环境:prod

3.配置文件的命名规范

application-{profile}.properties
	test prod pre-prod demo1.0
系统默认配置application.properties
	上面的多环境配置文件会重写这个文件

4.激活

1.任何配置类上加@Profiles("test")限定
  配置文件 
  	不同配置文件: application-dev.properties/application-test.properties
  	默认配置文件: 指定不同profiles类型 -> 指定哪些配置文件处于活动状态
  		spring:
		  profiles:
		    active: test
		-->多配置块方式----
2.-Dspring.profiles.active = prod:虚拟机参数方式
	jar部署:java -jar -Dspring.profiles.active = prod
		-->hello.jar
3.--spring.profiles.active = dev:命令行参数方式
	jar部署:java -jar hello.jar --spring.profiles.active = prod
	
优先级:321

5.取配置文件

java -jar -Dspring.config.location = file:configpath/ -Dspring.profiles.active = test targetJarName.jar

6.配置文件优先级

在这里插入图片描述

7.外部配置加载顺序

在这里插入图片描述

配置文件自动注入源码分析

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-03-15 22:18:55  更:2022-03-15 22:19:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:34:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码