SpringBoot中属性赋值操作的实现

作者:小飞 时间:2022-05-04 18:10:30 

 说明:当程序中出现频繁变化的数据时,如果采用认为的方式进行修改并且编译打包则会导致代码的耦合性较高,不便于维护!所以能否为属性动态赋值?

属性固定值


//动态获取ip和端口数据
/**
* @responseBody
* 注解作用:
*   1.将对象转化成Json格式,
*   2.如果返回值是String类型,则返回字符串本身
*   3.一般客户端发起ajax请求时,采用该注解返回数据,将不会执行视图解析器操作
*/
@RestController
public class RedisController{
 private String host="192.168.126.112";
 private Integer port=6379;
 public String getMsg(){
   return host+":"+port;
 }
}

动态获取ip和端口数据

关于YML文件说明


#YML文件语法:
# 1.key:(空格) value 注意:value前面有个空格
# 2.key与key之间有层级的缩进关系
server:
port: 8090
#属性赋值操作,编辑属性时注意前缀,只要springboot启动,该数据就会被写入内存中,key-value格式
redis:
 host: 192.168.126.130
 port: 6379

为属性赋值操作


public class RedisController {

@Value("${redis.host}") //spel表达式
 private String host;  // = "192.168.126.130";   private String host;  // = "192.168.126.130";
 @Value("${redis.port}")
 private Integer port;  // = 6379;

@RequestMapping("/getMsg")
 public String getMsg(){

return host + ":" + port;
 }
}

指定配置文件为属性赋值

说明:由于YML配置文件中的数据一般都是系统级别的数据,所以一般的业务数据都会写到peoperties配置文件中。

SpringBoot中属性赋值操作的实现

编辑RedisController


@RestController
//动态导入pro配置文件,交给spring容器进行加载
@PropertySource("classpath:/properties/redis.properties")
public class RedisController {
 //通过YML给属性赋值
@Value("${redis.host}")//sple表达式
private String host;
 @Value("${redis.port}")
 private Integer port;
 @RequestMapping("/getMsg")
 public String getMsg(){
   return host+":"+port;
 }
 /*由于YML配置文件中的数据一般都是系统级别的数据,所以一般的业务数据
都会写到peoperties配置文件中*/
//通过properties给属性赋值
@Value("${pro.redis.host}")
 private String prohost;
 @Value("${pro.redis.port}")
 private Integer proport;
 @RequestMapping("/getpro")
 public String getpro(){
   return prohost+":"+proport;
 }
}

来源:https://segmentfault.com/a/1190000037551009

标签:Spring,Boot,属性赋值
0
投稿

猜你喜欢

  • response文件流输出文件名中文不显示的解决

    2023-02-06 19:41:02
  • Java的“Goto”与标签及使用详解

    2023-11-11 03:56:09
  • Springboot启动后执行方法小结

    2022-09-26 22:12:02
  • Java语言求解完美数代码分析

    2023-01-28 10:17:58
  • SpringBoot整合Kafka工具类的详细代码

    2022-07-03 14:12:13
  • JVM 心得分享(加载 链接 初始化)

    2023-09-01 19:17:50
  • spring声明式事务 @Transactional 不回滚的多种情况以及解决方案

    2023-07-06 10:50:33
  • Java中Map接口使用以及有关集合的面试知识点汇总

    2021-08-20 00:28:51
  • java实现简单石头剪刀布游戏

    2023-07-20 05:31:37
  • C#观察者模式(Observer Pattern)实例教程

    2021-07-13 02:53:39
  • Java中过滤器 (Filter) 和 拦截器 (Interceptor)的使用

    2023-07-07 00:20:28
  • jpa EntityManager 复杂查询实例

    2023-08-31 01:03:01
  • Java中常见的查找算法与排序算法总结

    2021-07-14 13:21:23
  • Java的封装类和装箱拆箱详解

    2023-09-20 22:41:22
  • java中javamail收发邮件实现方法

    2022-12-15 02:03:03
  • SpringBoot系列教程之防重放与操作幂等

    2021-12-07 11:51:12
  • Java集合去重导致的线上问题

    2022-01-24 04:52:29
  • Flutter ListView 上拉加载更多下拉刷新功能实现方法

    2023-06-25 19:51:57
  • Java使用BigDecimal进行运算封装的实际案例

    2023-06-20 02:22:26
  • Java与Oracle实现事务(JDBC事务)实例详解

    2023-02-12 12:47:22
  • asp之家 软件编程 m.aspxhome.com