SpringBoot中属性赋值操作的实现

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

属性固定值

//动态获取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;
  }
}

到此这篇关于SpringBoot中属性赋值操作的实现的文章就介绍到这了,更多相关SpringBoot 属性赋值内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • spring boot空属性赋值问题与aspect日志实现方法

    空属性赋值问题 MyBeanUtils类 public class MyBeanUtils { public static String[] getNullPropertyNames(Object source){ BeanWrapper beanWrapper=new BeanWrapperImpl(source); PropertyDescriptor[] pds=beanWrapper.getPropertyDescriptors(); List<String> nullProperty

  • SpringBoot中属性赋值操作的实现

    说明:当程序中出现频繁变化的数据时,如果采用认为的方式进行修改并且编译打包则会导致代码的耦合性较高,不便于维护!所以能否为属性动态赋值? 属性固定值 //动态获取ip和端口数据 /** * @responseBody * 注解作用: * 1.将对象转化成Json格式, * 2.如果返回值是String类型,则返回字符串本身 * 3.一般客户端发起ajax请求时,采用该注解返回数据,将不会执行视图解析器操作 */ @RestController public class RedisControll

  • 详解在SpringBoot中@Transactional事物操作和事物无效问题排查

    目录 1.spring事务管理简述 2.SpringBoot中使用@Transactional注解 2.1.开启事务注解 2.2.在目标类.方法上添加注解@Transactional 2.3.细化事务配置 3.@Transactional事务实现机制 3.1.整体事务控制流程 3.2.Spring AOP的两种代理 3.3.事务操作的底层实现 4.@Transactional使用注释实现及问题排查 4.1.数据库引擎是否支持事务? 4.3.注解所在的类是否被加载成Bean? 4.2.注解所在方法

  • SpringBoot的属性赋值@Value的用法说明

    目录 今天学习到了SpringBoot 的属性赋值@Value用法 先总结 例子 @Value的使用及注意事项 为什么使用 参数形式 前置条件(注意事项) 今天学习到了SpringBoot 的属性赋值@Value用法 先总结 @Value(" 张三 "):直接附在属性名上,在Bean初始化时,会赋初始值 @Value(" #{ 20 - 2 } "):可以用 #{ },里面可以写表达式,当然也可以直接 @Value(" #{ 18 } ") 或

  • javascript中对Attr(dom中属性)的操作示例讲解

    复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>    <title>20120430d

  • 谈谈javascript中使用连等赋值操作带来的问题

    前言 文章标题这句话原本是在国外某JavaScript规范里看到的,当时并没有引起足够的重视,直到最近一次出现了bug发现JS里的连等赋值操作的特色(坑). 网上搜索一番发现一个非常好的连等赋值的(来源1,来源2)例子: var a = {n:1}; a.x = a = {n:2}; console.log(a.x); // 输出? 答案是: console.log(a.x); // undefined 不知道各位有没有答对,至少我是答错了. 遂借此机会好好看看JS连等赋值是怎么回事 赋值顺序?

  • SpringBoot普通类获取spring容器中bean的操作

    前言 在spring框架中,是无法在普通类中通过注解注入实例的,因为sping框架在启动的时候,就会将标明交给spring容器管理的类进行实例化,并梳理他们彼此的依赖关系,进行注入,没有交给spring容器管理的普通类,是不会进行注入的,即使你使用了注入的相关注解.这个时候,如果我们需要在普通类中获取spring容器中的实例,就需要一些特定的方法,这里将整理一下如何在springboot中实现这样的方法. 创建springboot工程demo 项目结构图示 项目结构说明 service包下为de

  • SpringBoot中引入MyBatisPlus的常规操作

    一.前言 近来参与一个电力大数据项目,开发小组决定在 DAO 层使用 MyBatisPlus --国产.新颖.强大.轻量. 官方API地址:http://mp.baomidou.com/#/?id=%E7%AE%80%E4%BB%8B 二.通用 CRUD 通过本项目(表少,数据量大,非常适合) 发现 MyBatisPlus 在 单表CRUD 方面 比原来的的 MyBatis 的有着绝对优势: VS PS MyBatis MyBatisPlus 代码生成器 数据库有些表的字段发声改变 ① 再次运行

  • java springboot中如何读取配置文件的属性

    目录 配置文件 (1)使用注解@Value映射 (2)使用@ConfigurationProperties映射 (3)推荐使用:极简方式 @Bean和@ConfigurationProperties注解一起使用, @RequiredArgsConstructor注解实现自动注入 总结 我们知道在比较大型的项目的开发中,比较经常修改的属性我们一般都是不会在代码里面写死的,而是将其定义在配置文件中,之后如果修改的话,我们可以直接去配置文件中修改,那么在springboot的项目中,我们应该如何实现这

  • Ruby编程中的赋值相关操作

    在老版本的Ruby中,赋值语句的返回值是设置该属性的方法的返回值.在Ruby1.8中,赋值语句的值总是参数的值而方法的返回值将被丢掉. class Test def val=(val) @val = val return 99 end end t = Test.new a = t.val=2 a ->2 在老版本中,a将被赋值语句设置为99,而在Ruby1.8中,它的值为2. Ruby的赋值实际是以并行方式执行的,所以赋值语句右边的值不受赋值语句本身的影响.在左边的任意一个变量或者属性被赋值之前

  • vue中v-for循环给标签属性赋值的方法

    1.给每个按钮添加class的属性值以及icon图标属性值,通过v-for实现自动添加样式,发现属性值无法显示,切记在属性前加上v-bind <html> <head> <meta charset="utf-8"> <title>v-for在线测试实例</title> <script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"> &

随机推荐