Spring Boot设置值:分别用@ConfigurationProperties和@Value给属性设值及其区别

2023-05-16

目录

@ConfigurationProperties给属性映射值

编写JavaBean

编写配置文件

测试类:

运行结果:

@Value给属性设置值

编写JavaBean

运行结果:

@ConfigurationProperties和@Value对比

应用场景


@ConfigurationProperties给属性映射值

编写JavaBean

/*
* 将配置文件application.properties中配置的每一个属性值映射到当前类的属性中;
* @ConfigurationProperties:告诉springboot将本类中所有属性和配置文件中相关的配置进行绑定;
* prefix="person":指出将配置文件中person下的所有属性进行一一映射;
*
* 注意:只有当前这个类是容器中的组件时,才可以用容器提供的@ConfigurationProperties功能;
*
* */
 
@Component
@ConfigurationProperties(prefix="person")
public class Person {
 
    private String lastName;
    private Integer age;
    private Boolean boss;
    private Date birth;
 
    private Map<String,Object> maps;
    private List<Object> lists;
 
    @Override
    public String toString() {
        return "Person{" +
                "lastName='" + lastName + '\'' +
                ", age=" + age +
                ", boss=" + boss +
                ", birth=" + birth +
                ", maps=" + maps +
                ", lists=" + lists +
                '}';
    }
 
   getter...
   setter...
 
}

编写配置文件

#private String lastName;
#private Integer age;
#private Boolean boss;
#private Date birth;
#
#private Map<String,Object> maps;
#private List<Object> lists;
 
#配置person的属性值
person.last-name=zhangsan
person.age=18
person.boss=false
person.birth=1992/02/20
person.maps.k1=v1
person.maps.k2=111
person.lists=a,b,c
 

测试类:

@RunWith(SpringRunner.class)
@SpringBootTest
public class TestApplicationConfig {
    @Autowired
    Person person;
 
    @Test
    public void testPersonProperties(){
        System.out.println(person);
    }
}

运行结果:


@Value给属性设置值

编写JavaBean

@Component
//@ConfigurationProperties(prefix="person")
public class Person {
 
    @Value("${person.last-name}") // 从配置文件中获取值
    private String lastName;
 
    @Value("#{2*8}")  // spring表达式
    private Integer age;
 
    @Value("true") // boolean值
    private Boolean boss;
    private Date birth;
 
    private Map<String,Object> maps;
    private List<Object> lists;
 
    @Override
    public String toString() {
        return "Person{" +
                "lastName='" + lastName + '\'' +
                ", age=" + age +
                ", boss=" + boss +
                ", birth=" + birth +
                ", maps=" + maps +
                ", lists=" + lists +
                '}';
    }
}

运行结果:


@ConfigurationProperties和@Value对比

 @ConfigurationProperties@Value
功能根据配置文件中设置的属性,批量注入属性值单个指定值
松散语法支持(lastName可以写作last-name、last_name)不支持
SpEL(Spring表达式)不支持支持
JSR303数据校验支持(可以通过@Email等注解校验属性值是否符合要求)不支持
复杂类型封装(Map、List等类型)支持不支持

