前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >springboot中的@ConfigurationProperties注解的使用

springboot中的@ConfigurationProperties注解的使用

作者头像
潇洒
发布2019-07-03 11:04:50
8.2K0
发布2019-07-03 11:04:50
举报
文章被收录于专栏:石头岛

ConfigurationProperties 注解的使用

将配置文件中的配置,以属性的形式自动注入到 实体中。 要特别说明的一个注属性 ignoreUnknownFields = false 这个超好用,自动检查配置文件中的属性是否存在,不存在则在启动时就报错。 locations 这个注解属性,不知道为什么不可以使用。用来指定其他配置文件名。

1.application.properties 配置

代码语言:javascript
复制
#自动配置设置
service.properties.name=my-test-name
service.properties.ip=192.168.1.1
service.user=kayle
service.port=8080

2.对应实体 Properties 就是对应的配置文件中的 properties,注意也要给 get/set 也就是说,配置文件中的前缀是什么, prefix 中就使用什么。成员变量就是对应的配置文件的第二级属性名。

代码语言:javascript
复制
/**
 * Description 测试配置类
 *
 * @Author liukai
 * @Date 2017/7/23.
 */
@Component      //不加这个注解的话, 使用@Autowired 就不能注入进去了
@ConfigurationProperties(prefix = "service",ignoreUnknownFields = false)
public class MyConfigTest {

    private int port;
    private String user;
    private Properties Properties;

    public static class Properties {
        private String name;
        private String ip;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getIp() {
            return ip;
        }

        public void setIp(String ip) {
            this.ip = ip;
        }
    }

    public int getPort() {
        return port;
    }

    public void setPort(int port) {
        this.port = port;
    }

    public String getUser() {
        return user;
    }

    public void setUser(String user) {
        this.user = user;
    }

    public MyConfigTest.Properties getProperties() {
        return Properties;
    }

    public void setProperties(MyConfigTest.Properties properties) {
        Properties = properties;
    }
}

3.测试

代码语言:javascript
复制
@RestController
public class ConfigurationPropertiesController {

    @Autowired
    private MyConfigTest myConfigTest;

    @RequestMapping("/getProperties")
    public String getProperties () {
        System.out.println(myConfigTest.getUser());
        return myConfigTest.getUser();
    }

    @RequestMapping("/getObjectProperties")
    public Object getObjectProperties () {
        System.out.println(myConfigTest.getUser());
        return myConfigTest.getProperties();
    }
}

4.结果

代码语言:javascript
复制
{"name":"my-test-name","ip":"192.168.1.1"}

5.也可修饰配置类方法

代码语言:javascript
复制
@ConfigurationProperties(prefix = "foo")
@Bean
public FooComponent fooComponent() {

}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-10-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ConfigurationProperties 注解的使用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档