SpringBoot获取自定义参数
无论是properties格式还是yml的配置文件格式,其获取参数是一样的
yml的格式语法请参考http://www.ruanyifeng.com/blog/2016/07/yaml.html
这里以yml文件格式举例:
application.yml
student:
name: "张三"
age: 18
sex: "男"
获取参数
第一种:
通过@Value注解
@Controller
public class HelloWorldController {
@Value("${student.name}")
private String name;
@GetMapping("/hello")
@ResponseBody
public String hello(){
System.out.println(Arrays.asList(stus));
return sname;
}
}
第二种:
通过@ConfigurationProperties(prefix = "student")与@Autowired结合使用。prefix 省略的前缀名称
-
student.class
//这里以po类距离四,但是要想使用ConfigurationProperties注入参数 需要提供get、set方法 package com.lifeibai.po; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @Component @ConfigurationProperties(prefix = "student") public class Student { private String name; private int age; private String sex; 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; } public String getSex(){ return sex; } public void setSex(String sex){ this.sex = sex; } @Override public String toString(){ final StringBuilder sb = new StringBuilder("Student{"); sb.append("name='").append(name).append('''); sb.append(", age=").append(age); sb.append(", sex='").append(sex).append('''); sb.append('}'); return sb.toString(); } }
@Controller public class HelloWorldController { @Value("${student.name}") private String name; @Autowired private Student student; @GetMapping("/hello") @ResponseBody public String hello(){ return student.toString(); } }
第三种:
使用 @Autowired private Environment env;属性 来获取参数
@Controller
public class HelloWorldController {
@Autowired
private Environment env;
@GetMapping("/hello")
@ResponseBody
public String hello(){
return env.getProperty("student.name");
}
}