springboot yml里面配置list 日期日期格式的postMen 发送json

@Value("#{'${ipWhiteList.ips}'.split(',')}")
List<String> ipList;

 

 

ipWhiteList:ips: 10.0.0.2,127.0.0.1

 

 

 

日期个是的postMen  发送json

{
    "multiple": 39,
    "tenantNo": 39,
    "endCheckNum": 39,
    "meterNo": 39,
    "checkUser": 39,
    "checkTime": "2020-01-01T01:01:09+08:00"
}

 

 

 

https://blog.csdn.net/ZYC88888/article/details/88748516

spring @Value注入map、List、Bean、static变量方式及详细使用

ZhaoYingChao88 2019-03-22 19:12:05  7594  收藏 9
展开
使用@Value注入map、List

实体类

List:

    @Value("${test.list.ids:1,2,3}")
    private List<String> testList;
或者

    @Value("${test.list.ids:1,2,3}")
    private String[] testList;
 

List 指定分隔符

@Value("#{'${test.list}'.split(',')}")
private List<String> list;

配置文件

test.list: topic1,topic2,topic3
split(‘,’)只以’,’为分隔符,也可以换成别的

当配置文件中没有key时,也可以使用key:default_value的方法设置默认值 

 map:

@Value("#{${test.maps}}")  
private Map<String,String> maps;
配置文件
 

test.maps: "{key1: 'value1', key2: 'value2'}"

ps: 注意上面的map解析中,一定要用""把map所对应的value包起来,要不然解析会失败,导致不能转成 Map<String,String>。

 
通过@Value( ) 给静态变量注入值 
spring 不允许/不支持把值注入到静态变量中,如:

@Value("${ES.CLUSTER_NAME}")
private static String CLUSTER_NAME;
在方法中获得的CLUSTER_NAME,会得到null

解决
好在spring支持set方法注入,我们可以利用非静态setter 方法注入静态变量。如:

private static String CLUSTER_NAME;
 
@Value("${ES.CLUSTER_NAME}")
public void setClusterName(String clusterName) {
CLUSTER_NAME = clusterName;
}
@Value必须修饰在方法上,且set方法不能有static  这样就能获得值了

 Spring中使用@Value如何按类型注入值
示例:

容器中,有一个Runnable的bean

@Configuration
public class Config {
 
    @Bean("myrun")
    public Runnable run() {
        return () -> System.out.println("this is spring run");
    }
}
想使用@Value的方式,把这个bean注入进来,这种是按bean的名字注入。

 

@Service
public class Runner {
 
    @Value("#{myrun}")
    private Runnable run;
    
    public void run() {
        run.run();
    }
}
#{…}和${…} 
${…}用法
通过@Value(“${spelDefault.value}”)可以获取属性文件中对应的值,但是如果属性文件中没有这个属性,则会报错。可以通过赋予默认值解决这个问题,如

@Value("${test.value:127.0.0.1}")
#{…}用法
#{…}的{}里面的内容必须符合SpEL表达式,详细的语法,以后可以专门开新的文章介绍,这里只演示简单用法:

 

${…}和#{…}混合使用
${...}和#{...}可以混合使用,如下文代码执行顺序:通过

${server.name}
从属性文件中获取值并进行替换,然后就变成了 执行SpEL表达式

#{'server1,server2,server3'.split(',')}
// SpEL: 传入一个字符串,根据","切分后插入列表中, #{}和${}配置使用(注意单引号,注意不能反过来${}在外面,#{}在里面)

@Value("#{'${server.name}'.split(',')}") private List<String> servers;
在上文中在#{}外面,${}在里面可以执行成功,那么反过来是否可以呢${}在外面,#{}在里面,是不能。

因为spring执行${}是时机要早于#{}。${}在外面,#{}在里面是非法操作。

小结

#{…} 主要用于加载外部属性文件中的值

${…} 用于执行SpEl表达式,并将内容赋值给属性

#{…} 和${…} 可以混合使用,但是必须#{}外面,${}在里面

 ConfigurationProperties注入
