场景
使用@Value注入每个自定义属性很麻烦,当自定义属性很多时就需要注入很多次。
SpringBoot提供了基于类型安全的配置方式,通过@ConfigurationProperties将properties中的属性和一个Bean中的属性关联,从而实现类型安全的配置。
实现
1.在application.properties中添加属性
book.author=Badao
book.name=SpringBoot
book.price=50
book.time=2019
book.other=liumang
book.qizhi=qizhi
2.在Controller中添加注解
@ConfigurationProperties(prefix="book")
3.区别
使用类型安全的配置不用在属性上添加@Value注解,但是所有属性要有set和get方法。
举例
新建BookController.java
package com.example.demo.controller;
import javax.sound.midi.MidiDevice.Info;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@EnableAutoConfiguration
@Controller
@ConfigurationProperties(prefix="book")
public class BookController {
private String author;
private String name;
private String price;
private String time;
private String other;
private String qizhi;
@RequestMapping("/bookInfo")
@ResponseBody
public String showInfo() {
return author+":"+name+":"+price+":"+other+":"+qizhi;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getOther() {
return other;
}
public void setOther(String other) {
this.other = other;
}
public String getQizhi() {
return qizhi;
}
public void setQizhi(String qizhi) {
this.qizhi = qizhi;
}
public static void main(String[] args) {
SpringApplication.run(BookController.class, args);
}
}
效果
运行上面main方法,打开浏览器输入:
http://localhost:8080/bookInfo
源码下载:
https://download.csdn.net/download/badao_liumang_qizhi/11046525