本文导读
- Spring Boot 全局配置文件“application.yml”与"application.properties"可以使用${random}来设置随机值
- 常用随机设值如下:
- ${random.value}------------随机生成一个32位的字符串,如:b21d56d2f10d74f84608dfff01b25552
- ${random.int}---------------随机生成一个int范围的随机数,如:-386223791
- ${random.long}-------------随机生成一个long范围的随机数,如:2404587442488649534
- ${random.int(10)}----------随机生一个[0,10]之间的随机数,如:8
- ${random.int[1024,65536]}-------随机生成一个[1024,65536]之间的随机数,如:63856
- ${user.userName}------------获取配置文件中已经配置好的属性值,不存在时直接返回整个“${user.userName}”
- ${user.width:hello}-----------获取配置文件中已经配置好的属性值,不存在时则用"hello"返回
User POJO
package com.lct.domain;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.io.Serializable;
import java.util.Date;
/**
* Created by Administrator on 2018/7/12 0012.
* 用户类--实体
* 里面的初始值全部会由全局资源文件"application.properties"中注入进来
*/
@Component
@ConfigurationProperties(prefix = "user")
public class User implements Serializable {
private Integer id;
private Long age;
private String userName;
private String addr;
private String city;
private String like;
private String color;
private String height;
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
public Long getAge() {
return age;
}
public void setAge(Long age) {
this.age = age;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getHeight() {
return height;
}
public void setHeight(String height) {
this.height = height;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getLike() {
return like;
}
public void setLike(String like) {
this.like = like;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
@Override
public String toString() {
return "User{" +
"addr='" + addr + '\'' +
", id=" + id +
", age=" + age +
", userName='" + userName + '\'' +
", city='" + city + '\'' +
", like='" + like + '\'' +
", color='" + color + '\'' +
", height='" + height + '\'' +
'}';
}
}
全局配置文件
- 为了书写简单直接采用"application.properties"文件,对于“application.yml”文件写法是完全一样的
- 同理如果使用的普通的"*.properties"文件,然后使用@PropertySource 加载指定配置文件也是一样的写法
user.id=${random.int}
user.age=${random.long}
user.userName=张三_${random.uuid}
user.addr=深圳_${random.value}
user.city=长沙_${random.int(10)}
user.like=电影_${random.int[1024,65536]}
user.color=红色_${user.userName}
user.height=${user.width:hello}_身高
测试输出
package com.lct;
import com.lct.domain.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import javax.annotation.Resource;
@RunWith(SpringRunner.class)
@SpringBootTest
public class CocoApplicationTests {
@Resource
private User user;
@Test
public void contextLoads() {
System.out.println("----------------------------------");
System.out.println(user);
}
}