@Data
@ConfigurationProperties(prefix = "jdbc")
public class SpringBootProperty {
    private String url;
    private String driverClassName;
    private String username;
    private String password;
 
}
注解解析:
  @ConfigurationProperties注解声明当前类为属性读取类
  prefix:读取数据文件中,前缀为jdbc的值
在类上定义各个属性,名称必须与属性文件中jdbc.后面部分一致
属性文件是定义在application.yml文件中的
spring:
  application:
    name: property
server:
  port: 8083
jdbc:
  driverClassName: com.mysql.jdbc.Driver
  url: jdbc:mysql://127.0.0.1:3306/test
  username: root
  password: 123
二者区别    @ConfigurationProperties    @Value
功能    批量注入配置文件中的属性    一个个指定
松散绑定(松散语法)    支持    不支持
SpEL    不支持    支持
JSR303数据校验    支持    不支持
复杂类型封装    支持    不支持
 参照:https://segmentfault.com/a/1190000018536906
————————————————
版权声明:本文为CSDN博主「ZhaoYingChao88」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ZYC88888/article/details/88748516

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/327658.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ajax基本案例详解之$.get的实现

前面我已经写过一篇ajax的$.ajax的实现了&#xff0c;其中html&#xff0c;css&#xff0c;doindex.jsp里面已经详细列出来了&#xff0c;这篇主要写的是$.get()的实现&#xff0c;其中html&#xff0c;css&#xff0c;doindex.jsp都和Ajax基本案例详解之$.get的实现 里面的…

Java IO: 文件

转载自 Java IO: 文件 译文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197gmail.com) 在Java应用程序中&#xff0c;文件是一种常用的数据源或者存储数据的媒介。所以这一小节将会对Java中文件的使用做一个简短的概述。这篇文章不会对每一个技术细节都做出解释&#xf…

SpringBoot运行原理初探

运行原理初探 其中它主要是依赖一个父项目&#xff0c;主要是管理项目的资源过滤及插件&#xff01; <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.5.RELEASE&…

一款全新的基于IntelliJ和ReSharper的跨平台.NET IDE

JetBrains Rider在今年一月份露面&#xff0c;后来的大部分时间被用在了内部早期预览版上&#xff0c;还没有为公开发布做好准备。而现在&#xff0c;我们可以下载早期预览版&#xff0c;并感受在IntelliJ平台上开发.NET是一种什么体验。早期预览版还存在一些问题&#xff0c;不…

mysql自动插入的时间不对 差8小时

MySQL插入时间差八小时问题的解决方法 更新时间&#xff1a;2019年12月15日 10:19:12 转载 作者&#xff1a;lankeren 这篇文章主要给大家介绍了关于MySQL插入时间差八小时问题的解决方法&#xff0c;文中通过示例代码介绍的非常详细&#xff0c;对大家学习或者使用MySQL具…

Ajax基本案例详解之$.post的实现

Ajax的post实现&#xff1a; 看这篇之前建议大家去看看前面两篇文章&#xff1a; 1.Ajax基本案例详解之$.ajax的实现 2.Ajax基本案例详解之$.get的实现 现在写一下$.post()里面的主要内容&#xff1a; $.post("doindex.jsp","email"$("#emai…

windows为什么把linux打败了,快二十年了,人们为什么还是没有抛弃 Windows 转向 Linux?...

原标题&#xff1a;快二十年了&#xff0c;人们为什么还是没有抛弃 Windows 转向 Linux&#xff1f;自伟大的 Linux 操作系统诞生以来&#xff0c; 许多网友都试图列举出 Linux 可能是更好选择的具体原因 &#xff0c;其中包括&#xff1a;Linux 上的更新速度很快&#xff0c;“…

Java IO 概述

转载自 Java IO 概述 译文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197gmail.com) 校对&#xff1a;方腾飞 在这一小节&#xff0c;我会试着给出Java IO(java.io)包下所有类的概述。更具体地说&#xff0c;我会根据类的用途对类进行分组。这个分组将会使你在未来的工…

ASP.NET Core WebListener 服务器

