手撸,自定义application.yml配置项

2023-10-31

前言

我们现在在springboot中,极其简单的配置就可以完成以前很复杂的配置,application.yml配置很不错,闲着没事噶,就研究了一下yml如何通过在yml文件中配置来自动加载一些配置,还有就是好奇他是怎么实现一点击就跳转到配置类中的。

教程

1、加入配置依赖,及maven插件

		<!--配置注释处理以来-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <version>2.6.4</version>
        </dependency>

 		<!--maven 插件-->
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
</plugins>

2、元注解 分析

我们写一个外部的配置类,我们还要在配置类上边加入两个元注解 @Component :组件注解,将该配置文件放到ioc容器中,@ConfigurationProperties 外部配置文件注解,表明这是一个外部的配置文件。

特别注意的是,我们配置的文件一定要放入到ioc容器中,否则的话@ConfigurationProperties就会发现不了这个文件,从而报错。

如下图,我们点进去这个注解,看他是怎么定义的。可以看到,下面的两个属性,并且都取了一个别名,也就是说,不管我们在指定value,还是 profix 属性,我们可以看到,它们都是一个作用。都是有效的绑定对象的前缀。
在这里插入图片描述

3、配置文件

我们的这个配置文件就是说,当我们在yml中点击配置属性的时候跳转的类。下面是我写的一个实体类配置,setter和getter方法我就不在下面列举了。

@Component
@ConfigurationProperties(prefix = "user")
public class User {
    /**
     * Column: id
     * Type: INT
     */
    private Integer id;

    /**
     * Column: username
     * Type: VARCHAR(12)
     */
    private String username;

    /**
     * Column: phone
     * Type: BIGINT
     */
    private Long phone;

配置好了之后呢,已经要maven编译一遍,不然不知道。如下图
在这里插入图片描述

4、测试能不能用

如下图可以看到,我们输入user前缀的时候,就已经将我们的配置项提示出来了。说明我们的配置很成功。
在这里插入图片描述

5、怎么从配置里面取值,并加载呢?

这个也是很简单的,因为我们将我们的配置放到了ioc容器中了,要实现自动加载取值并实现某种逻辑,我们将这个配置注入到我们需要执行的方法或者类中,并将要需要自动执行的逻辑或者类放入到ioc中。

第一,我们在配置中加入值

在这里插入图片描述

第二、编写一个自动配置类

我这里就不做什么很复杂的逻辑了,就简单输出一下我取到的值,告诉其中的原理就行,要是有其他的逻辑就是按照这个原理来的。

@Configuration
public class CommonConfig {

    @Autowired
    User user;

    @Bean
    public void get(){
        System.out.println(user.getId());
    }
}

启动一下,可以看到配置自动加载出来。并输出出来了。
在这里插入图片描述

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

手撸,自定义application.yml配置项 的相关文章

  • Vue+ElementUI el-radio列表单选

    实现效果 对某条数据进行数据修改 步骤 1 添加单选按钮 点击获取该条信息的id 并将id传给修改按钮 div 1 修改按钮 span size mini 修改信息 span 2 列表单选按钮
  • OptiSystem应用:光放大器EDFA的仿真

    Optisystem可以设计和模拟光纤放大器和光纤激光器 此处展示的案例可在Optisystem安装文件夹samplesOptical amplifiers中找到 该教程将会介绍光放大器库这一部分 光放大器 全局参数 使用Optisyste
  • Linux系统下Java 转换Word到PDF时,结果文档内容乱码的解决方法

    本文分享在Linux系统下 通过Java 程序代码将Word转为PDF文档时 结果文档内容出现乱码该如何解决 具体可参考如下内容 1 问题出现的背景 在Windows系统中 使用Spire Doc for Java将Word文档转换为PDF
  • [深度学习入门]Python基础语法(上)

    目录 一 程序设计基本方法 1 计算机是根据指令操作数据的设备 2 编程设计语言概述 3 计算机编程 4 IPO程序编写方法 5 使用计算机解决问题 二 基础知识 1 pyCharm 为人工智能领域常用的IDE 2 Python的简单使用

随机推荐

  • NVIDIA Shield 消失的解决办法和Moonlight串流

    Foreword 之前有用Moonlight串口pc的游戏到公司电脑 然后突然有一天串流就不可用了 NVIDIA Shield 就消失了 怎么都开不起来 串流就失败了 然后也记录一下Moonlight串流的操作 由于NVIDIA单方面宣布停
  • vue+element 根据状态,显示不同的操作按钮

    效果截图 VUE 核心功能代码片段
  • 【yolov5】yolov5训练自己的数据集全流程----包含本人设计的快速数据处理脚本

    关于yolo应用时能用到的脚本集合 推荐收藏 https chenlinwei blog csdn net article details 127299428 文章目录 1 工程化快速yolo训练流程指定版 无讲解 1 1 抽样数据集 xm
  • Spring MVC中如何进行转发和重定向呢?

    转自 Spring MVC中如何进行转发和重定向呢 重定向 我们将用户的定向到另一个视图 jsp 中处理 此操作是一个客户端行为 类似与url的链接操作 转发 将用户的请求转发到另一个视图或controller处理 此操作是一个服务器端行为
  • 【日常遇坑总结】类成员变量的空间分配和初始化顺序

