当前位置: 首页 > article >正文

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为应用配置提供了灵活性和强大的控制能力。这使得在不同环境下管理和切换配置变得更加简单。


http://www.kler.cn/a/403206.html

相关文章:

  • 简单的卡尔曼滤波器C#代码
  • sysbench压测DM的高可用切换测试
  • Jenkins修改LOGO
  • 基于Vue+SpringBoot的求职招聘平台
  • Jmeter中的断言(三)
  • 如何渲染超大表格,例如一万行数据
  • 企事业单位的敏感数据怎么保护比较安全?
  • 嵌入式学习-C嘎嘎-Day03
  • 单片机学习笔记 1. 点亮一个LED灯
  • 创建型设计模式(模版方法、观察者模式、策略模式)
  • 网络安全实施方案
  • 关联度分析、灰色预测GM(1,1)、GM(1,1)残差模型——基于Python实现
  • 类和对象——static 成员,匿名对象(C++)
  • OAI-5G开源通信平台实践(三)
  • linux 软连接的使用
  • tensorflow有哪些具体影响,和chatgpt有什么关系
  • [Unity]【游戏相关】 游戏设计基础:如何创建有效的游戏设计文档
  • C++常用库
  • Git错误:gnutls_handshake() failed: The TLS connection was non-properly terminated
  • mybatis的动态sql用法之排序
  • 同三维T80003JEHS 4K/60帧HDMI/SDI超高清H.265解码器
  • java arr.length 获取数组长度 开销 详解
  • x的算术平方根( 二分查找)
  • SQL Server Management Studio 的JDBC驱动程序和IDEA 连接
  • 跨平台WPF框架Avalonia教程 十二
  • 关于安卓模拟器或手机设置了BurpSuite代理和安装证书后仍然抓取不到APP数据包的解决办法