java springboot通过EnableConfigurationProperties全局声明bean并处理装配

news2024/11/26 18:43:54

Spring Boot中 我们想条件装配一个类 首先 我们要声明他的bean
而 EnableConfigurationProperties 可以直接将 要全局声明的类绑定在 属性类中
例如 我们随便创建一个类 就叫 textData 吧 参考代码如下

package com.example.webdom.domain;

import org.springframework.boot.context.properties.ConfigurationProperties;

@ConfigurationProperties("textdata")
public class textData {
    private int time;
    private String units;

    public int getTime() {
        return time;
    }

    public String getUnits() {
        return units;
    }

    public void setTime(int time) {
        this.time = time;
    }

    public void setUnits(String units) {
        this.units = units;
    }

    @Override
    public String toString() {
        return "textData{" +
                "time=" + time +
                ", units='" + units + '\'' +
                '}';
    }
}

这里 我们用 toString 限制了 后面输出整个类 输出两个属性 让人看得懂

然后 我们定义的两个属性 写上get和set方法 方便与外界交互
然后 注解 ConfigurationProperties 指定读取配置文件中的 textdata对象默认装配到我们这个类的属性中

既然都写了 ConfigurationProperties 用配置文件 textdata 了
我们找到 application 配置文件 加上这两个值 是什么值并不是很重要 反正类型和名字跟属性类对得上就行
在这里插入图片描述
然后 我们启动类编写代码如下

package com.example.webdom;

import com.example.webdom.domain.textData;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;

@SpringBootApplication
@EnableConfigurationProperties({textData.class})
public class WebDomApplication {

    public static void main(String[] args) {
        SpringApplication.run(WebDomApplication.class, args);
    }

}

唯一特别的就是 @EnableConfigurationProperties({textData.class}) 我们指定 textData类 默认声明这个bean
不难看出 EnableConfigurationProperties中是个数组 可以给多个类的

然后 我们在需要用 textData类的地方 默认装配 然后输出
在这里插入图片描述
这里 我们textData中并没有声明bean的代码 但是 EnableConfigurationProperties声明了

所以我们就可以在项目的任何一个地方 直接去条件装配这个bean
运行结果如下
在这里插入图片描述
这个输出显然很完美 不但 textData拿到了 ConfigurationProperties也从配置文件中装配了属性

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

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

相关文章

【数据库系统概论】第六章关系数据理论

