读取yml文件中列表

@Value@ConfigurationProperties :这两者都可以读取配置文件中的数据

下面例子中的access.urls 的值只能通过 @ConfigurationProperties 得到

@Value 注解是无法获取的

access:
  urls:
    - /login.*
    - /js.*
    - /img.*
    - /css.*

@Value不行就用@ConfigurationProperties

使用@ConfigurationProperties需要提供 setter 方法

exp:

@Configuration
@ConfigurationProperties(prefix = "access")
public class AllowUrls {
    private List<String> urls;

    public void setUrls(List<String> urls) {
        this.urls = urls;
    }

   public List<String> getUrls() {
        return urls;
    }
}

上面中的值的使用

@Controller
public class TestController {
    @Resource
    private AllowUrls allowUrls;

    @RequestMapping("/test")
    @ResponseBody
    public String test() {
        return JSON.toJSONString(allowUrls.getUrls());
    }
}

@ConfigurationProperties读取同一个元素只能读取一次,所以一般放在 @Configuration

在另一个类中使用@ConfigurationProperties
总结:@ConfigurationProperties(prefix="value") ,value:在一个项目中,唯一

posted @ 2021-12-28 21:13  gain&get  阅读(365)  评论(0)    收藏  举报