在ymal中定义配置:
cSize: B
age: 20
content: "cSize: ${cSize}, age: ${age}"
读取配置文件:
package com.huawei.springboot1;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
//配置文件中定义的属性的引用
@Value("${cSize}")
private String cSize;
@Value("${content}")
private String content;
@RequestMapping(value = {"/hello", "hi"}, method = RequestMethod.GET)
public String sayHello() {
return content;
}
}
运行:
假设有几十个属性,怎么办???
定义student,并定义其属性:
server:
port: 8082
context-path: /springboot1
cSize: B
age: 20
content: "cSize: ${cSize}, age: ${age}"
student:
name: zzz
age: 20
读取配置文件中的属性:通过@ConfigurationProperties(prefix = "student")决定读取哪个属性。在定义成员变量,成员变量的名字和配置文件中的属性一致。
package com.huawei.springboot1;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "student")
public class StudentProperties
{
private String name;
private Integer age;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public Integer getAge()
{
return age;
}
public void setAge(Integer age)
{
this.age = age;
}
@Override
public String toString()
{
return "GirlProperties{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
package com.huawei.springboot1;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
//配置文件中定义的属性的引用
@Value("${cSize}")
private String cSize;
@Value("${content}")
private String content;
@Autowired
StudentProperties studentProperties;
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public String sayHello() {
return content;
}
@RequestMapping(value = "/student", method = RequestMethod.GET)
public String student() {
return studentProperties.getName();
}
}