SpringBoot 读取 yml 配置的几种方式

几种数据格式的表示方式
1.普通的值(数字,字符串,布尔)

expire: 60 # 方便测试,设成 60 秒

2.对象、Map (属性和值) (键值对) 不支持tab,使用空格

vipsoft:
   api-url: http://xxxx
   file-path: /temp

3.数组 (List、Set)

cloud:
    gateway:
      routes:
      - id: push-service
        uri: http://localhost:8081
        predicates:
        - Path=/push/**
        filters:
        - name: AuthorizationFilter   # 用户鉴权
      - id: express-service
        uri: http://localhost:8082
        predicates:
        - Path=/express/**
        filters:
        - name: AuthorizationFilter   # 用户鉴权

获取值的方法

application.yml

vipsoft:
  jwt:
    # 加密秘钥
    secret: d3d3LnZpcHNvZnQuY29tLmNuLjQ3MjYyOTQ3LnNwcmluZyBib290
    # token有效时长,单位秒
    expire: 60 # 方便测试,设成 60 秒
    header: token

第一种 @value 如果yml里面没有对应的配置,启动时会报异常

@Value("${vipsoft.jwt.secret}")
public String secret;

第二种 @ConfigurationProperties

@ConfigurationProperties(prefix = "vipsoft.jwt")
@Component
public class JwtUtils {
    private Logger logger = LoggerFactory.getLogger(getClass());
    private String secret;
    private long expire;
    private String header;

    //后面代码省略,详见 https://www.cnblogs.com/vipsoft/p/13237172.html Spring Boot JWT 用户认证

}

第三种 @Environment

@SpringBootTest
class AIReportTests {
    Logger logger = LoggerFactory.getLogger(this.getClass()); 

    @Autowired
    Environment env;

    @Test
    void ymlTest() {
        String s = env.getProperty("vipsoft.jwt.secret");
        logger.info(s);
    }
}

 

posted @ 2022-05-24 12:11  VipSoft  阅读(2143)  评论(0编辑  收藏  举报