Properties-读取配置文件中的内容

news/2025/3/12 12:00:51/文章来源:https://www.cnblogs.com/Glory1020/p/18767147

Properties-读取配置文件中的内容

新建子项目properties

修改POM

父POM中加上子项目module。

image-20250312112830857

子项目依赖父项目,打包方式jar。

image-20250312112930532

引入spring-boot-configuration-processorlombok(Lombok 的安装与使用)

image-20250312113025446

spring-boot-configuration-processor的作用是生成配置的元数据信息,参考spring-boot-configuration-processor作用。编译后即可在application.yml中使用配置提示。

image-20250312113705981

指定resources路径

image-20250312114234000

完整代码:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.glory</groupId><artifactId>myspringboot</artifactId><version>0.0.1-SNAPSHOT</version></parent><packaging>jar</packaging><groupId>com.glory</groupId><artifactId>properties</artifactId><version>0.0.1-SNAPSHOT</version><name>properties</name><description>Properties project for Spring Boot</description><url>https://www.cnblogs.com/Glory1020</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--在 META-INF/additional-spring-configuration-metadata.json 中配置可以去除 application.yml 中自定义配置的红线警告,并且为自定义配置添加 hint 提醒--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional><!-- 表示当前依赖不向下传递 --></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- 为什么没加版本号 因为springboot引入了spring-boot-dependencies 则可以不用引入依赖包版本号 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId></dependency></dependencies><build><finalName>properties</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins><resources><resource><directory>src/main/resources</directory><filtering>true</filtering></resource></resources></build></project>

补全子项目结构

image-20250312114614336

子项目代码实现

ApplicationProperty

package com.glory.properties.property;import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;/*** @description: 项目配置* @author Glory* @date 2025/3/12 11:00*/
@Data
@Component
public class ApplicationProperty {@Value("${application.name}")private String name;@Value("${application.version}")private String version;
}

DeveloperProperty

package com.glory.properties.property;import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;/*** @description: 开发人员配置信息* @author Glory* @date 2025/3/12 11:00*/
@Data
@ConfigurationProperties(prefix = "developer")
@Component
public class DeveloperProperty {private String name;private String website;private String qq;private String phoneNumber;
}

PropertyController

package com.glory.properties.controller;import cn.hutool.core.lang.Dict;
import com.glory.properties.property.ApplicationProperty;
import com.glory.properties.property.DeveloperProperty;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;/*** @description: 测试Controller* @author Glory* @date 2025/3/12 11:00*/
@RestController
public class PropertyController {private final ApplicationProperty applicationProperty;private final DeveloperProperty developerProperty;@Autowiredpublic PropertyController(ApplicationProperty applicationProperty, DeveloperProperty developerProperty) {this.applicationProperty = applicationProperty;this.developerProperty = developerProperty;}@GetMapping("/property")public Dict index() {return Dict.create().set("applicationProperty", applicationProperty).set("developerProperty", developerProperty);}
}

application.yml

server:port: 8080servlet:context-path: /glory
spring:profiles:active: prod

application-dev.yml和application-prod.yml

application:name: dev环境 @artifactId@version: dev环境 @version@
developer:name: dev环境 XXXXXXXXwebsite: dev环境 http://XXXXXXXX.comqq: dev环境 XXXXXXXXphone-number: dev环境 XXXXXXXX
application:name: prod环境 @artifactId@version: prod环境 @version@
developer:name: prod环境 XXXXXXXXwebsite: prod环境 http://XXXXXXXX.comqq: prod环境 XXXXXXXXphone-number: prod环境 XXXXXXXX

访问localhost:8080/glory/property

image-20250312115236014

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab实现Arduino的PIL硬件仿真

使用 Arduino 硬件上的 PIL 进行代码验证和验证1. 尝试arduino的PIL程序例程-arduino_pil_bolck 1.1 准备安装包 安装arduino 硬件支持包安装编辑器MinG-w64 1.2实现步骤https: //ww2.mathworks.cn/help/simulink/supportpkg/arduino_ref/code-verification-and-validation-wit…

【设计模式】责任链模式教你如何优雅地分发任务

