Spring Boot 常用配置以及自定义配置

【体系-微服务架构】22-Spring Boot Spring生态链 spring-boot入门 阅读详情

Spring Boot 常用配置简单介绍及使用

多环境配置

Spring Boot Profile

在 Spring Boot 中多环境配置文件名需要满足 application-{profile}.properties 的格式,其中 {profile} 对应环境标识

  • application-dev.properties 开发环境
  • application-test.properties 测试环境
  • application-prod.properties 生产环境

在 application.properties 文件中通过 spring.profiles.active 属性来设置,其值对应 {profile} 值。比如:

spring.profiles.active=dev

Spring Boot 在启动时会加载 application-dev.properties 配置文件

Maven Profile

如果我们使用的构建工具是 Maven,也可以通过 Maven 的 Profile 特性来实现多环境配置以及打包。这样做的好处是我们不需要每次打包的时候改变 spring.profiles.active 的值,打包的时候 mvn clean package -P ${profile} 使用 -P 参数指定

pom.xml 配置如下:

<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <profileActive>dev</profileActive>
        </properties>
        <activation>
            <!-- 开发启动 Spring Boot 时默认加载 application-dev.properties -->
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <id>test</id>
        <properties>
            <profileActive>test</profileActive>
        </properties>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <profileActive>prod</profileActive>
        </properties>
    </profile>
</profiles>
<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <excludes>
                <exclude>application-dev.properties</exclude>
                <exclude>application-test.properties</exclude>
                <exclude>application-prod.properties</exclude>
            </excludes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <includes>
                <include>application.properties</include>
                <include>application-${profileActive}.properties</include>
            </includes>
        </resource>
    </resources>
</build>

application.properties 配置文件如下

## profile (dev,test,prod) default dev
spring.profiles.active=@profileActive@

日志配置

Spring Boot 使用 Commons Logging 进行日志记录,但保留底层日志实现(Java Util Logging, Log4J2 and Logback),默认使用 Logback 作为底层实现。

日志常用配置


## Logback 日志级别 ERROR, WARN, INFO, DEBUG or TRACE
logging.level.com.renguangli.config=debug
logging.level.org.springframework.web=info

## 日志文件名称 相对或绝对路径
logging.file=./logs/springboot.log
## 控制台日志格式
# logging.pattern.console=
## 日志文件格式
# logging.pattern.file=

除了在 application.properties 文件中配置日志外还可以使用 xml 配置文件格式。对于 Logback 日志框架来说 Spring Boot 默认加载文件为名为 logback-spring.xml, logback.xml 的配置文件,log4j2 默认加载 log4j2-spring.xml or log4j2.xml 的配置文件。当让也可以使用如下配置指定:

logging.config=classpath:logback.xml

下面是一个完整的 Logback 日志配置文件


下面是一个完整的 log4j2 日志配置文件


自定义配置

@Value

config.name=hello
config.value=world

对于像上面的自定义配置我们可以这样使用

@Value("${config.name}")
private String name;

@Value("${config.value}")
private String value;

一两个配置的话还好,一旦配置多起来就比较难看,对于这种情况我们可以使用 Spring Boot 提供的 @ConfigurationProperties 注解来简化配置

配置类

@Component
@ConfigurationProperties(prefix = "config")
public class ConfigProperties {

    private String name;

    private String value;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }
}

如何使用呢?

@Autowired
private ConfigProperties configProperties;

自定义配置自动提示

在 pom.xml 文件中添加依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

第二步我们需要配置META-INF/spring-configuration-metadata.json文件来描述。为了方便我们可以通过 idea 自动生成。

在 idea 设置中搜索 Annotation Processors,接下来勾住 Enable annonation processing 就完成了。

