读取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 urls;

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

   public List 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:在一个项目中,唯一