当前位置 > it书童 > java > 正文

springBoot 配置文件与配置类的属性映射方式

java it书童 2020-11-21 17:38:08 0赞 0踩 32阅读 0评论

使用注解 @Value 映射

我们可以通过 @Value 注解将配置文件中的值映射到一个 Spring 管理的 Bean 的字段上

application.properties 配置如下:

person:
  name: zhangsan
  age: 18

或者,application.yml 配置如下:

person:
  name: zhangsan
  age: 18

实体Bean代码如下:

@Controller
public class QuickStartController {

    @Value("${person.name}")
    private String name;
    @Value("${person.age}")
    private Integer age;

    @RequestMapping("/quick")
    @ResponseBody
    public String quick(){
        return "springboot 访问成功! name="+name+",age="+age;
    }

}

浏览器访问地址:http://localhost:8080/quick 结果如下:

源码 javaDemo 88eda6a

使用注解 @ConfigurationProperties 映射

通过注解 @ConfigurationProperties(prefix="配置文件中的key的前缀") 可以将配置文件中的配置自动与实体进行映射

实体Bean代码如下:

@Controller
@ConfigurationProperties(prefix = "person")
public class QuickStartController {
    private String name;
    private Integer age;

    @RequestMapping("/quick")
    @ResponseBody
    public String quick() {
        return "springboot 访问成功! name = " + name + ", age = " + age;
    }

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

    public void setAge(Integer age) {
        this.age = age;
    }
}

浏览器访问地址:http://localhost:8080/quick 结果如下:

使用 @ConfigurationProperties 方式可以进行配置文件与实体字段的自动映射,但需要字段必须提供 set 方法才可以,而使用 @Value 注解修饰的字段不需要提供set方法

关于我
一个文科出身的程序员,追求做个有趣的人,传播有价值的知识,微信公众号主要分享读书思考心得,不会有代码类文章,非程序员的同学请放心订阅
转载须注明出处:https://www.itshutong.com/articles/842