热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

springbootrabbitmq配置_SpringBoot自定义配置

SpringBoot自定义配置参考链接SpringBoot自定义配置开发配置创建设置添加打包依赖使用配置简单配置复杂配置稍微复杂一点的配置开发配置在开发项目时,需要设置许多配置,使
3dbc166e0aa67fd75ed04e22a3298ebe.png

Spring Boot自定义配置

参考链接

Spring Boot自定义配置开发配置创建设置添加打包依赖使用配置简单配置复杂配置稍微复杂一点的配置

开发配置

在开发项目时, 需要设置许多配置, 使用常亮类是个不错的选择, 但是使用Spring Boot开发的同学可以使用一种更加合理的方式设置配置信息.

1bd5707a586a80ea872d7a1cff67af12.png

创建设置

如创建自定义配置时, 不错的习惯是以自己的包名开始, 逐步细分进行配置, 注意变量的命名要求是单词间-分割命名, 对应变量应为驼峰式命名

topic-exchange配置对应topicExchange变量

com:example:rabbitmq:topic-exchange: spring-boot-exchangequeue: spring-bootis-valid: false

3cf7227b40ed840d1c7e75d56b691d67.png

在IDEA中自定义配置会报warning, 无法理解配置属性, 其实也就是没从包的META-INF中查找到这个配置属性, 可以通过Alt + Enter选择Define configuration key’…..’来创建配置, 其中包含了对应的名称, 类型, 描述等, 方便日后开发维护, 自动创建后的配置文件位于resources/META-INF/additional-spring-configuration-metadata.json:

{"properties": [{"name": "com.example.rabbitmq.topic-exchange","type": "java.lang.String","description": "RabbitMQ topic exchange name."},{"name": "com.example.rabbitmq.queue","type": "java.lang.String","description": "RabbitMQ queue name."},{"name": "com.example.rabbitmq.is-valid","type": "java.lang.String","description": "Test field."}]}

添加打包依赖

这个时候添加META-INF后发现警告还在, 打开IDEA给的链接后发现少了个依赖, 应该是IDEA从target/classes下的classpath去扫描META-INF, 所以要添加下依赖进行打包

↗ 你可以使用这个依赖包很容易地从被注解了@ConfigurationProperties的条目生成自定义配置的metadata文件. 这个依赖jar包包含了Java的注解处理器, 可以在项目构建时调用, 要使用这个处理器, 包含这个依赖即可.

使用Maven依赖应该声明为optional, 如下:

org.springframework.bootspring-boot-configuration-processortrue

之后进行打包处理

$ mvn install

打包后的taget/classes中多了个spring-configuration-metadata.json文件, 就是这个processor生成的:

392835a3e1ff6a5989241e29629818e6.png

使用配置

简单配置

使用SpringBoot配置时, 通常我们都使用@Value注解进行导入, 简单的单个值得时候很方便:

@Value("${message:Hello default}")private String message;

复杂配置

配置项变得多了, 可以通过一个类来装载配置, 这时候可以通过@ConfigurationProperties来处理导入配置工作:

// 这个注解还是需要的, 生成相应的get set方法, java问题吧, 没有这个配置注入不进去@Data@Component// 配置前缀, 对应配置信息@ConfigurationProperties(prefix = "com.example.rabbitmq")public class RabbitMQProperties {// 为了方便使用我使用public修饰public String queue;​public String topicExchange;}

稍微复杂一点的配置

