springboot之读取配置文件内容

一 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.访问结果

猜你喜欢

转载自blog.csdn.net/u011066470/article/details/114319419