Spring Boot第四弹:Spring Boot之@Value和@ConfigurationProperties

Spring Boot之@Value和@ConfigurationProperties


小弟刚接触spring boot不久,仅想通过写网志的形式来加深记忆和方便以后查阅。如内容有不正确之处,还望各位大佬海量汪涵,并给小弟指出,共同进步。

1.@ConfigurationProperties校验


每当使用Spring注解@Validated时,Spring Boot都会尝试校验该类。可以直接在配置类上使用JSR-303约束注解,只需保证类路径中JSR-303的实现,然后在属性上添加约束注解:

@ConfigurationProperties(“book”)

@Validated

 public class BookProperties{

   @NotNull

   private String bookName;

   //setter和getter

}



1.1校验嵌套属性的值


为了校验嵌套属性的值,必须使用@Valid注解在相关属性上,以触发其校验。如:

@ConfigurationProperties(prefix=“book”)

@Validated

 public class BookProperties{

   @NotNull

   private String bookName;

   @Valid

   private final Security security = newSecurity();

   //setter和getter

   public static class security{

     @NotNull

     public String price;

     //setter和getter

   }

}



2. @ConfigurationProperties


通常希望把配置文件的信息,读取并自动封装成实体类,在这时就可以使用@ConfigurationProperties。

如:application.yml

spring:

  application:

    name: ng_knowmanage  

  #-----------redis config-------------------

  redis:

    cluster:

      expiration: 30

      max-redirects: 3

      nodes:

      - 172.17.200.4:6380

      - 172.17.200.4:6381

      - 172.17.200.4:6382

Demo.class:

@Component

@ConfigurationProperties(prefix=“spring.redis.cluster”)

 public class Demo{

   List<String> nodes;

   Integer expiration;

   Integer maxRedirects

   //setter和getter

}



3.@Value


@Value注解用来读取配置文件中属性。

如:application.yml

aliyun:

  ossurl: xxx

Demo.class:

@Component

publicclass Demo{

   @Value(“${aliyun.ossurl}”)

    String ossurl;

   //setter和getter

}

可将需要的单个属性配置,加载到java代码中。



4.@Value和@ConfigurationProperties


@Value是一个核心容器功能,不提供与类型安全配置属性相同的功能。

简单的个人理解:

@ConfigurationProperties是将application配置文件的某类名下所有的属性值,自动封装到实体类中。

@Value是将application配置文件中,所需要的某个属性值,封装到java代码中以供使用。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐只乐之

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值