小结"/>
spring boot读yml文件变量小结
#这是约定的服务器端口定义 server:port: 8080 #对象及成员变量的访问 people:name: Lucyage: 18#对象的内联式写法 people2: { name: Tom, age: 30}#数组 address:- beijing- shanghai#纯量 slogan: "make China great again!"
------------------------------------------------------
@RestController public class HelloController {//约定内置的属性值@Value("${server.port}")public int serverPort;@Value("${people.name}")public String peopleName;@Value("${people.age}")public int peopleAge;@Value("${people2.name}")public String people2Name;@Value("${people2.age}")public int people2Age;//数组按索引值读@Value("${address[0]}")public String address0;/*故意设置数组索引越界,会报错:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'helloController': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'address[2]' in value "${address[2]}"*///@Value("${address[2]}")//public String address2;@Value("${slogan}")public String slogan;@Autowiredpublic Environment env;@Autowiredpublic People people; //这是要用ConfigurationProperties方式注入bean来访问@RequestMapping("/hello")public String hello(){return genStr();}private String genStr(){StringBuilder sb = new StringBuilder();sb.append("层次读变量属性 server.port="+serverPort);//sb.append("server.port="+serverPort);sb.append(", people.name="+peopleName);sb.append(", people.age="+peopleAge);sb.append(", 内联(in line)定义变量 people2.name="+people2Name);sb.append(", 内联(in line)定义变量 people2.age="+people2Age);sb.append(", address[0]="+address0);//sb.append(", address[2]="+address2);sb.append(", slogan="+slogan);sb.append(", people.name from env:"+env.getProperty("people.name"));sb.append(", address[2] from env:"+env.getProperty("address[2]"));//这行不会引起崩溃sb.append(", people.name from object:"+people.getName());//这行不会引起崩溃return sb.toString();} }
-------------------------------------------------------
另外附People.java类
@Component //Component这用来说明这是个springboot的bean @ConfigurationProperties(prefix = "people") //注意,要指定prefix public class People {private String name;private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;} }
更多推荐
spring boot读yml文件变量小结
发布评论