美文网首页
SpringBoot中属性赋值操作的实现

SpringBoot中属性赋值操作的实现

作者: 平凡的柚子 | 来源:发表于2021-01-27 13:23 被阅读0次

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

    属性固定值

    //动态获取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配置文件中。

    编辑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;
      }
    }
    

    最新2020整理收集的一些高频面试题(都整理成文档),有很多干货,包含mysql,netty,spring,线程,spring cloud、jvm、源码、算法等详细讲解,也有详细的学习规划图,面试题整理等,需要获取这些内容的朋友请加Q君样:11604713672

    相关文章

      网友评论

          本文标题:SpringBoot中属性赋值操作的实现

          本文链接:https://www.haomeiwen.com/subject/wuonzktx.html