Spring Boot核心概念:应用配置

Spring Boot提供了强大的配置系统,允许开发者通过配置文件轻松管理应用的配置。支持的主要配置文件格式有两种:application.propertiesapplication.yml

application.properties与application.yml

application.propertiesapplication.yml是Spring Boot中用于配置的两种文件格式。properties文件以简单的键值对形式存在,而YAML(YAML Ain’t Markup Language)是一种更为人性化的数据序列化标准格式,支持层级结构。

application.properties

常见的.properties配置文件格式如下:

# application.properties
server.port=8080
app.name=MySpringBootApp
app.description=This is my first Spring Boot application.

application.yml

相应的.yml配置文件格式如下:

# application.yml
server:
  port: 8080

app:
  name: MySpringBootApp
  description: This is my first Spring Boot application.

配置文件中的属性注入

Spring Boot支持将配置文件中的值注入到应用的beans中。这可以通过@Value注解或者将配置属性绑定到一个类上来实现。

示例:属性注入

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class MyComponent {

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

    // ...
}

另一种方法是使用@ConfigurationProperties注解将配置属性绑定到一个类上。

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

@Component
@ConfigurationProperties(prefix = "app")
public class AppConfig {
    private String name;
    private String description;

    // standard getters and setters
}

然后,在application.propertiesapplication.yml中定义相应的属性。

Profile-specific配置文件

Spring Boot允许为不同的环境提供不同的配置,这是通过使用Profile-specific配置文件实现的。

示例:Profile-specific配置文件

创建一个application-dev.properties用于开发环境:

# application-dev.properties
server.port=8081

创建一个application-prod.properties用于生产环境:

# application-prod.properties
server.port=8080

在运行应用时,可以通过设置spring.profiles.active属性来激活特定的配置文件。

java -jar myapp.jar --spring.profiles.active=prod

或者在application.propertiesapplication.yml中设置默认激活的Profile:

# application.properties
spring.profiles.active=dev

这样,当应用启动时,它会根据激活的Profile加载对应的配置。

通过使用application.propertiesapplication.yml文件,结合属性注入和Profile-specific配置,Spring Boot为应用配置提供了灵活性和强大的控制能力。这使得在不同环境下管理和切换配置变得更加简单。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NuGet如何支持HTTP源

今天是2024年11月21号,最近更新了VisualStudio后发现HTTP的包源已经默认禁止使用了,生成时会直接报错。如下图: 官方也明确指出了要想使用HTTP包源的解决办法,这里就简单总结一下。 一、全局配置 1、全局NuGet包的配置文件路径在…

SpringBoot学习记录(四)之分页查询

SpringBoot学习记录(四)之分页查询 一、业务需求1、基本信息2、请求参数3、相应数据 二、传统方式分页三、使用PageHelper分页插件 一、业务需求 根据条件进行员工数据的条件分页查询 1、基本信息 请求路径: /emps 请求方式: …

JavaParser如何获取方法的返回类型

