spring boot 配置属性值获取注解@Value和@ConfigurationProperties比较

功能比较 :

 
  @ConfigurationProperties  @Value 
映射赋值 批量注入配置文件中的属性 一个个指定
松散绑定(松散语法)① 支持 不支持
SpEL② 不支持 支持
JSR303数据校验③ 支持 不支持
复杂类型封装④ 支持 支持

说明

① 指属性在配置文件中value是否对驼峰,下划线“_“ 、连接线”-“ 都支持,如下写法,在javaBean中,属性值firstName是否都能获取到值

– person.firstName:使用标准方式
– person.first-name:大写用-
– person.first_name:大写用_
– PERSON_FIRST_NAME:推荐系统属性使用这种写法 

② value="字面量:{value}、从环境变量:${key}、配置文件中获取值:#{SpeL}
  列(《javaEE开发的颠覆者》代码):

  

@Value("I Love You!")
private String normal;
@Value("#{systemProperties[‘os.name‘]}")
private String osName;
@Value("#{ T(java.lang.Math).random() * 100.0 }")
private double randomNumber;
@Value("#{demoService.another}")
private String fromAnother;
@Value("classpath:com/wisely/highlight_spring4/ch2/el/test.txt")
private Resource testFile;
@Value("http://www.baidu.com")
private Resource testUrl;
@Value("${book.name}")
private String bookName;

③ 参考:https://blog.csdn.net/qq_28867949/article/details/78922520

④ 对object、map 、array 等对象的赋值。如(注意配置文件,对象属性的写法) :

private Date birth;
private Map<String,Object> maps;
private List<Object> lists;
private Dog dog;

原文地址:https://www.cnblogs.com/jonrain0625/p/11330417.html

时间: 2024-09-30 15:53:52

spring boot 配置属性值获取注解@Value和@ConfigurationProperties比较的相关文章

Spring Boot 配置优先级顺序

http://www.cnblogs.com/softidea/p/5759180.html 一般在一个项目中,总是会有好多个环境.比如: 开发环境 -> 测试环境 -> 预发布环境 -> 生产环境 每个环境上的配置文件总是不一样的,甚至开发环境中每个开发者的环境可能也会有一点不同,配置读取可是一个让人有点伤脑筋的问题. Spring Boot提供了一种优先级配置读取的机制来帮助我们从这种困境中走出来. 常规情况下,我们都知道Spring Boot的配置会从application.pro

笔记:Spring Boot 配置详解

Spring Boot 针对常用的开发场景提供了一系列自动化配置来减少原本复杂而又几乎很少改动的模板配置内容,但是,我们还是需要了解如何在Spring Boot中修改这些自动化的配置,以应对一些特殊场景 配置文件 Spring Boot的默认配置文件位置为 src/main/resources/application.properties ,关于 Spring Boot 应用的配置文件内容都可以在该文件中,根据我们引入的不同模块,可以在这里定义容器端口号.数据库连接信息.日志级别等各种配置信息,

Spring Boot 配置加载顺序详解

使用 Spring Boot 会涉及到各种各样的配置,如开发.测试.线上就至少 3 套配置信息了.Spring Boot 可以轻松的帮助我们使用相同的代码就能使开发.测试.线上环境使用不同的配置. 在 Spring Boot 里面,可以使用以下几种方式来加载配置.本章内容基于 Spring Boot 2.0 进行详解. 1.properties文件: 2.YAML文件: 3.系统环境变量: 4.命令行参数: 等等-- 我们可以在 Spring Beans 里面直接使用这些配置文件中加载的值,如:

Spring Boot 配置元数据指南

1. 概览 在编写 Spring Boot 应用程序时,将配置属性映射到 Java bean 上是非常有用的.但是,记录这些属性的最好方法是什么呢? 在本教程中,我们将探讨 Spring Boot Configuration Processor 和 关联的 JSON 元数据文件,该 JSON 文档记录每个属性的含义.约束等. 2. 配置元数据 作为开发人员,我们开发的大多数应用程序在某种程度上必须是可配置的.但是在通常情况下,我们并不能够真正的理解配置参数的作用,比如它有默认值,又或者是过时的,

spring boot配置德鲁伊

1.引入相关依赖,全部依赖是上一篇spring boot+mybatis依赖的基础上,再加上下边的依赖,如下: <!-- Druid数据库连接池组件 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.18</version> </dependency> 1 2 3 4

spring boot配置mybatis和事务管理

spring boot配置mybatis和事务管理 一.spring boot与mybatis的配置 1.首先,spring boot 配置mybatis需要的全部依赖如下: <!-- Spring Boot 启动父依赖 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId>

Spring boot配置多个Redis数据源操作实例

原文:https://www.jianshu.com/p/c79b65b253fa Spring boot配置多个Redis数据源操作实例 在SpringBoot是项目中整合了两个Redis的操作实例,可以增加多个: 一般在一个微服务生态群中是不会出现多个Redis中间件的,所以这种场景很少见,但也不可避免,但是不建议使用,个人建议,勿喷. 基于Maven3.0搭建,spring1.5.9.RELEASE和JDK1.8 1.新建SpringBoot项目,添加依赖 <dependency> &l

Spring Boot 配置Druid数据源

Spring Boot 配置Druid数据源 Druid是阿里巴巴的一个开源项目,使用这个数据源的好处就是可以使用监控功能,提供了一个简单的后台,可以监控数据源的数据 配置方式 导入坐标 <!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</art

Spring Boot配置FastJson报错&#39;Content-Type&#39; cannot contain wildcard type &#39;*&#39;

https://www.cnblogs.com/xiaopotian/p/8654993.html 升级到最新版本的fastjson以后报的错,查了一下资料,发现 fastjson从1.1.41升级到1.2.28之后,请求报错:json java.lang.IllegalArgumentException: 'Content-Type' cannot contain wildcard type '*' 原因是在1.1.41中,FastJsonHttpMessageConverter初始化时,设置