@ConfigurationProperties(prefix="server")public class ServerProperties {​private String name;​private Host host;​// ... getter and setters​ // 配置深度public static class Host {​private String ip;​private int port;​// ... getter and setters​}​}




推荐阅读
  • Spring Boot 实战(一):基础的CRUD操作详解
    在《Spring Boot 实战(一)》中,详细介绍了基础的CRUD操作,涵盖创建、读取、更新和删除等核心功能,适合初学者快速掌握Spring Boot框架的应用开发技巧。 ... [详细]
  • 在Windows环境中优化提交Spark任务的方法与实践
    在Windows环境中优化提交Spark任务的方法与实践 ... [详细]
  • PHP中元素的计量单位是什么? ... [详细]
  • PHP图床源码:集成化图床管理系统解决方案
    本项目提供了一套集成化的图床管理系统解决方案,适用于需要高效管理图片资源的场景。系统结构简洁,无需复杂的后台支持。主要文件包括 `huluxia.php`、`index.html`、`inews.php`、`kw.php` 和 `zz.php`,每个文件都承担了特定的功能,确保系统的稳定运行和易用性。 ... [详细]
  • 基于Node.js的高性能实时消息推送系统通过集成Socket.IO和Express框架,实现了高效的高并发消息转发功能。该系统能够支持大量用户同时在线,并确保消息的实时性和可靠性,适用于需要即时通信的应用场景。 ... [详细]
  • 本项目在Java Maven框架下,利用POI库实现了Excel数据的高效导入与导出功能。通过优化数据处理流程,提升了数据操作的性能和稳定性。项目已发布至GitHub,当前最新版本为0.0.5。该项目不仅适用于小型应用,也可扩展用于大型企业级系统,提供了灵活的数据管理解决方案。GitHub地址:https://github.com/83945105/holygrail,Maven坐标:`com.github.83945105:holygrail:0.0.5`。 ... [详细]
  • Ceph API微服务实现RBD块设备的高效创建与安全删除
    本文旨在实现Ceph块存储中RBD块设备的高效创建与安全删除功能。开发环境为CentOS 7,使用 IntelliJ IDEA 进行开发。首先介绍了 librbd 的基本概念及其在 Ceph 中的作用,随后详细描述了项目 Gradle 配置的优化过程,确保了开发环境的稳定性和兼容性。通过这一系列步骤,我们成功实现了 RBD 块设备的快速创建与安全删除,提升了系统的整体性能和可靠性。 ... [详细]
  • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • MySQL性能优化与调参指南【数据库管理】
    本文详细探讨了MySQL数据库的性能优化与参数调整技巧,旨在帮助数据库管理员和开发人员提升系统的运行效率。内容涵盖索引优化、查询优化、配置参数调整等方面,结合实际案例进行深入分析,提供实用的操作建议。此外,还介绍了常见的性能监控工具和方法,助力读者全面掌握MySQL性能优化的核心技能。 ... [详细]
  • 深入解析Spring Boot自动配置机制及其核心原理
    Spring Boot 的自动配置机制是其核心特性之一,旨在简化开发过程并提高效率。本文将深入探讨这一机制的工作原理,解释其如何通过智能化的类路径扫描和条件注解实现自动装配。通过对 Spring Boot 自动配置的详细解析,读者将能够更好地理解和应用这一强大功能,从而在实际项目中更加高效地利用 Spring Boot。 ... [详细]
  • 探讨 jBPM 数据库表结构设计的精要与实践
    探讨 jBPM 数据库表结构设计的精要与实践 ... [详细]
  • 根据不同环境需求,利用 Vue CLI 的 `npm run build` 命令对项目进行定制化打包,如测试、预发布和生产环境。通过配置 `process.env` 变量,实现不同环境下接口和服务的动态切换,确保应用在各阶段都能高效运行和调试。 ... [详细]
  • Windows环境下详细教程:如何搭建Git服务
    Windows环境下详细教程:如何搭建Git服务 ... [详细]
  • 第五章详细探讨了 Red Hat Enterprise Linux 6 中的 Ext3 文件系统。5.1 节介绍了如何创建 Ext3 文件系统,包括必要的命令和步骤,以及在实际操作中可能遇到的问题和解决方案。此外,还涵盖了 Ext3 文件系统的性能优化和维护技巧,为用户提供全面的操作指南。 ... [详细]
author-avatar
窝大华_221
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有