我们可以在编译后的文件中看到自动生成的spring-configuration-metadata.json。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MfdIS8Iy-1589785423191)(https://renguangli.com/images/spring-boot/spring-boot-metadata.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v6dd3wEk-1589785423194)(https://renguangli.com/images/spring-boot/spring-boot-config.jpg)]

参考资料

boot-features-logging

Springboot之自定义配置

Spring Boot Profiles实现多环境下配置切换

示例代码在 Github 上地址:spring-boot-config

Spring Boot Actuator 详解:让你的应用可监控、可管理、更健壮 info端点用于暴露应用的自定义信息,例如应用版本、构建时间、团队信息等。这些信息可以通过或文件配置。配置或info:app:developer:访问"app": {},Actuator 提供了强大的扩展机制,允许我们自定义端点、指标、健康检查,满足更复杂的需求。可以创建自定义的 Endpoint 类,并使用@Endpoint等注解定义端点的操作方法。可以通过自定义指标注册器,添加额外的指标标签、全局标签等。除了之外,Actuator 还提供了接口,用于更灵活地组织和扩展健康检查信息。 阅读详情

相关推荐

Spring Boot 配置文件设置(三)

简介 上篇我们做了一些简单的运行文件的配置,本篇带领大家来认识常用的一些配置,当然了关于Spring Boot 这些配置太多太多了,如果想了解更多的话直接上官网参考一下,了解相关案例如本篇的配置。 application.properties配置官方指南参考。 Spring Boot有以下方式配置 application.properties配置 在 IntelliJ IDEA 开发工具中创...

Eirunye的博客 2856

SpringBoot配置文件中spring.profiles.active配置详解

SpringBoot配置文件中spring.profiles.active配置详解 1、多环境配置 我们在开发Spring Boot应用时,通常同一套程序会被应用和安装到几个不同的环境,比如:开发、测试、生产等。其中每个环境的数据库地址、服务器端口等等配置都会不同,如果在为不同环境打包时都要频繁修改配置文件的话,那必将是个非常繁琐且容易发生错误的事。 对于多环境的配置,各种项目构建工具或是框架的基本思路是一致的,通过配置多份不同环境的配置文件,再通过打包命令指定需要打包的内容之后进行区分打包,Spring

南瓜的博客 8万+

Spring Boot 中自定义 SpringMVC 配置,到底继承谁?

文章转自江南一点雨:https://www.javaboy.org/2019/0816/spring-boot-springmvc.html 一、Spring Boot 中自定义 SpringMVC 配置,到底继承谁? 用过 Spring Boot 的小伙伴都知道,我们只需要在项目中引入spring-boot-starter-web依赖,SpringMVC 的一整套东西就会自动给我们配置好...

Thinkingcao的专栏 757

springboot配置 spring.profiles.active spring.profiles.include @profile

Profile 可以和 @Bean 一起使用, 当配置文件, 例如application.properties等, 添加了下列条目👇。application.properties 等号可以换成冒号空格, 冒号左边不能有空格。👆上面这种既能用于.properties 也能用于.yml .的方法就会在启动时被执行, 当然,类要加。在application.yml中引入。-横杠(减号)不能少。

kfepiza的博客 3125

昇腾Ascend310b部署deepseek-r1-7b的学习记录

9.鲲鹏服务器+昇腾卡(Atlas 300I pro)搭建DeepSeek-R1-Distill-Qwen-7B(自己存档详细版)5.如何使用昇腾Ascend 300I Pro 310P芯片 单卡运行DeepSeek-R1-Distilled-Qwen-7B。6.鲲鹏服务器+昇腾卡(Atlas 300I pro)搭建DeepSeek-R1-Distill-Qwen-7B。7.鲲鹏+昇腾部署DeepSeek-R1-Distill-Qwen-32B+Open-webui。

maken 2375

5分钟搞定单细胞marker基因气泡图:scDotPlot保姆级教程(含Seurat适配)

本文提供了一份详细的scDotPlot R包使用教程,帮助用户在5分钟内完成单细胞marker基因气泡图的绘制。教程涵盖环境准备、Seurat和SingleCellExperiment对象的适配处理、进阶可视化技巧及自动化报告生成,特别适合生物信息学新手和临床研究者快速掌握这一高效的可视化工具。

weixin_29047545的博客 262

Spring 自定义环境配置

Spring 自定义环境配置

xiaozi的博客 426

什么事LLVM和Clang?Clang与GCC有什么区别?Clang如何使用?

这个问题主要讲Xcode编译器的认知,在学习iOS之前有必要学习一下Objective-C的编译环境。 在了解LLVM和Clang之前,先得了解一下什么是编译器。 编译器是一种计算机程序,它将某种编程语言(高级编程语言)写成的源代码转换成另一种编程语言(低级编程语言)。一个现代编译器的主要工作流程为:源代码->预处理器->编译器->目标代码->链接器->可执行程序...

Welcome~ 9724

使用spring.profiles.active

项目在开发环境和生产环境的配置是不一样的,所以我们可以利用profile在不同的环境下,用不同的配置文件 Spring Boot允许通过一定的命名规则(application-{profile}.properties){dev :开发环境、test:测试环境、prod:生产环境}在来定义多个配置文件,然后在application.properties中使用spring.profiles.acti...

tealala的博客 1万+

111. 如何创建 SAP ABAP 锁对象(Lock Object)和加锁以及解锁函数

至此,我们完成了 ABAP 系统锁机制和加锁解锁函数的介绍。有了这些基础知识,大家就能在实际工作中,使用 Lock Object 和加锁解锁函数,编写出支持并发访问控制的 ABAP 应用程序了。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1535

新能源汽车整车控制器(VCU)深度全解:硬件原理、工作流程、接口设计与高压安全实战

整车控制器(VCU,Vehicle Control Unit)是新能源纯电动、混动汽车的核心决策大脑,相当于汽车的“中枢神经系统”。它不直接驱动电机,却统筹电机控制器(MCU)、电池管理系统(BMS)、充电机(OBC)、DC/DC、空调、热管理、底盘等全部部件,负责驾驶意图解析、动力输出控制、高压上下电管理、故障安全保护、能量优化等关键任务。VCU所有设计均围绕车规级环境适应性、功能安全(ISO 26262)、实时性、高压安全性四大核心目标,与通用控制器完全不同。

优快云-新能源汽车研发测试专业博主 2485

springboot中profiles.active的配置

设置profiles.active 变量,添加不同环境的配置信息。

scyshen的博客 3645

数据分享|2000-2021年全国各城市风速数据(逐日、逐月、逐年)

而后,将每日的csv文件进行展点,再投影,采用反距离权重法对每日的数据进行插值。:美国国家海洋和大气管理局(NOAA)下设的国家环境信息中心(NCEI),网址为:https://www.ncei.noaa.gov/data/global-summary-of-the-day/archive/该数据是通过风速平均值插值得来,由于插值的方式与各种处理参数的不同,会导致该数据与其它风速数据不同,数据仅供个人学习使用哦。如果在论文中使用该数据,数据来源请写上面的原始数据来源,处理方法请写上面的处理方式!

J_Giser的博客 1778

spring boot之spring mvc常用配置--自定义HtppMessageConverter(9)

HttpmessageConvert是用来处理request和response里的数据的。Spring为我们内置了大量的HttpmessageConvert,例如,MappingJackson2HttpMessageConverter/StringHttpMessageConverter等。1.继承AbstractHttpMessageConverter实现自定义的HttpMessageConve...

日进斗识 667

进阶01:Labview与OPC UA设备通信

LabVIEW通过OPC UA实现高效设备通信方案 本文介绍了使用LabVIEW与OPC UA设备通信的完整实施方案。OPC UA协议具有跨平台兼容、高安全性和高效数据交换等优势。实施步骤包括:1)安装NI OPC UA工具包;2)搭建模拟测试环境,使用OPC UA Simulation Server创建测试变量;3)编写LabVIEW程序,实现连接服务器、事件订阅、数据读写等功能。重点展示了通过用户事件实现设备主动触发的机制,当模拟变量值改变时自动触发LabVIEW事件处理。该方案验证了OPC UA在工业

