Springboot获取配置文件中值的方法
来源:互联网 发布:淘宝拍卖车交多少税 编辑:程序博客网 时间:2024/05/21 09:53
目前知道的获取配置文件中的值的注解有2个@ConfigurationProperties和@Value
@ConfigurationProperties
出自springboot
主要用在类上边
可以用来获取配置文件中集合的值
可以配合@Configuration来实现读取配置文件参数并在项目启动过程中加载进Bean实例中。如当使用Springboot+shiro时,shiro框架有一些Bean是在项目启动时实例化的,且带有可配置的参数,这时候就可使用上边的方法实现即创建Bean实例又注入配置文件的配置参数。
@Configuration出自spring,具体用法可以在网上找找。
@Value
出自spring
主要用在属性上边
不可以用来获取配置文件中集合的值
二则都必须使用在Bean的实例中,就是2个注解必须放在被@Controller,@Service,@Component等注解的类里边。普通类使用这2个注解是无法获取到值的
案例
创建一个application.yaml,内容如下:
my: servers: - dev.bar.com - foo.bar.com port: 8080 name: lileiname: hanmeimei创建一个Protest.java的类用来封装配置文件的参数
package com.example.springboot.common;import java.util.ArrayList;import java.util.List;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Component;@Component@ConfigurationProperties(prefix = "my")public class Protest {//因为配置文件中有2个名字为name的配置,此处的name就是my.name,值为lilei//如果此处加上@Value("${name}")会被忽略,优先使用的还是my.name的值private String name;private String port;private List<String> servers = new ArrayList<String>();//因为配置文件中有2个名字为name的配置,此处的name会获取配置文件中的第二个name,值为hanmeimei@Value("${name}")private String otherName;//因为@ConfigurationProperties使用了(prefix = "my")所以当不使用@Value("${env}")是获取不了配置文件env的值的@Value("${env}")private String env;public Protest() {//此处可在项目启动过程中打印在控制台System.out.println("开始构造Protest的实例");}public String getName() {System.out.println("正在获取name的值");return name;}public void setName(String name) {System.out.println("正在设置name的值");this.name = name;}public String getPort() {return port;}public void setPort(String port) {this.port = port;}public List<String> getServers() {return servers;}public void setServers(List<String> servers) {this.servers = servers;}public String getOtherName() {return otherName;}public void setOtherName(String otherName) {this.otherName = otherName;}public String getEnv() {return env;}public void setEnv(String env) {this.env = env;}}创建一个Controller来测试下,看看输出结果:
package com.example.springboot.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import com.example.springboot.common.Protest;@RestControllerpublic class HelloController {@Autowiredprivate Protest pt;@RequestMapping("/")public String helloTest() {System.out.println(pt.getName());System.out.println(pt.getPort());System.out.println(pt.getServers().size());System.out.println(pt.getOtherName());System.out.println(pt.getEnv());return "hello world";}}最终控制台输出:
lilei
8080
2
hanmeimei
8080
2
hanmeimei
test
阅读全文
0 0
- Springboot获取配置文件中值的方法
- jQuery 获取表单元素中值的方法
- Java获取Properties文件中值的方法
- Java获取Properties文件中值的方法
- select标签中值的获取方法
- Java获取Properties文件中值的方法
- Java获取Properties文件中值的方法
- PHP获取xml中值的几种方法简单总结
- Selenium获取input输入框中值的三种方法
- SpringBoot学习:获取yml和properties配置文件的内容
- SpringBoot学习:获取yml和properties配置文件的内容
- Springboot配置文件的使用
- SpringBoot的配置文件
- 关于SpringBoot的配置文件
- springboot加载配置文件中属性值的两种方法
- 获取指定数组的中值
- properties 配置文件中值换行的问题
- properties 配置文件中值换行的问题
- Maven 的41种骨架
- 【VR9项目】开机电压设置
- 【mysql 递归查询】Mysql中的递归层次查询(父子查询)
- 对极几何基本概念及其MATLAB实现
- TOJ 3708: The Key Locker of Cell Phone (大水题)
- Springboot获取配置文件中值的方法
- JSP页面使用js对复选框多选
- 《可以把FILE转为int的API》(fileno())
- oracle 包里使用函数,里使用decode,substr
- mongodb 免费可视化关系工具 Robo 3T
- Spring boot jar包Ebean出错解决
- int 补零
- ECharts使用
- Carthage的安装和使用