ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

9.配置绑定-@ConfigurationProperties

2022-09-03 04:00:08  阅读:145  来源: 互联网

标签:pps 配置 String brand 绑定 price ConfigurationProperties 注解 public


如果我们直接使用原生配置文件的方式做配置的话,取值挺花时间的, 比如

public class getProperties {
     public static void main(String[] args) throws FileNotFoundException, IOException {
         Properties pps = new Properties();
         pps.load(new FileInputStream("a.properties"));
         Enumeration enum1 = pps.propertyNames();//得到配置文件的名字
         while(enum1.hasMoreElements()) {
             String strKey = (String) enum1.nextElement();
             String strValue = pps.getProperty(strKey);
             System.out.println(strKey + "=" + strValue);
             //封装到JavaBean。
         }
     }
 }

要遍历,还要筛选

如果用springboot提供的 @ConfigurationProperties 就会方便很多

1.先在配置文件中定义数据

比如

mycar.brand = YD
mycar.price = 5000

2.直接中实体类上使用注解 就直接绑定好了数据 ,直接拿前缀,然后在配备字段, 字段一定要和相同,不然找不到,注意要加到组件中才能使用springboot的功能

/**
 * 只有在容器中的组件,才会拥有SpringBoot提供的强大功能
 */
@Component
@ConfigurationProperties(prefix = "mycar")
public class Car {

    private String brand;
    private Integer price;

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public Integer getPrice() {
        return price;
    }

    public void setPrice(Integer price) {
        this.price = price;
    }

    @Override
    public String toString() {
        return "Car{" +
                "brand='" + brand + '\'' +
                ", price=" + price +
                '}';
    }
}

 

3.第二中方式

@EnableConfigurationProperties 开启配置注解功能 那么谁要配置注解,car需要 就把car拿过来开启配置注解功能 另外这个注解还可以将 填写过来的类(car.class) 注册到容器中 这个注解写中myconfig类上 @ConfigurationProperties 这个就还是使用配置了 这个注解写在实体类上 好处是如果要配置源码中的类   而源码里没有注册组件,这个注解就可以使用了,把源码中的类开启配置注解 并加入组件,就可以直接吧yaml中的数据赋过去了  

 

标签:pps,配置,String,brand,绑定,price,ConfigurationProperties,注解,public
来源: https://www.cnblogs.com/dzs894330350/p/16651861.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有