本文主要是介绍spring boot 利用配置文件,实现数据动态注入,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
准备工作
方式1:@value
方式2:批量为属性赋值(禁止大写)
整合指定配置文件
@PropertySources
准备工作
首先在yml文件中,手动添加测试数据
方式1:@value
使用@Value("${}")注解来获取,spel表达式
说明:当spring容器启动时,会加载yml文件,动态实现数据封装,解析到@Value注解的时候,会根据key来查询spring中的map集合来获取value,从而赋值给对应属性。
@RestController //这个注解是@Controller+@ResponseBody的合体 public class JDBCController {@Value("${jdbcTest.ipAddress}")private String ipAddress;@Value("${jdbcTest.ipPort}")private String ipPort;@RequestMapping("/getMsg")public String name() {return ipAddress+"/"+ipPort;} }
运行
方式2:批量为属性赋值(禁止大写)
需要导入依赖包(版本依情况而定 https://mvnrepository.com/search?q=configuration)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<version>2.5.2</version>
</dependency>@RestController //这个注解是@Controller+@ResponseBody的合体 @ConfigurationProperties(prefix = "jdbcTest") public class JDBCController2 {/*** 指定前缀,如果属性名称相同,则可以通过set方法为属性赋值*/private String ipAddress;private String ipPort;public String getIpAddress() {return ipAddress;}public void setIpAddress(String ipAddress) {this.ipAddress = ipAddress;}public String getIpPort() {return ipPort;}public void setIpPort(String ipPort) {this.ipPort = ipPort;}@RequestMapping("/getMsg2")public String name() {return getIpAddress()+"/"+getIpPort();} }
需要对属性实现set,get方法
运行报错,也就是说用在这个批量赋值,不能有大写,改成小写就对了
整合指定配置文件
@PropertySources
其实一般情况下,yml文件中都是配置第三方的属性,例如mybatis,log,server等,把我们自己的配置放到其他的配置文件中
例如,在sources目录下新建两个yml文件或者properties文件,都可以,这里我用yml文件举例:
分别在这两个yml文件中输入
test.ip=192.168.3.5
test.port=8082和
test2.ip=192.168.3.6
test2.port=8083然后还是同@Value的方式获取
@RestController //这个注解是@Controller+@ResponseBody的合体 @PropertySources({@PropertySource("classpath:/yml/test.yml"),@PropertySource("classpath:/yml/test2.yml")}) public class JDBCController3 {@Value("${test.ip}")private String ipAddress;@Value("${test.port}")private String ipPort;@Value("${test2.ip}")private String ipAddress2;@Value("${test2.port}")private String ipPort2;@RequestMapping("/getMsg3")public String name() {return ipAddress+"/"+ipPort+"--------"+ipAddress2+"/"+ipPort2;} }
运行
这篇关于spring boot 利用配置文件,实现数据动态注入的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!