    遇坑 今天在用QT的时候 传从主ui页面创建的一个指针到建模ui页面 在运行时程序发生奔溃 经过测试发现问题 主页面的指针和传进建模页面的指针不是同一个 导致在调用类指针方法时发生错误 测试 以下代码仅展示测试代码的部分 不可运行 但能从下
  • spring+ jcaptcha(spring框架下的彩色验证码)

    从jcaptcha官方网站下载jcaptcha的发行包 并将其发行包中的jar文件考贝到本地项目WEB INF目录下的lib目录中 官方网址http jcaptcha sourceforge net 在web xml文件中配置 Java代码
  • 嵌入式知识图谱WiKi(嵌入式开发/研发入门教程和路线图)

    嵌入式知识图谱WiKi 作者 将狼才鲸 创建时间 2022 02 18 因图床更新不方便 最新版请跳转到Gitee文档源文件仓库网址 才鲸 嵌入式知识图谱WiKi CSDN有图的文档阅读网址 嵌入式知识图谱WiKi Bilibili视频讲解
  • 数据结构--二叉树

    前言 关于二叉树知识的考察主要分两部分 第一部分在初赛中体现 一般考察二叉树的节点个数 树高和遍历问题 1 二叉树定义 在计算机科学中 二叉树是每个结点最多有两个子树的树结构 通常子树被称作 左子树 left subtree 和 右子树 r
  • Log4j2日志框架

    Log4j2日志框架 1 简介及入门示例 1 背景介绍 官网地址 https logging apache org log4j 2 x Maven 仓库地址 https search maven org artifact org apach
  • 机器学习心得体会总结

    第一 线性代数是把复杂问题简单化解决 但是简单问题已经很复杂了 第二 国内还没有一本关于机器学习讲得连老百姓都能看得明白的书籍 第三 克拉默法则 逆矩阵 初等变换都可以求解方程Ax b 后者方法更简单
  • C语言

    目录 一 实验环境 二 黑白圣诞树 三 windows h简介 四 windows h实现彩色圣诞树 1 设置用户窗口 2 移动光标 3 修改字体颜色 4 绘制圣诞树 5 绘制雪景 6 完整代码 7 运行 一 实验环境 编译环境 vc 6
  • 【因果推断与机器学习】带入坑——之辛普森悖论

    因果推断与机器学习 Why you might Care Simpson s Paradox 考虑一个纯粹假设的未来 那里有一种被称为COVID 27的新疾病在人类中普遍存在 在这个纯粹假设的未来中 已经开发了两种治疗方法 治疗A和治疗B
  • 西门子dcs系统组态手册下载_PLC/DCS/HMI 知识普及

    什么是PLC 可编程控制器 简称PLC Programmable logic Controller 是指以计算机技术为基础的新型工业控制装置 在1987年国际电工委员会颁布的PLC标准草案中对PLC做了如下定义 PLC是一种专门为在工业环境
  • 原版安装Win10 1909专业版 64位MSDN镜像2020 05

    原版安装Win10 1909专业版 64位MSDN镜像2020 05 一 更新内容 1 去除预装kms激活 未激活的可以通过桌面自行激活 2 提升商店购买应用的速度性能 3 解决在IE浏览器中阻碍下载和安装 NET组件的问题 4 更新修复补
  • Qt5.14.2 MInGW静态编译配置教程

    Qt5 14 2 MinGW静态编译教程 1 安装Qt 1 1 下载安装包 1 2 安装 2 工具的下载安装 3 检查上述配置是否成功 4 静态编译qmake 4 1 静态编译配置 4 2 编译 4 3 安装静态库 4 4新增静态编译 1
  • SQL Server(五)-视图

    与表一样 视图也是由字段和记录组成的 只是这些字段和记录来源于其他被引用的表或视图 所以视图并不是真实存在的 而是一张虚拟的表 视图中的数据并不是存在于视图中的 而是存在于被引用的数据表当中的 当被引用的数据表中的记录内容改变时 视图中的记
  • 临沂地区的OLED拼接屏有哪些独特优点?

    临沂oled拼接屏是一种高清晰度的显示屏 由多个oled屏幕拼接而成 它可以用于商业广告 展览 会议 演出等场合 具有高亮度 高对比度 高色彩饱和度 高刷新率等优点 能够吸引人们的眼球 提高信息传递效果 临沂oled拼接屏的优点之一是高亮度
  • 虚拟偶像是未来趋势吗?

    Hello 我的朋友 这里是古希伯 今天聊聊 虚拟偶像行业是不是未来的趋势 虚拟偶像零都知道吧 日本初音未来 洛天依诸多的 日本虚拟偶像行业市场是最为发达的 日漫这一块本身具有先天优势存在 乃至于国内诸多公司都没有能力完全复刻 虚拟偶像目前
  • slot-插槽的基本使用-具名插槽的使用(重要)

    slot 插槽的基本使用 具名插槽的使用 为什么使用slot slot翻译为插槽 1 在生活中很多地方都有插槽 电脑的USB插槽 插板当中的电源插槽 2 插槽的目的是让我们原来的设备具有更多的扩展性 3 比如电脑的USB我们可以插入U盘 硬
  • 手撸,自定义application.yml配置项

    文章目录 前言 教程 1 加入配置依赖 及maven插件 2 元注解 分析 3 配置文件 4 测试能不能用 5 怎么从配置里面取值 并加载呢 第一 我们在配置中加入值 第二 编写一个自动配置类 前言 我们现在在springboot中 极其简