maven 依赖jar
- maven 依赖jar
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
配置
- 配置
配置文件分为properties和yml格式
a) 在默认的spring 配置文件中配置
server:
port: 8082
servlet:
context-path: /
spring:
datasource:
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false
username: root
password: mysql123
jpa:
database: MySQL
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
show-sql: true
hibernate:
ddl-auto: update
person:
lastName: hello
age: 18
boss: false
birth: 2017/12/12
maps: {
k1: v1,k2: 12}
lists:
- lisi
- zhaoliu
dog:
name: 小狗
age: 12
b) 单独建立映射文件(可以单独建立yml文件,将需要属性单独写在独立的文件中)
person:
lastName: hello
age: 18
boss: false
birth: 2017/12/12
maps: {
k1: v1,k2: 12}
lists:
- lisi
- zhaoliu
dog:
name: 小狗
age: 12
yml 文件转化(如果用properties配置,无需创建此类)
- yml 文件转化(如果用properties配置,无需创建此类)
import org.springframework.boot.env.YamlPropertySourceLoader;
import org.springframework.core.env.PropertySource;
import org.springframework.core.io.support.DefaultPropertySourceFactory;
import org.springframework.core.io.support.EncodedResource;
import java.io.IOException;
public class YamlPropertyLoaderFactory extends DefaultPropertySourceFactory {
@Override
public PropertySource<?> createPropertySource(String name, EncodedResource resource) throws IOException {
if (null == resource) {
super.createPropertySource(name, resource);
}
return new YamlPropertySourceLoader().load(resource.getResource().getFilename(), resource.getResource()).get(0);
}
}
映射
- 映射
在工程中建立配置文件对应的实体类
// 如果为yml独立文件则需要添加本行注释
// @PropertySource(value = "classpath:/obj.yml", factory = YamlPropertyLoaderFactory.class)
// 如果为properties配置文件,则使用本行注释
// @PropertySource(value = "classpath:/obj.properties")
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String lastName;
private Integer age;
private Boolean boss;
private Date birth;
private Map<String, Object> maps;
private List<Object> lists;
private Dog dog;
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Boolean getBoss() {
return boss;
}
public void setBoss(Boolean boss) {
this.boss = boss;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
public Map<String, Object> getMaps() {
return maps;
}
public void setMaps(Map<String, Object> maps) {
this.maps = maps;
}
public List<Object> getLists() {
return lists;
}
public void setLists(List<Object> lists) {
this.lists = lists;
}
public Dog getDog() {
return dog;
}
public void setDog(Dog dog) {
this.dog = dog;
}
}
调用
- 调用
@RestController
public class DCController {
@Autowired
Person person;
@GetMapping("/test")
public String test() {
StringBuffer sb = new StringBuffer();
sb.append( "Springboot Build Anything !!!" );
sb.append("<br/>");
sb.append(person.getLastName());
sb.append("<br/>");
sb.append(person.getDog().getName());
sb.append("<br/>");
return sb.toString();
}
}