应用场景

  • 如果只是某个业务中需要获取配置文件中的某项值或者设置具体值,可以使用@Value;
  • 如果一个JavaBean中大量属性值要和配置文件进行映射,可以使用@ConfigurationProperties;

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Boot设置值:分别用@ConfigurationProperties和@Value给属性设值及其区别 的相关文章

  • 树莓派安装 docker 和 docker-compose

    树莓派安装 docker 和 docker compose 本文地址 xff1a blog lucien ink archives 518 因为总是频繁地初始化树莓派 xff0c 所以把安装 docker 的过程也记录下来 1 安装 doc
  • 打印 Go Test 的代码覆盖

    打印 Go Test 的代码覆盖 本文地址 xff1a blog lucien ink archives 520 使用方法 将这段代码复制进 zshrc 或者是 bashrc 等文件中 xff08 取决于你的命令行 xff09 xff0c
  • Typecho HTTPS 无法登陆后台

    Typecho HTTPS 无法登陆后台 本文地址 xff1a blog lucien ink archives 523 背景 因为百度云加速的 HTTPS 证书各种难用 xff0c 最近将博客的 CDN 解决方案整体迁移至 Cloud F
  • git 显示中文

    git 显示中文 本文地址 xff1a blog lucien ink archives 524 默认情况下 xff0c git 会对中文进行转译 xff0c 具体表现如下 xff1a span class token function g
  • 在 PVE 中安装 OpenWrt

    在 PVE 中安装 OpenWrt 本文地址 xff1a blog lucien ink archives 525 最近在捣腾 x86 软路由 xff0c 入门方案一般是底层采用 ESXi 或 PVE xff0c 虚拟层使用 iKuai 4
  • ARM:系统移植1

    一 系统移植的概述 1 目的 xff1a 1 软硬件可裁剪 xff1a 硬件发生变化 xff0c 软件要进行裁剪 xff0c 适配硬件 2 学习linux驱动的开发 xff0c 前提开发板上需要运行linux系统 移植linux内核系统到开
  • hdu 3700 cat

    Cat Time Limit 2000 1000 MS Java Others Memory Limit 32768 32768 K Java Others Total Submission s 181 Accepted Submissio
  • OpenWrt 安装中文语言包

    OpenWrt 安装中文语言包 本文地址 xff1a blog lucien ink archives 527 安装 luci i18n base zh cn 即可 xff08 这不是一篇水文 xff09
  • OpenWrt 安装 OpenClash

    OpenWrt 安装 OpenClash 本文地址 xff1a blog lucien ink archives 528 截止 2022 年 5 月 5 日 xff0c OpenWrt 的最新版本为 21 02 3 xff0c OpenCl
  • OpenWrt 添加自定义 Service

    OpenWrt 添加自定义 Service 本文地址 xff1a blog lucien ink archives 530 span class token shebang important bin sh etc rc common sp
  • PVE 虚拟机心跳检测并重启

    PVE 虚拟机心跳检测并重启 本文地址 xff1a blog lucien ink archives 531 不知为何 xff0c PVE 中的 OpenWrt 时不时会宕机 xff0c 这是背景 秉承着能用就行的思想 xff0c 写了一个
  • WSL2 安装、配置 Cuda、pytorch 记录

    WSL2 安装 配置 Cuda pytorch 记录 本文地址 xff1a blog lucien ink archives 532 最近整了张矿卡 xff0c 为了这盘醋 xff0c 包了盘饺子 虽然我已经预料到买前深度学习 xff0c
  • Windows 删除恢复分区

    Windows 删除恢复分区 本文地址 xff1a blog lucien ink archives 533 目前不论是 Windows 10 还是 Windows 11 xff0c 在安装完成后在 C 盘的后面都会有一个恢复分区 xff0
  • Debian 下 CUDA 生产环境配置笔记

    最近整了张 Tesla P4 xff0c 由于是半高卡 xff0c 索性就直接将其塞进了我的 NAS 里 xff0c 试图将原来用 onnx 跑在 CPU 上的模型迁移至 GPU 上 xff0c 遇到了些许问题 xff0c 在此记录下 本文
  • OpenWRT 扩容

    本文地址 xff1a blog lucien ink archives 535 官网原生的 overlay 只有 100M xff0c 不够用 本文只讨论新安装的情形 xff0c 已安装扩容的场景在本文不涉及 步骤 假设从官网下载的文件名为
  • PVE 下解决 iKuai 断流、重启问题

    本文地址 xff1a blog lucien ink archives 536 0 前言 懒得看过程可直接移步第 2 部分 之前入手了 N5105 43 i225 V xff0c 收到后装了 PVE 7 2 作为底层系统 xff0c 虚拟化
  • OpenWRT 安装 PassWall

    本文地址 xff1a blog lucien ink archives 537 访问 OpenWRT Download Server packges xff0c 找到自己的架构 xff0c 以 x86 64 为例 xff1a 在 etc o
  • ARM:系统移植2

    1 u boot启动程序 1 获取uboot源码渠道 1 xff09 u boot官方 xff1a https ftp denx de pub u boot 2 xff09 开发板厂家 3 xff09 芯片厂家 4 xff09 主管领导 x
  • ChatGPT 相关资料收集

    本文地址 xff1a blog lucien ink archives 538 本文用来收集各种和生成式模型相关的内容 xff0c 由于 ChatGPT 是其代表 xff0c 也是会被写入人类历史进程的一个名字 xff0c 所以便用 Cha
  • Debian配置apache2以及CA

    1 安装apache2 apt install y apache2 systemctl start apache2 启动服务 修改apache2配置文件 cd etc apache2 cp sites available default s

随机推荐

  • Debian之配置squid代理缓存

    1 安装服务 apt install squid 2 修改配置 vim etc squid squid conf set nu 显示行号 1390 转到第1390行 第1391行 http access allow localhost 修改
  • JAVA判断回文数的两种方法

    回文数是指正序 xff08 从左向右 xff09 和倒序 xff08 从右向左 xff09 读都是一样的整数 目录 方法一方法二 方法一 通过 61 61 String valueOf 方法把整数转换为字符串 xff0c 再用toCharA
  • java设置Access-Control-Allow-Origin允许多域名访问

    对于前后端分离的项目难免会遇到跨域的问题 xff0c 在设置跨域的问题中有许多需要注意的事情 xff0c 如本次将要将的设置Access Control Allow Origin使其允许多域名请求 1 设置允许多域名访问最简单的方法是使用通
  • Debian10配置静态ip

    查看网卡 xff1a ip addr 修改网卡网络地址配置 xff1a vim etc network interfaces 配置模板 xff1a auto span class token punctuation span 网卡名 spa
  • Docker(四)Image、Container

    一 Image镜像 Docker把应用程序及其依赖 xff0c 打包在image文件里面 只有通过这个文件 xff0c 才能生成Docker容器 image文件可以看作是容器的模板 Docker根据image文件生成容器的实例 同一个ima
  • 报错:ModuleNotFoundError: No module named ‘PIL‘

    运行代码的时候报错 xff0c 如图所示 xff1a 表示python中没有配置pillow库 纠正的步骤 xff1a window 43 R xff0c 并且在框中输入cmd 进入python所在的目录下 xff0c cd appdata
  • Window10 Excel复制粘贴卡死

    Windows10 Excel复制粘贴卡死 excel复制大量数据有时卡死 xff0c 关机重启也没用 网上找了好多方法没效果 xff0c 突然想到windows10有个云剪切板功能 xff0c 就想关了试试没想到解决了 xff0c 哈哈哈
  • (Latex)期刊论文里的数学字符怎么打出来的?

    xff08 Latex xff09 期刊论文里的数学字符怎么打出来的 导入包试一试 by 今天不飞了 最近边查文献边写文章 xff0c 看到别人文章公式里的变量那叫一个花里胡哨 xff0c 再看看自己的 不能忍 xff0c 我也要 于是搜集
  • 面试:ARM篇

    1 IIC I2C 1 由日本飞利浦公司研发的一种 串行半双工的总线 2 采用两根线 SCL 和 SDA 特点 1 硬件比较简单 比较节约资源的一种总线 2 主要用于两个芯片之间的通信 也可以是多主机多从机 但基本不用 3 传输速度一般在4
  • 工作日志——首次通过k8s Elasticsearch获取新建Pod的日志缓慢的原因

    使用k8s Elasticsearch查看pod日志的时候偶尔会遇到这样的情况 xff0c 在创建完容器并运行后去查看日志的时候总是加载不出来 xff0c 需要等待十几秒甚至一分钟才能加载 我 有幸 被分配来解决这个问题 xff0c 经过一
  • WSL2 安装 Ubuntu-20.04 子系统CUDA(Win10和Win11)

    1 安装WSL的CUDA驱动 驱动下载地址 xff1a https developer nvidia com cuda wsl 选好你自己的显卡类型 下载完成后直接默认安装就行 2 安装WSL2 xff08 使用Ubuntu 20 04版本
  • ROS MELODIC ARM64的一些源

    默认注释了源码镜像以提高 apt update 速度 xff0c 如有需要可自行取消注释 deb https mirrors tuna tsinghua edu cn ubuntu ports bionic main restricted
  • 手写spring核心原理Version3

    上两篇博文手写spring核心原理Version1和手写spring核心原理Version2分别介绍了如何完成一个自动注入 以及如何用设计模式进行重构 xff0c 接下来这篇将仿照SpringMVC对参数列表以及methodMapping进
  • Netty Reactor线程模型

    前两篇博文分别介绍了Java 线程模型 xff1a BIO NIO和Reactor线程模型 xff0c 本篇博文将介绍Reactor线程模型在Netty中的实际应用 Netty模型 Netty模型的简单介绍 Netty 主要基于主从 Rea
  • JVM:类的加载过程

    类的加载过程 类的加载过程整体可以分为五个阶段 xff1a 加载 验证 准备 解析 初始化 xff0c 其中验证 准备和解析又被概括为链接 加载 通过一个类的全限定名获取定义此类的二进制字节流 xff1b 将这个字节流所代表的的静态存储结构
  • Hive On Tez 进度条不显示问题修复

    问题描述 用Hive客户端使用beeline命令执行SQL的时候 xff0c 有些情况下会显示进度条 xff0c 有些情况不显示进度条 显示进度条的情况 设置默认执行引擎为Tez lt property gt lt name gt hive
  • DataTables从安装到入门的详细教程之一:DataTables介绍及安装

    DataTables介绍 Datatables是一款jquery表格插件 它是一个高度灵活的工具 xff0c 可以将任何HTML表格添加高级的交互功能 分页 xff0c 即时搜索和排序 几乎支持任何数据源 xff1a DOM xff0c j
  • CSS换行和不换行

    强制不换行 div white space nowrap 自动换行 div word wrap break word word break normal 强制英文单词断行 div word break break all
  • Linux:Shell脚本基本命令

    24 span class token keyword if span span class token punctuation span span class token punctuation span span class token
  • Spring Boot设置值:分别用@ConfigurationProperties和@Value给属性设值及其区别

    目录 64 ConfigurationProperties给属性映射值 编写JavaBean 编写配置文件 测试类 xff1a 运行结果 xff1a 64 Value给属性设置值 编写JavaBean 运行结果 xff1a 64 Confi