spring boot 获取yaml配置的对象和数组对象

一、获取对象

例子:

yaml中的配置:

permission:
   method: POST
   path: auth/login**

spring boot 中:

在需要使用到该配置的controller或者service或者专门的配置类中,添加method和path字段,注意要添加getter和setter

import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@ConfigurationProperties(prefix = "permission")
public class AuthConfig  {
    private String method;
    private String path;
   
    @Bean
    public Auth getAuth()
    {

        System.out.println(method+path);
    }

    public String getMethod() {
        return method;
    }

    public void setMethod(String method) {
        this.method = method;
    }

    public String getPath() {
        return path;
    }

    public void setPath(String path) {
        this.path = path;
    }

}

二、获取对象数组

例子:

yaml中的配置

permissions:
  list: 
   - method: POST
     path: auth/login/*
   - method: POST
     path: auht/login/

spring boot中

先定义一个Permission类,该类至少要包含method和path字段。然后在需要使用该配置的类中,添加一个list字段,该字段名与yaml中permissions下的list属性对应。

import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import windcore.authservice.model.myBatisEntity.Permission;

import java.util.List;


/**
 * 
 *
 * @Description:权限拦截器配置

 */
@Configuration
@ConfigurationProperties(prefix = "permission")
public class AuthConfig  {

    private List<Permission>list;
    @Bean
    public Auth getAuth()
    {
        Auth auth=new Auth();
        for (Permission permission:list
             ) {
            auth.ignore(permission.getMethod(),permission.getPath());
        }



        return auth;
    }


    public List<Permission> getList() {
        return list;
    }

    public void setList(List<Permission> list) {
        this.list = list;
    }
}
经验分享 程序员 微信小程序 职场和发展