weixin_38637405的博客 1404

LVS 负载均衡面试题及参考答案

什么是 LVS 负载均衡?它的主要作用是什么? LVS(Linux Virtual Server)是一个基于 Linux 内核的开源负载均衡项目。它通过将请求流量按照一定的算法分发到后端的多个真实服务器(Real Server)上,从而实现负载均衡的功能。 从原理上来说,LVS 工作在网络层和传输层之间。当客户端发起请求时,请求首先到达 LVS 服务器,LVS 会根据预先设定的规则和算法,比如轮询(Round - Robin)、加权轮询(Weighted Round - Robin)、最少连

大模型大数据攻城狮的专栏 1469

Spring Boot学习-Spring Boot核心注解与基本配置

1. 入口类和@SpringBootApplication SpringBoot的项目一般都会有*Application的入口类,入口类中会有main方法,这是一个标准的Java应用程序的入口方法 @SpringBootApplication注解是SpringBoot的核心注解,它其实是一个组合注解: ​ 该注解主要组合了以下注解:

weixin_42759726的博客 871

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Spring Boot配置及注解详解

一般情况下,我们创建了一个Spring Boot程序之后,按照默认的配置就可以启动了,但是我们还是可以自定义一些配置以及修改一些配置一:多个环境的文件配置由于一个项目在开发的过程当中,需要经历开发测试以及正式部署三个阶段,我们可以根据不同的环境作不同的配置,配置的格式严格遵循下面的规则:application-{profile}.properties,其中{profile}对应你的环境标识。然后不...

