SpringBootLearning
簡單屬性自定義
一般屬性可以定義在通用的配置文件application.properties里面
# 自定義屬性
boot.userName = yuxi
如何獲取呢卧惜?
按照spring的獲取方式就可以了骚烧,很簡單
@Value(value = "${boot.userName}")
private String userName;
復(fù)雜屬性自定義
- 在配置里配置屬性
# 復(fù)雜屬性
test.id=1
test.name=xiaoyuxixi
test.money=100000000
- 定義實(shí)體
//需要注意這個(gè)屬性是必須的
@ConfigurationProperties(prefix = "test")
public class Account {
private int id;
private String name;
private double money;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
@Override
public String toString() {
return "Account{" +
"id=" + id +
", name='" + name + '\'' +
", money=" + money +
'}';
}
}
- 注入屬性
@RestController
// 這個(gè)屬性也是必須的
@EnableConfigurationProperties({Account.class})
public class HelloController {
//自定義屬性
@Value(value = "${boot.userName}")
private String userName;
@Autowired
private Account account;
/**
* 復(fù)雜 屬性自定義
*
* @return
*/
@RequestMapping("/hard")
public Object getHardProperties() {
return account;
}
/**
* welcome spring boot
*
* @return
*/
@RequestMapping(value = "/", method = RequestMethod.GET)
public String index() {
return "Greetings from Spring Boot! ";
}
/**
* 簡單 屬性自定義
*
* @return
*/
@RequestMapping("/user")
public String getProperties() {
System.out.println(userName);
return userName;
}
}
在配置完復(fù)雜的屬性之后桶蝎,會發(fā)現(xiàn)這樣寫的話 application.properties里內(nèi)容會很多有很多屬性不是公共的配置升略,放在這里不是有優(yōu)雅确虱,可以把這些配置單獨(dú)寫一個(gè)配置文件
配置文件獲取
- 添加配置文件 (test.properties)
# 配置文件獲取
lakala.id=1
lakala.name=xiaoyuxixi
lakala.money=100000000
- 獲取屬性文件(在實(shí)體上加入以下配置文件)
@Configuration
@PropertySource(value = "classpath:test.properties")