使用JavaParser 如何获取一个Java类中的某个方法的返回类型呢? 假如有一个如下的简单的Java 类: /*** Copyright (C) Oscar Chen(XM):* * Date: 2024-11-21* Author: XM*/ package com.osxm.ai.sdlc.codeparse.codesample;public class MyClass {public…

2024亚太杯国际赛C题宠物预测1234问完整解题思路代码+成品参考文章

中国宠物业发展趋势及预测模型 一、问题背景与研究目标 近年来,中国宠物业经历了快速发展,特别是在城市化进程加快、人口结构变化和消费水平提升的背景下,宠物作为家庭成员的角色变得愈发重要。根据相关数据,中国宠物数量&#…

Java实现离线身份证号码OCR识别

最近公司要求做离线身份证OCR功能,找了一圈总算是找到了,在这里对文档做个整理,方便后来者,感谢码龄23年博主的分享 系统:Windows11,红旗Linux Asianux8.1 文档中Linux全root用户操作;需先安装…

Gradle核心概念总结

这部分内容主要根据 Gradle 官方文档整理,做了对应的删减,主要保留比较重要的部分,不涉及实战,主要是一些重要概念的介绍。 Gradle 这部分内容属于可选内容,可以根据自身需求决定是否学习,目前国内还是使用…

鸿蒙网络编程系列50-仓颉版TCP回声服务器示例

1. TCP服务端简介 TCP服务端是基于TCP协议构建的一种网络服务模式,它为HTTP(超文本传输协议)、SMTP(简单邮件传输协议)等高层协议的应用程序提供了可靠的底层支持。在TCP服务端中,服务器启动后会监听一个或…

第5-1节:SpringBoot对SpringMVC的自动配置

我的后端学习大纲 SpringBoot学习大纲 1、SpringBoot对SpringMVC自动配置概览

Emacs进阶之插入时间信息(一百六十三)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【…

嵌入式实验报告:家用计时器

实验目的和要求 1、实验目的 掌握STM32串口通信原理。学习编程实现STM32的UART通信掌握STM32中断程序设计流程。熟悉STM32固件库的基本使用。熟悉STM32定时器中断设计流程。2、实验要求 设计一个家用计时器,其功能如下: 利用串口设置计时时间,格式:XX:XX:X 例如01:59:…

【WRF理论第十二期】Registry.EM 文件详解

【WRF理论第十二期】Registry.EM 文件详解 Registry.EM 文件的作用Registry.EM 文件的结构Registry.EM 文件内容理解如何修改 Registry.EM 文件以输出特定变量WRF-Urban 修改 Registry.EM 文件以输出 UCM 相关变量1. 修改 Registry.EM 文件2. 重新编译 WRF 注意事项参考 在 WRF…

Midjourney 图生图,真人二次元保持一致性,场景多元可选择

Midjourney 拥有强大的图生图的功能,下面我们就来看一下,如何在我们的AceDataCloud网站上实现将照片切换成任意的二次元场景,同时保持人物的一致性。 我们可以按照如下的步骤去实现人物一致性。 下面我们来看看效果吧,原图如下。…

三种复制只有阅读权限的飞书网络文档的方法

大家都知道,飞书是一款功能强大的在线协作工具,可以帮助团队更高效地协作和沟通。越来越多的资料都在使用飞书文档,在使用飞书的过程中,发现很多文档没有复制权限,如果想要摘抄笔记,只能一个字一个字地敲出…

【GL003】TCP/IP 协议

目录 一、TCP/IP协议简介 二、TCP/IP协议的分层模型 2.1 OSI模型的七层框架 2.2 TCP/IP协议层(四层) 2.2.1 TCP/IP协议层与ISO模型 2.2.2 TCP/IP协议层的作用 三、TCP协议的报文格式 3.1 什么是报文 3.2 TCP报文 四、TCP的通信连接 4.1 TCP…

Spring WebFlux学习笔记(二)

目标 运行第一个spring webflux项目 官网操作 https://start.spring.io/ 依赖、工具 jdk 21、idea、maven 运行过程 将下载的代码直接导入到idea后运行 运行上个笔记的例子 注意 需要更改为MediaType.TEXT_EVENT_STREAM_VALUE 未完待续。。。

【YOLOv8】安卓端部署-2-项目实战

文章目录 1 准备Android项目文件1.1 解压文件1.2 放置ncnn模型文件1.3 放置ncnn和opencv的android文件1.4 修改CMakeLists.txt文件 2 手机连接电脑并编译软件2.1 编译软件2.2 更新配置及布局2.3 编译2.4 连接手机 3 自己数据集训练模型的部署4 参考 1 准备Android项目文件 1.1…

基于CNN-LSTM的时序预测MATLAB实战

卷积神经网络(CNN)用于提取时间序列数据中的局部空间特征,通过卷积层和池化层的堆叠,CNN能够有效捕获数据中的短期模式和局部依赖关系。长短时记忆网络(LSTM)用于处理时间序列数据,特别擅长捕捉…

3D可视化产品定制,打造“所见即所得”的购物体验!

在当今数字化时代,3D可视化产品定制正逐步改变着消费者的购物体验与企业的销售模式,相较于大多仍停留在二维层面的线上定制服务,3D可视化产品定制为消费者提供了一个直观、互动且高度个性化的定制功能,并为消费者带来了沉浸式的购…

捉虫记录02-Nacos访问失败

目录 一、问题 二、排查 三、解决方案 一、问题 在访问nacos的时候出现以下问题: 二、排查 先用docker logs nacos来查找报错信息 docker logs nacos 看问题报错就是数据源问题,nacos没能连接上mysql 三、解决方案 第一步 docker restart mysql …

详细教程-Linux上安装单机版的Hadoop

1、上传Hadoop安装包至linux并解压 tar -zxvf hadoop-2.6.0-cdh5.15.2.tar.gz 安装包: 链接:https://pan.baidu.com/s/1u59OLTJctKmm9YVWr_F-Cg 提取码:0pfj 2、配置免密码登录 生成秘钥: ssh-keygen -t rsa -P 将秘钥写入认…