Spring Boot获取配置文件值
程序员文章站
2022-09-30 18:41:15
在程序开发过程中,经常会将一些可能会修改的值放到配置文件中,那么在Spring Boot中,如何获取配置的文件的值呢? 本篇博客就讲解下使用@Value注解或者@ConfigurationProperties注解来获取配置文件值的方法 方式1:使用@Value注解获取配置文件值 首先在applica ......
在程序开发过程中,经常会将一些可能会修改的值放到配置文件中,那么在spring boot中,如何获取配置的文件的值呢?
本篇博客就讲解下使用@value注解或者@configurationproperties注解来获取配置文件值的方法
方式1:使用@value注解获取配置文件值
首先在application.yml中添加如下配置:
book: author: wangyunfei name: spring boot
然后修改spring boot项目启动类的代码如下:
package com.zwwhnly.springbootdemo; import org.springframework.beans.factory.annotation.value; import org.springframework.boot.springapplication; import org.springframework.boot.autoconfigure.springbootapplication; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.restcontroller; @restcontroller @springbootapplication public class springbootdemoapplication { @value("${book.author}") private string bookauthor; @value("${book.name}") private string bookname; @requestmapping("/") string index() { return "book name is:" + bookname + " and book author is:" + bookauthor; } public static void main(string[] args) { springapplication.run(springbootdemoapplication.class, args); } }
启动项目,在浏览器输入http://localhost:8080/,会看到如下信息:
方式2:使用@configurationproperties注解获取配置文件值
在方式1中,我们使用@value注解来获取配置文件值,但如果多个地方都需要获取的话,就需要在多个地方写注解,造成混乱,不好管理,
其实,spring boot还提供了@configurationproperties注解来获取配置文件值,该种方式可把配置文件值和一个bean自动关联起来,使用起来更加方便,个人建议用这种方式。
在application.yml中添加如下配置:
author: name: wangyunfei age: 32
新建类authorsettings,添加@component和@configurationproperties注解
package com.zwwhnly.springbootdemo; import org.springframework.boot.context.properties.configurationproperties; import org.springframework.stereotype.component; @component @configurationproperties(prefix = "author") public class authorsettings { private string name; private integer age; public string getname() { return name; } public void setname(string name) { this.name = name; } public integer getage() { return age; } public void setage(integer age) { this.age = age; } }
修改启动类代码如下:
package com.zwwhnly.springbootdemo; import org.springframework.beans.factory.annotation.autowired; import org.springframework.boot.springapplication; import org.springframework.boot.autoconfigure.springbootapplication; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.restcontroller; @restcontroller @springbootapplication public class springbootdemoapplication { @autowired private authorsettings authorsettings; @requestmapping("/") string index() { return "book name is:" + authorsettings.getname() + " and book author is:" + authorsettings.getage(); } public static void main(string[] args) { springapplication.run(springbootdemoapplication.class, args); } }
启动项目,在浏览器输入http://localhost:8080/,会看到如下信息:
下一篇: 2018年中国搜索引擎市场份额