温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么在springboot中读取自定义配置文件节点

发布时间:2021-05-25 16:23:40 来源:亿速云 阅读:147 作者:Leah 栏目:编程语言

怎么在springboot中读取自定义配置文件节点?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

  首先在默认application.yml配置文件中自定义如下节点信息:

 shenniu:
 name: 神牛003

  然后通过@Value标记来直接获取属性值,为了更好的展示数据到界面上定义了一个/conf/name接口:

@Value("${shenniu.name}")
  private String name;

  @GetMapping("/conf/defname")
  public String getDefName() {
    return this.name;
  }

  运行后效果如:

怎么在springboot中读取自定义配置文件节点

实体映射application.yml的节点

  要用实体类映射出默认配置文件值,仅仅只需要加一个属性名称前缀就行了,当然这仅仅针对于application.yml默认文件里面的属性:

@Configuration
@ConfigurationProperties(prefix = "shenniu")
public class ShenniuConf {
  private String name;
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  private Url url;
  public Url getUrl() {
    return url;
  }
  public void setUrl(Url url) {
    this.url = url;
  }
  private String des;
  public String getDes() {
    return des;
  }
  public void setDes(String des) {
    this.des = des;
  }
  public static class Url {
    private String blogurl;
    public String getBlogurl() {
      return blogurl;
    }
    public void setBlogurl(String blogurl) {
      this.blogurl = blogurl;
    }
  }
}

  实体类我多增加了几个属性,为了后面测试方便;要对application.yml做配置映射只需要加上 @ConfigurationProperties(prefix = "shenniu") 标记,prefix的值对应自定义配置文件属性的前缀;这里增加/conf/name接口输出映射出对象的值:

 @Autowired
   private ShenniuConf shenniuConf; 
   @GetMapping("/conf/name")
   public String getName() {
     return shenniuConf.getName();
   }

  同样得到了和@Values注解一样的效果,这就表示实体和配置文件自定义属性匹配成功了,主要实体属性名称应该和配置文件节点名称保持一致;

怎么在springboot中读取自定义配置文件节点

实体映射自定义配置文件的节点

  读取application.yml中属性值很简单,有时候需要自定义自己的配置文件,如这里我的my.properties,文件内容如下:

shenniu.des=我爱祖国
 shenniu.url.blogurl=http://www.a.com

  映射的实体还是用上面的,不过实体上需要增加注解 @PropertySource("classpath:my.properties") 表示自定义文件源,并且同样需要prefix来指定节点前缀;我们增加如下展示接口:

 @Autowired
   private ShenniuConf shenniuConf; 
   @GetMapping("/conf/des")
   public String getDes() {
     return shenniuConf.getDes();
  }

怎么在springboot中读取自定义配置文件节点

实体映射多层级节点的值

  通常自定义配置节点都有层级关系,那我们实体有怎么来获取到不同层级的属性值呢,事实上只需要在实体类里面通过类层级关系来表示就行了,如上面ShenniuConf实体里面的Url实体类属性;

怎么在springboot中读取自定义配置文件节点

  这里添加一个测试接口:

   @Autowired
   private ShenniuConf shenniuConf;   
   @GetMapping("/conf/myconf")
  public ShenniuConf getBlogurl() {
     return shenniuConf;
   }

  不出意外能得到如下结果:

  怎么在springboot中读取自定义配置文件节点

springboot是什么

springboot一种全新的编程规范,其设计目的是用来简化新Spring应用的初始搭建以及开发过程,SpringBoot也是一个服务于框架的框架,服务范围是简化配置文件。

看完上述内容,你们掌握怎么在springboot中读取自定义配置文件节点的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI