ConfigurationProperties使用

news2024/11/29 6:38:52

ConfigurationPropertiesSpring Framework 的一个注解 用于将配置文件,环境变量中的值映射到一个 Java 对象的属性上。

简单使用

user:
  admin:
    name: admin
    password: 123456
    age: 18
@Data
@Component
@ConfigurationProperties(prefix = "user.admin")
public class User {
    private String name;

    private String password;

    private Integer age;
}

测试:

@SpringBootTest
class UserTest {

    @Autowired
    private User admin;

    @Test
    public void test(){
        System.out.println(admin);
    }
}

输出:可以看见他把属性按照名称已经注入到对象中去了。
image.png

类型转换

它还会额外绑我们坐下简单的 类型转换

public class User {
    // ...

    // 将 Integer 修改为 String
    private String age;
}

测试:age18
image.png

级联属性

@Data
public class Profile {
    private String account;
    private String sex;
}
public class User {
    // ...
    
    // 增加一个 profile
    private Profile profile;
}
user:
  admin:
    name: admin
    password: 123456
    age: 18
    # 增加级联属性配置
    profile:
      account: adminAccount
      sex: F

测试:
image.png

数组属性

public class User {
    // ...
    
    // 增加一个数组
    private String[] alias;
}
user:
  admin:
    name: admin
    password: 123456
    age: 18
    profile:
      account: adminAccount
      sex: F
    alias:
      - 管理员
      - 超级管理员
      - Admin
    # 两种配置方式都可以
    # alias[0]: 管理员
    # alias[1]: 超级管理员
    # alias[2]: Admin

image.png

什么时候赋的值呢?

public class User {
    // ...
    
    // 增加一个构造函数
    public User() {
        System.out.println("create user");
    }
}

它是先创建对象(Spring 创建的因为有 @Component),然后再赋值
image.png

与@Bean 结合使用

首先将 User.java 上的 @Component@ConfigurationProperties 去掉

@Configuration
public class UserConfig {


    @Bean
    @ConfigurationProperties(prefix = "user.admin")
    public User user(){
        User user = new User();
        user.setAge("19");
        return user;
    }
}

可以看出来在 @Bean 里面赋的值被覆盖了。就相当与它是在 return 后对返回的对象又对他进行了赋值
image.png

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

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

相关文章

Vue 满屏纵向轮播图

目录 前言轮播图效果展示具体实现实现思路具体代码前言 今天汇总一个需求,还是之前写的,要求写一个满屏的轮播图,准确的说,是鼠标滑动到轮播图的时候,轮播图固定在屏幕上,随着其中的轮播子项遍历结束后,解除固定的效果。原本我最开始想直接修改Element-UI的组件的,但是…

湖州网站建设快速建站

在当今信息化时代,网站的建设已成为企业和个人展示形象、传播信息的重要途径。湖州作为一个历史悠久、文化底蕴深厚的城市,发展迅速,涌现出许多需要快速建立网站的企业和个人。本文将探讨湖州网站建设的快速建站方案。 首先,快速建…

WRF-LES与PALM微尺度气象大涡模拟

针对微尺度气象的复杂性,大涡模拟(LES)提供了一种无可比拟的解决方案。微尺度气象学涉及对小范围内的大气过程进行精确模拟,这些过程往往与天气模式、地形影响和人为因素如城市布局紧密相关。在这种规模上,传统的气象模…

Camunda BPMN 基础组件

Camunda基础 一、参与者 参与者(Participants)是参与流程的对象,表示流程中活动的执行者,可以是一个组织、角色、系统或者个人。 图示为基础事件,除此之外还有: 消息开始事件(Message Start…

第二百零四节 Java正则表达式教程 - Java正则表达式量词

Java正则表达式教程 - Java正则表达式量词 我们可以指定正则表达式中的字符的次数可以匹配字符序列。 为了使用正则表达式表达一个数字或更多的模式,我们可以使用量词。 下表列出了量词及其含义。 量词含义*零次或更多次一次或多次?一次或根本不{m}正好m次{m,}至…

数字工厂管理系统的使用操作难不难

在当今智能制造的浪潮中,引入数字工厂管理系统无疑为企业带来了前所未有的效率提升与决策优化能力。然而,谈及数字工厂管理系统的操作难易程度,这并非一个可以一概而论的问题,它深深植根于系统的复杂性、用户技能水平、培训深度以…

python之matplotlib (8 极坐标)-圆与心

极坐标 极坐标图像的绘制类似于三维图像的绘制,只需要将projection参数由3d改为polar即可。 import numpy as np import matplotlib.pyplot as plt figplt.figure() axfig.add_subplot(projectionpolar)theta np.linspace(0, 2 * np.pi, 100) r np.sin(the…

企业高性能web服务器之Nginx

文章目录 Apache经典的web服务端Apache prefork 模型Apache work 模型(适应市场)Apache event 模型 网络I/O网络I/O模型I/O模型网络I/O模型 Nginx架构和安装Nginx源码编译环境准备安装nginx Nginx的平滑升级及版本回滚 Nginx架构和进程Nginx进程结构Ngin…

MapTR的BEV结果可视化到PV图中

MapTRv2这篇工作很有意思的一点是预测可视化的时候,在Argoverse数据集上把BEV的预测结果投影到PV图中,来更直观地评估预测结果的好坏,如下图所示。 这部分的代码在maptrv2分支中的tools/maptrv2/av2_vis_pred.py中 def points_ego2img(pts_e…

爬取央视榜单节目

爬取结果: 热播榜: 动画片: 电视剧: 纪录片: 特别节目: 代码部分: import re import pymongoimport requestsres requests.get(https://tv.cctv.com/top/index.shtml?spmC28340.PdNvWY0LYxC…

5款文案生成器,高效率生成短剧解说文案

短剧解说在自媒体写作中很受大家的欢迎,相比其它的视频内容写作,短剧解说不仅写作更简单,而且也更容易带来好的流量,但是,对于短剧解说写作者来说,让人觉得麻烦的一点是短剧解说的文案问题,然而…

如何兼顾PACS方案性能、容量和成本?一文了解SmartX分布式存储与应用一体化平台

重点内容 PACS 应用场景及 IT 基础设施需求分析现有 PACS 应用场景方案优缺点分析SmartX 分布式存储与应用一体化平台方案与关键技术解读SmartX 针对 PACS 应用场景的解决方案针对不同规模的 PACS 资源池配置模拟 PACS(Picture Archiving and Communication Syste…

vue3 + tsx 实现音乐播放器

1、效果图 2、文件路径 3、调用方式 audioData为音频的相关数据,lrc为歌词原文(带时间的字符串),举个例子: const lrc = ` [00:00.06]︿☆我不配☆︿ [au:]飒飒飒飒仨撒撒所所撒撒 [00:00.75] [00:01.11]演唱:周杰伦 [00:18.40]这街上太拥挤 太多人有秘密 ` 播放器调用…

[机器学习]--线性回归算法

线性回归算法原理 线性关系在生活中有很多案例: 摄氏度和华氏度的转化: F C ⋅ 9 5 32 F C \cdot\frac{9}{5}32 FC⋅59​32学科最终成绩的计算: 最终成绩 0.3 \times 平时成绩 0.7 \times 期末成绩 线性回归(Linear regression)就是利用回归函数对一个或多个自变量…

Linux系统编程:IPC通信和网络通信

1.IPC通信 IPC 进程间通信方式: 共享内存是最高效的进程间通信方式 共享内存: 1.是一块,内核预留的空间 2.最高效的通信方式,避免了用户空间到内核空间的数据拷贝 IPC通信方式 ---操作流程类…

BaseCTF2024 WP (主要为Rev)

Rev Rev视频解析:[Rev0:从零开始的逆向生活]BaseCTF2024 Week1 Rev 讲解_哔哩哔哩_bilibili [Week1] You are good at IDA [Week1] UPX mini 脱UPX标准壳,解base64 [Week1] Ez Xor 简单的反向异或,数据动调取一下 #base_xor e…

自开发多功能Vue组件:可定义滚动速度[回到顶部/底部]图标组件的安装与使用!

samdy-chan/vue3-goto-top-or-bottom Preview(本组件使用效果预览图) 本组件使用过程中的 GIF 动态效果图(图片经过压缩,视觉可能会有所模糊): Functional Description(功能描述) …

关于LLC知识10

在LLC谐振腔中能够变化的量 1、输入电压 2、Rac(负载) 所以增益曲线为红色(Rac无穷大)已经是工作的最大极限了,LLC不可能工作在红色曲线之外 负载越重时,增益曲线越往里面 假设: 输入电压…

谷歌反垄断案:美国科技史上最大的垄断诉讼与未来展望

引言 近年来,随着全球科技巨头的迅猛崛起,反垄断诉讼逐渐成为各国监管机构打击科技公司滥用市场地位的重要手段。美国作为全球科技产业的发源地,其对反垄断的关注也从未减弱。2023年,美国联邦法院针对谷歌发起的反垄断诉讼&#…

《Spring Cloud 微服务架构核心组件与 Nacos 配置管理详解》

微服务 1.SpringCloud中的核心组件 Spring Cloud Netflix组件 组件名称作用Eureka服务注册中心RibbonRibbonFeign声明式服务调⽤Hystrix客户端容错保护ZuulAPI服务⽹关 Spring Cloud Alibaba组件 组件名称作用Nacos服务注册中心Sentinel客户端容错保护 Spring Cloud原⽣及…