你好,我们在哪里见过啊! 4158

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

秋招Day17 - Spring - Spring Boot

第一步,创建一个新的 Maven 项目,例如命名为 my-spring-boot-starter。在 pom.xml 文件中添加必要的依赖和配置。第二步,创建一个简单的服务类 MyService.java第三步,创建一个配置属性类 MyStarterProperties.java第四步,在下创建一个自动配置类,比如 MyServiceAutoConfiguration.java:(通常是 autoconfigure 包下)。第五步,在。

weixin_54857540的博客 1110

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Spring Boot Jackson 序列化常用配置详解

本文全面介绍了SpringBoot中Jackson库的JSON序列化配置方法。首先概述了Jackson作为SpringBoot默认JSON处理工具的核心功能,包括数据绑定、流式处理和树模型支持。然后详细讲解了全局配置、注解配置、自定义序列化器等多种配置方式,并提供了日期格式化、空值处理等常见场景的解决方案。文章还深入探讨了循环引用、多态类型处理等高级应用场景,并给出了性能优化建议。通过合理的Jackson配置,开发者可以提升应用的数据处理效率,满足复杂业务需求。本文为SpringBoot项目中高效使用Jac

qq_36984455的博客 2392

Spring Boot自动配置原理

自动装配是指在应用程序启动时,SpringBoot根据classpath类路径下的依赖自动装配应用程序所需的一系列bean和配置类,从而减少开发者的配置工作,提高开发效率。需求: 自定义redis-starter,要求当导入redis坐标时,SpringBoot自动创建Jedis的Bean参考: 可以参考mybatis启动类的应用创建redis-spring-boot-autoconfigure模块。

m0_68041576的博客 6618

Spring Boot Actuator 入门详解

Spring Boot Actuator 是 Spring Boot 提供的生产级监控模块,通过HTTP或JMX暴露应用运行时信息。核心功能包括健康检查、指标监控、环境配置查看等。使用时需先添加依赖,配置暴露的端点(如/health、/metrics),并可通过YAML文件自定义端点和安全设置。生产环境建议与Spring Security集成保护敏感端点,同时可结合Micrometer导出指标到Prometheus。注意合理控制端点暴露范围,避免安全风险。

csdn_tom_168的博客 1158

接管Spring Boot的Web配置

一 完全自定义 如果Spring Boot提供Spring MVC默认配置不符合我们的要求,则可以通过一个配置类加上@EnableWebMvc注解来实现完全由自己控制MVC的配置。这种方式不推荐。 二 通过继承方式自定义 一般情况下,并不采用完全自定义方式,Spring Boot的自动配置是符合我们大多数需求的。我们需要保留Spring Boot提供的便利,只需要增加自己额外的配置部分,我们...

实践求真知 508

自定义Spring Boot starter

文章目录自定义Spring Boot starterSpring Boot starter机制starter的命名规则自定义starter定义starter使用starter热插拔关于条件注解 自定义Spring Boot starter Spring Boot starter机制 Spring Boot的starter是一种非常重要的机制,能够抛弃以前繁杂的配置,将其统一集成进starter,应用者只需要引入starter依赖,SpringBoot就能自动扫描到要加载的信息并启动响应的默认配置。 子日常开

weixin_39515823的博客 163

2、Spring Boot 3 自定义 Starter 常用注解详解

Spring Boot 3 自定义 Starter 核心注解指南 本文系统梳理了 Spring Boot 3 自定义 Starter 开发中的关键注解及其应用场景: @Configuration - 标记自动配置类,用于定义 Starter 的核心配置 @Bean - 声明由 Spring 管理的组件,注册服务或工具类 @ConditionalOnProperty - 实现配置开关功能,根据属性决定是否加载 @ConditionalOnMissingBean - 避免与用户自定义 Bean 冲突,实现可覆盖

python15397的博客 775

Spring Boot整合Spring Security

WebSecurityConfigurerAdapter 自定义Security策略AuthenticationManagerBuilder 自定义认证策略@EnableWebSecurity 开启WebSecurity模式@Override//密码加密//配置用户名、密码,该配置方式下,用户名和密码保存在内存中//密码加密方式这里我们就直接固定写死用户名和密码,实际生产中可以从数据库中获取@Service@Override//设置角色,角色的概念后续介绍。

null 2001
上一篇: Spring Boot 集成 Spring Data Jpa 增删改查示例
下一篇: Java 核心知识回顾 - 抽象类和接口
fastlearn
博客等级 码龄10年 4粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值