一句话,研究关系数据库理论就是为了设计出合适的关系模式,也即合适、高效的表 6.1为什么研究关系数据理论 一:概念回顾:关系模式 关系模式:关系模式就是对关系的描述,可以表示为 R ( U , D , D O M , F…

C++指针解读(4)-- 指针和数组(一维数组)

1、数组及数组的访问 1.1 数组的存储方式 在内存中,数组是一块连续的区域。数组的存储结构有如下特点: (1)数组中的元素是同质的数据; (2)索引从0开始; (3&#xff…

数据库安全-H2 databaseElasticsearchCouchDBInfluxdb漏洞复现

目录 数据库安全-H2 database&Elasticsearch&CouchDB&Influxdb 复现influxdb-未授权访问-jwt 验证H2database-未授权访问-配置不当CouchDB-权限绕过配合 RCE-漏洞CouchDB 垂直权限绕过Couchdb 任意命令执行 RCE ElasticSearch-文件写入&RCE-漏洞Elasticsearch写…

Linux Kernel 4.13 RC6发布:正式版9月3日发布

美国当地时间上周末,大神Linus Torvalds发布了Linux Kernel 4.13内核的又一候选版本。上周发布的RC5版本更新幅度也要比上上周的RC4要小,Linus Torvalds表示本周发布的RC6版本属于常规更新,在过去一周的开发过程中并没有出现任何意外。RC6版本…

ESP32网络开发实例-从SD卡加载Web页面文件

从SD卡加载Web页面文件 文章目录 从SD卡加载Web页面文件1、应用介绍2、软件准备3、硬件准备4、Web页面代码实现5、Web服务器代码实现在文中,将展示如何构建一个 Web 服务器,为存储在SD卡中的 HTML 和 CSS 文件提供服务。 我们不必将 HTML 和 CSS 文本硬编码入代码中,而是创建…

如何提升网站排名和用户体验:优化网站速度

网站的排名和用户满意度直接受到站点内容的加载速度影响深远。通过精心的网站优化,您不仅可以提高排名,还可以提供更出色的用户体验,尽管用户可能不会察觉到您的网站加载得更快,但这是一个非常有意义的改进。在这篇文章中&#xf…

计算机毕业设计 基于Web铁路订票管理系统 火车订票管理系统的设计与实现 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

Git纯操作版 项目添加和提交、SSH keys添加、远程仓库控制、冲突解决、IDEA连接使用

Git 文章目录 Git项目简单克隆通用操作添加和提交回滚分支变基分支优选 远程项目推送认证抓取、拉取和冲突解决 IEDA类软件连接 最近学原理学的快头秃了,特此想出点不讲原理的纯操作版,不过还是放个图吧 项目简单克隆 git在本人日常中最重要的功能还是…

ExposureDiffusion: Learning to Expose for Low-light Image Enhancement论文阅读笔记

南洋理工大学、鹏城实验室、香港理工大学在ICCV2023发表的暗图增强论文。用diffusion模型来进行raw图像暗图增强,同时提出了一个自适应的残差层用来对具有不同信噪比的不同区域采取不同的去噪策略。 方法的框图如下所示: 一张raw图片可以由信号和噪声…

scratch绘制多彩五角星 2023年9月中国电子学会图形化编程 少儿编程 scratch编程等级考试三级真题和答案解析

目录 scratch绘制多彩五角星 一、题目要求 1、准备工作 2、功能实现 二、案例分析

Cadence 设计实践笔记-小哥allegro 2层板笔记

本章节主要跟着B站PCB入门首选视频-小哥Cadence Allegro 2层板视频,结合自己的实践一步步完成一个完整的PCB板的设计。 视频链接地址: PCB入门首选视频-小哥Cadence Allegro 2层板视频_哔哩哔哩_bilibili 规范建立文件夹 建立八个文件夹 DATASHEET 主要存放设计项目…

强化科技创新“辐射力”,中国移动的数智化大棋局

作者 | 曾响铃 文 | 响铃说 丝滑流畅的5G连接、每时每刻的数字生活服务、无处不在的智能终端、拟人交流的AI助手、梦幻般的XR虚拟现实、直接感受的裸眼3D…… 不知不觉,那个科幻片中的世界,越来越近。 数智化新世界的“气氛”,由一个个具…

window系统进行goolge代理配置(falcon proxy+burpsuite)

linux系统自带burpsuite抓包软件,只要火狐下个代理扩展就可以抓包了,想着每次抓包还得去虚拟机抓就有点小烦躁,所以想着给自己本机也弄个burpsuite,有想法就开整! 一、goole代理扩展插件falcon proxy 1、由于goole应…

项目管理工具的功能与帮助一览

项目管理的概念并不新鲜,但是伴随着技术解决方案的出现,项目管理工具帮助企业建立规范科学的管理流程,为企业的管理工作提供助力。 Zoho Projects 是一款适合全行业的标准化项目管理工具,它提供了重要的功能,如任务列…

海康威视、大华、宇视rtsp实时读取网络摄像头

目录 1 RTSP介绍 1.海康 1.2 大华 1.3 宇视 2.实时读取 2.1 cv2.VideoCapture打开视频流 2.2 ffmpeg打开视频流 2.3 c 1 RTSP介绍 RTSP(Real-Time Streaming Protocol)是一种用于实时流媒体传输的网络协议。它被设计用于在客户端和服务器之间传输…

双指针--浅试

在做题中发现一件很奇怪的事情: 我看到了题目描述,心中有了一个解题的思路,然后尝试解题,看题解的时候发现“双指针法”我很熟悉但是又感觉不太懂。 把题解代码看了以后却与我的代码大差不差,才恍然大悟,原…

非类型模板参数+模板的特化

目录 一、非类型模板参数 二、模板的特化 (一)函数模板特化 (二)类模板举例 1. 全特化 2. 偏特化 一、非类型模板参数 模板参数分类:类型形参与非类型形参。类型形参即:出现在模板参数列表中&#x…

String、StringBuilder、StringBuffer区别

String、StringBuilder、StringBuffer区别 面试官:请你谈谈String、StringBuilder、StringBuffer区别 作为经典Java八股,是面试必考的热门点。 下面让我们一起来看一下他们的区别吧! 主要是测试他们的效率和应用场景,具体语法不在…

苍穹外卖(六) redis缓存解决数据库压力

二节 直接用代码操作redis缓存 三, 四节 间接使用Spring Cache 注解完成redis缓存操作 可直接看三,四节 需要帮助理解注释 回去看第二节 一.问题说明 二. 实现思路 通过Redis来缓存菜品数据, 减少数据库查询操作 Redis简介 Redis是一个基于内存的key-value结构数据库。Redi…

2. vue-sy-admin: 基于vue3+TypeScript的自定义指令(directives)的封装及示例

自定义指令directives在项目特别是后台管理类的项目中使用的尤其多(个人经验),每个人编写的自定义指令也各不相同,一个人的时候还没啥感觉,在多人合作的项目中统一编码规范就变得很有必要了,这样看着舒服的同时也更方便后期维护。…