WebListener是一个只能运行在Windows上的ASP.NET Core web服务器&#xff0c;基于Http.Sys内核模块驱动构建。在不借助IIS作为反向代理服务器的情况下&#xff0c;WebListener可以替代Kestrel用来与直接与互联网相连。实际上&#xff0c;WebListener不能和IIS或IIS Express一起…

git删除本地分支、删除远程分支 复制分支

git删除本地分支、删除远程分支 It_BeeCoder 2019-05-15 09:47:20 80268 收藏 15 展开 https://blog.csdn.net/lihua5419/article/details/81706905 1、查看所有分支 git branch -a 2、查看当前所在分支 git branch 3、删除本地的bug_xzx分支 git branch -d bug_xzx 4…

kotlin能用嵌入式linux,Kotlin在项目中的应用和踩过的坑

应用空类型安全Kotlin引入了可空类型(用&#xff1f;标识)&#xff0c;在编译期杜绝了可空类型直接调用方法的可能。var a: String "abc"a null // 编译错误var b: String? "abc"b null // okval l a.lengthval l b.length // 错误&#xff1a;变量…

ASP.NET Core的Kestrel服务器

Kestrel是一个基于libuv的跨平台ASP.NET Core web服务器&#xff0c;libuv是一个跨平台的异步I/O库。ASP.NET Core模板项目使用Kestrel作为默认的web服务器。 Kestrel支持以下功能&#xff1a; HTTPS用于启用不透明升级的WebSockets位于Nginx之后的高性能Unix sockets Kestrel …

RandomAccessFile

转载自 RandomAccessFile RandomAccessFile是用来访问那些保存数据记录的文件的&#xff0c;你就可以用seek( )方法来访问记录&#xff0c;并进行读写了。这些记录的大小不必相同&#xff1b;但是其大小和位置必须是可知的。但是该类仅限于操作文件。 RandomAccessFile不属于I…

JSR303常见参数

常见参数 NotNull(message "名字不能为空")private String userName;Max(value 120, message "年龄最大不能查过120")private int age;Email(message "邮箱格式错误")private String email;空检查Null 验证对象是否为nullNotNull 验证对象是…

解决:Could not find metadata org.apache.maven.plugins:maven-archetype-plugin/maven-metadata.xml in loc

我的方法 1.电脑可以Google 你要开启那个小飞机 2.笔记本连接手机热点 3.重新操作秒下下来 总结&#xff1a; 公司的网太差 &#xff0c; 也有可能做了外网访问的限制 下面是一个大神的方法 https://blog.csdn.net/Ajax_mt/article/details/81870086 解决:Could n…

Linux 临时表空间满了,Temporary表空间100%解决方案

说明&#xff1a;temp表空间的TS# 为 3*, So TS# 1 4一下是摘自Metalink的说明The DROP_SEGMENTS event~~~~~~~~~~~~~~~~~~~~~~~Available from 8.0 onwards.DESCRIPTIONFinds all the temporary segments in a tablespace which are notcurrently locked and drops them.For t…

Ajax传递json数据

Ajax的传递json数据的实现&#xff1a; 看这篇之前建议大家去看看前面两篇文章&#xff1a; 1.Ajax基本案例详解之$.ajax的实现 2.Ajax基本案例详解之$.get的实现 现在来看一下具体的内容&#xff0c;在index.jsp的<script>里面写&#xff1a; $.ajax({url:"…

ASP.NET Core服务器综述

ASP.NET Core应用通过一个进程内的HTTP服务器实例实现运行&#xff0c;这个服务器实例侦听HTTP请求并将请求作为组成HttpContext的一组请求功能集暴露给我们的应用程序。 ASP.NET Core搭载两个服务器实现&#xff1a; Kestrel是一个基于libuv的跨平台HTTP服务器&#xff0c;lib…

多环境切换---SpringBoot

多环境切换 优先级由高到底&#xff0c;高优先级的配置会覆盖低优先级的配置&#xff1b; profile是Spring对不同环境提供不同配置功能的支持&#xff0c;可以通过激活不同的环境版本&#xff0c;实现快速切换环境&#xff1b; [外链图片转存失败,源站可能有防盗链机制,建议…