概述 在现实生活中,常常会出现这样的事例:一个请求有多个对象可以处理,但每个对象的处理条件或权限不同。例如,公司员工请假,可批假的领导有部门负责人、副总经理、总经理等,但每个领导能批准的天数不同,员工必须根据自己要请假的天数去找不同的领导签名,也就是说员工必…

macOS Sequoia 15.3.2 (24D81 | 24D2082) 正式版 ISO、IPSW、PKG 下载

macOS Sequoia 15.3.2 (24D81 | 24D2082) 正式版 ISO、IPSW、PKG 下载macOS Sequoia 15.3.2 (24D81 | 24D2082) 正式版 ISO、IPSW、PKG 下载 iPhone 镜像、Safari 浏览器重大更新和 Apple Intelligence 等众多全新功能令 Mac 使用体验再升级 请访问原文链接:https://sysin.org…

macOS Sequoia 15.3.2 (24D81) Boot ISO 原版可引导镜像下载

macOS Sequoia 15.3.2 (24D81) Boot ISO 原版可引导镜像下载macOS Sequoia 15.3.2 (24D81) Boot ISO 原版可引导镜像下载 iPhone 镜像、Safari 浏览器重大更新和 Apple Intelligence 等众多全新功能令 Mac 使用体验再升级 请访问原文链接:https://sysin.org/blog/macOS-Sequoi…

sublime 中文件夹名字不显示中文的配置

菜单栏:首选项 ---> 设置 用户 文件内容如下:{"auto_complete_triggers":[{"characters": " ","selector": "text.html"}],"color_scheme": "Packages/User/Monokai (SL).tmTheme","default_…

Apple Safari 18.3.1 发布 - macOS 专属浏览器 (独立安装包下载)

Apple Safari 18.3.1 发布 - macOS 专属浏览器 (独立安装包下载)Apple Safari 18.3.1 发布 - macOS 专属浏览器 (独立安装包下载) 适用于 macOS Sonoma 和 macOS Ventura 的 Safari 浏览器 18 请访问原文链接:https://sysin.org/blog/apple-safari-18/ 查看最新版。原创作品,…

带大家做了个 AI 项目,没想到这么简单!

现在已经是全民 AI 时代了,咱们程序员更要想办法榨干 AI,把 AI 利用起来。大家好,我是程序员鱼皮,现在已经是全民 AI 时代了,咱们程序员更要想办法榨干 AI,把 AI 利用起来。前几天我一时兴起,直播用 2 多个小时的时间,从需求分析开始,带大家做了一个 AI 海龟汤游戏项目…

No.57 Vue---模板语法

一、模板语法有了模板语法,页面的每个元素都可以动态处理了。 网址:https://cn.vuejs.org/src下面的文件:1.assets :存放静态资源 2.components:存放组件 3.App.vue:根组件,组件入口。 4.main.js :主入口文件。我们在HelloWorld.vue 文件中编写代码。可以把原来不需要的内…

阿里FPGA XCKU3P开箱

背景 淘了一个好玩的阿里FPGA加速卡,PCIe Gen3x8, SFP *2 最大25G,官方用来加速网络应用的,我拿到主要想用SFP 功能,来做一下CXP OVER FIVER 10G/25G的验证工作实验 连接JTAG,板子丝印有JTAG 线序名称,根据线序 连接即可,正常连接后就能看到FPGA XCKU3P,这是卡里面原有…

word的审阅-修订

word文档里删不掉文字,删除的时候,只会在文字上面画横线,怎么办?_百度知道

阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?

图表图片由阿里巴巴提供本文作者的观点:QwQ-32B 作为小型开源 AI 模型,在数学、编程等任务上表现接近甚至超越 DeepSeek-R1 671B模型,同时计算资源占用大幅降低,使其更易部署和使用。然而,在逻辑推理等方面仍存在推理不一致和语言混杂等问题,有待优化。作者总体认可 QwQ-…

YASKAWA机器人CPU板芯片损坏维修

在现代工业生产中,工业机器人的应用越来越广泛,其中YASKAWA机器人以其卓越的性能和稳定性受到了众多企业的青睐。然而,就像任何复杂的机械设备一样,YASKAWA机器人也可能会遇到各种故障,其中CPU板芯片损坏是较为常见的问题之一。本文将深入探讨YASKAWA机器人CPU板芯片损坏的…