springboot 读取application.yml配置中信息的三种方式
springboot 读取application.yml配置中信息的三种方法
·
application.yml配置信息:
name: 123
demo:
user:
name: zhangsan
sex: 22
phone: 1520000000
第一种方式:通过@Value("${name}") 注解获取方式,这种一般常用与配置的数据较少的情况:
优点:单个使用方便,灵活性高
缺点:获取配置文件信息多,需要些大量的@Value,不利于开发,增加开发者的工作量
@RestController
@RequestMapping("/test")
public class TestController {
/**
* 通过注解的方式获取application的配置值
*/
//创建成员变量以便方法获取
@Value("${name}")
private String name;
@GetMapping("/testOne")
public String test(){
System.out.println("====="+name);
}
}
通过运行结果可以看出我们已经通过第一种方式获取到了里面的值:
第二种方式:通过注入import org.springframework.core.env.Environment对象的形式:
@RestController
@RequestMapping("/test")
public class TestController {
@Autowired
private Environment environment;
/**
* 通过注入Environment的方式获取application配置的值
* @return
*/
@GetMapping("/testTwo")
public String test2(){
String parent =environment.getProperty("name");
System.out.println("》》》》》》"+parent);
}
}
成功打印结果:这种方式和第一种方式大同小异:
编辑
第三种方式:通过@ConfigurationProperties(prefix = "demo.user")配置类的形式创建一个实体类,这种方式常用于 配置的数据较多,封装成一个实体类;
@Data
@Component
@ConfigurationProperties(prefix = "demo.user")
public class Demo {
private String name;
private String sex;
private String phone;
}
@RestController
@RequestMapping("/test")
public class TestController {
@Autowired
private Demo demo;
/**
* 通过创建实体类配置ConfigurationProperties的方式获取application配置的值
* @return
*/
@GetMapping("/testThree")
public String test3(){
Map<String,Object> map = new HashMap();
map.put("name",demo.getName());
map.put("sex",demo.getSex());
map.put("phone",demo.getPhone());
System.out.println("====="+map);
}
}
参数较多,通过Map集合的方式接受多个参数:
更多推荐
已为社区贡献11条内容
所有评论(0)