一 yml文件
YAML (YAML Ain't a Markup Language)YAML不是一种标记语言,通常以.yml为后缀的文件,是一种直观的能够被电脑识别的数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,一种专门用来写配置文件的语言。可用于如: Java,C/C++, Ruby, Python, Perl, C#, PHP等。
以数据为核心。
YAML文件的扩展名为:.yml和.yaml两种格式。
1.1 基本语法
1.2 配置文件的优先级
1.3 yml的数据格式
二.spring boot加载配置文件的案例
2.1 通过@Value注解
1.配置文件内容
#服务端端口号,名称
server:
port: 9090
servlet:
context-path: /ygjq-portal
cas:
#单点登录,如果使用单点登出,须配置SingleSignOutHttpSessionListener监听器
ssoFilter: com.bonc.sso.client.JWTFilter
#CAS服务器地址全路径
casServerUrlPrefix: http://www.ygcloud.net:8080/cas
#CAS服务器登录地址 全路径
casServerLoginUrl: http://www.ygcloud.net/#/login
#跨域认证需要使用token,需要打开此配置
crossdomainJWTVerify: true
#是否启用单点登出
singleSignOut: true
#是否启用服务器token验证
casServerCheckToken: true
#单点登录忽略校验URL
skipUrls: .*/rest/.*,/out.jsp,/index.jsp,/struts/.*,/resources/*,.*tpl$,.*css$,.*js$,.*jpg$,.*jpeg$,.*bmp$,.*png$,.*gif$,.*ico$
#安全验证,登录成功后的的用户信息准备 须实现com.bonc.pure.sso.client.ILoginUserHand 接口
loginUserHandle: com.bonc.security.sso.SSOAuthHandle
#可选参数,客户端应用使用的字符集,默认将使用UTF-8作为默认字符集
characterEncoding: UTF-8
#解决读取CAS server端返用户扩展信息中文乱码问题
encoding: UTF-8
dizhi:
- beijing
- shanghai
#定义数组
address:
name:
- beijing
- shanghai
2.获取配置文件代码
package com.ljf.spring.boot.demo.param.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
* @ClassName: CasInitConfig2
* @Description: TODO
* @Author: liujianfu
* @Date: 2021/03/03 16:21:47
* @Version: V1.0
**/
@Component
public class CasInitConfig2 {
@Value("${cas.ssoFilter}")
private String ssoFilter;
@Value("${cas.casServerLoginUrl}")
private String casServerLoginUrl; //CAS服务器登录地址 全路径
@Value("${address.name[0]}")
private String mesg1;
@Value("${address.name[1]}")
private String mesg2;
public String getSsoFilter() {
return ssoFilter;
}
public void setSsoFilter(String ssoFilter) {
this.ssoFilter = ssoFilter;
}
public String getCasServerLoginUrl() {
return casServerLoginUrl;
}
public void setCasServerLoginUrl(String casServerLoginUrl) {
this.casServerLoginUrl = casServerLoginUrl;
}
public String getMesg1() {
return mesg1;
}
public void setMesg1(String mesg1) {
this.mesg1 = mesg1;
}
public String getMesg2() {
return mesg2;
}
public void setMesg2(String mesg2) {
this.mesg2 = mesg2;
}
}
3.调用:
页面访问结果:
2.2 通过@ConfigurationProperties注解
1.配置文件
#服务端端口号,名称
server:
port: 9090
servlet:
context-path: /ygjq-portal
cas:
#单点登录,如果使用单点登出,须配置SingleSignOutHttpSessionListener监听器
ssoFilter: com.bonc.sso.client.JWTFilter
#CAS服务器地址全路径
casServerUrlPrefix: http://www.ygcloud.net:8080/cas
#CAS服务器登录地址 全路径
casServerLoginUrl: http://www.ygcloud.net/#/login
#跨域认证需要使用token,需要打开此配置
crossdomainJWTVerify: true
#是否启用单点登出
singleSignOut: true
#是否启用服务器token验证
casServerCheckToken: true
#单点登录忽略校验URL
skipUrls: .*/rest/.*,/out.jsp,/index.jsp,/struts/.*,/resources/*,.*tpl$,.*css$,.*js$,.*jpg$,.*jpeg$,.*bmp$,.*png$,.*gif$,.*ico$
#安全验证,登录成功后的的用户信息准备 须实现com.bonc.pure.sso.client.ILoginUserHand 接口
loginUserHandle: com.bonc.security.sso.SSOAuthHandle
#可选参数,客户端应用使用的字符集,默认将使用UTF-8作为默认字符集
characterEncoding: UTF-8
#解决读取CAS server端返用户扩展信息中文乱码问题
encoding: UTF-8
dizhi:
- beijing
- shanghai
#定义数组
address:
name:
- beijing
- shanghai
2.代码的编写
package com.ljf.spring.boot.demo.param.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* @ClassName: CasInitConfig
* @Description: TODO
* @Author: liujianfu
* @Date: 2021/01/05 19:44:51
* @Version: V1.0
**/
@Component
@ConfigurationProperties(prefix ="cas")
public class CasInitConfig {
//单点登录,如果使用单点登出,须配置SingleSignOutHttpSessionListener监听器
private String ssoFilter;
//CAS服务器地址全路径
private String casServerUrlPrefix;
//CAS服务器登录地址 全路径
private String casServerLoginUrl;
//跨域认证需要使用token,需要打开此配置
private Object [] dizhi;
public String getSsoFilter() {
return ssoFilter;
}
public void setSsoFilter(String ssoFilter) {
this.ssoFilter = ssoFilter;
}
public String getCasServerUrlPrefix() {
return casServerUrlPrefix;
}
public void setCasServerUrlPrefix(String casServerUrlPrefix) {
this.casServerUrlPrefix = casServerUrlPrefix;
}
public String getCasServerLoginUrl() {
return casServerLoginUrl;
}
public void setCasServerLoginUrl(String casServerLoginUrl) {
this.casServerLoginUrl = casServerLoginUrl;
}
public Object[] getDizhi() {
return dizhi;
}
public void setDizhi(Object[] dizhi) {
this.dizhi = dizhi;
}
}
3.访问页面
2.3 通过Environment注解
2.访问结果