Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Spring Boot应用程序属性配置

Spring Boot应用程序属性配置

作者头像
黑洞代码
发布于 2022-07-01 08:08:40
发布于 2022-07-01 08:08:40
1.4K00
代码可运行
举报
运行总次数:0
代码可运行

应用程序属性用于支持在不同的环境中工作。在本章中,将学习如何配置和指定Spring Boot应用程序的属性。

命令行属性

Spring Boot应用程序将命令行属性转换为Spring Boot环境属性。命令行属性优先于其他属性源。默认情况下,Spring Boot使用8080端口号来启动Tomcat。接下来将学习如何使用命令行属性更改端口号。

步骤1 - 创建可执行JAR文件后,使用命令java -jar 运行它。步骤2 - 使用下面给出的屏幕截图中给出的命令,使用命令行属性更改Spring Boot应用程序的端口号。

注 - 可以使用分隔符 - 提供多个应用程序属性。

属性文件

属性(properties)文件用于在单个文件中保留N个属性,以便在不同的环境中运行应用程序。在Spring Boot中,属性保存在类路径下的application.properties文件中。

application.properties文件位于src/main/resources目录中。示例application.properties文件的代码如下 -

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server.port = 9090
spring.application.name = demoservice

请注意,在上面显示的代码中,Spring Boot应用程序demoservice在端口9090上启动。

YAML文件

Spring Boot支持基于YAML的属性配置来运行应用程序。可以使用application.yml文件代替application.properties。此YAML文件也应保留在类路径中。application.yml文件示例如下 -

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
spring:
   application:
      name: demoservice
   server:
port: 9090


外部化属性

可以将属性保存在不同的位置或路径中,而不是将属性文件保存在类路径下。在运行JAR文件时,可以指定属性文件路径。可以使用以下命令在运行JAR时指定属性文件的位置 -

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-Dspring.config.location = C:\\application.properties

使用@Value注解

@Value注释用于读取Java代码中的环境或应用程序属性值。读取属性值的语法如下所示 -

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Value("${property_key_name}")

请看下面的示例,它显示了如何使用@Value批注读取Java变量中的spring.application.name属性值的语法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Value("${spring.application.name}")

请遵守下面给出的代码以便更好地理解 -

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class DemoApplication {
   @Value("${spring.application.name}")
   private String name;
   public static void main(String[] args) {
      SpringApplication.run(DemoApplication.class, args);
   }
   @RequestMapping(value = "/")
   public String name() {
      return name;
   }
}


注 - 如果在运行应用程序时未找到该属性,则Spring Boot将抛出非法参数异常,因为无法在值${spring.application.name}中解析占位符'spring.application.name'。

要解决占位符问题,可以使用下面给出的thr语法设置属性的默认值 -

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Value("${property_key_name:default_value}")
@Value("${spring.application.name:demoservice}")


Spring Boot活动配置文件

Spring Boot支持基于Spring活动配置文件的不同属性。例如,可以保留两个单独的文件进行开发和生产,以运行Spring Boot应用程序。

application.properties中的Spring活动配置文件

下面来了解如何在application.properties 中使用Spring活动配置文件。默认情况下,application.properties将用于运行Spring Boot应用程序。如果想使用基于配置文件的属性,可以为每个配置文件保留单独的属性文件,如下所示 -

文件:application.properties -

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server.port = 8080
spring.application.name = demoservice

文件:application-dev.properties -

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server.port = 9090
spring.application.name = demoservice

文件:application-prod.properties -

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server.port = 4431
spring.application.name = demoservice

在运行JAR文件时,需要根据每个属性文件指定spring活动配置文件。默认情况下,Spring Boot应用程序使用application.properties 文件。设置Spring活动文件的命令如下所示 -

在控制台日志中看到活动的配置文件名称,如下所示 -

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   The following profiles are active: dev

现在,Tomcat已经开始使用端口9090(http),如下所示 -

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   main] s.b.c.e.t.TomcatEmbeddedServletContainer : 
   Tomcat started on port(s): 9090 (http)

可以设置生产活动配置文件,如下所示 -

在控制台日志中看到活动的配置文件名称,如下所示 -

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  main] com.yiibai.demo.DemoApplication  :
   The following profiles are active: prod

现在,Tomcat开始使用4431端口(http),如下所示 -

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 main] s.b.c.e.t.TomcatEmbeddedServletContainer :
   Tomcat started on port(s): 4431 (http)

application.yml的Spring活动配置文件

下面来了解如何为application.yml保留Spring活动配置文件。可以将Spring活动配置文件属性保留在单个application.yml文件中。无需使用像application.properties这样的单独文件。以下是将Spring活动配置文件保留在application.yml文件中的示例代码。请注意,分隔符(---)用于分隔application.yml文件中的每个配置文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
spring:
   application:
      name: demoservice
server:
   port: 8080

---
spring:
   profiles: dev
   application:
      name: demoservice
server:
   port: 9090

---
spring: 
   profiles: prod
   application:
      name: demoservice
server: 
   port: 4431


命令设置开发活动配置文件如下 -

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 落叶飞翔的蜗牛 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
(最新 9000 字 )Spring Boot 配置特性解析
目前Spring Boot版本: 2.3.4.RELEASE,这更新的速度也是嗖嗖的了,随着新版本的发布,也一步步针对公司基础组件进行了升级改造,其中很重要的一块就是配置文件的更新(虽然目前已经全部使用了Apollo)。针对Spring Boot 新版本的配置文件也做了一次梳理,确实发现了以前没有注意到的点。
鲁大猿
2020/09/25
6260
(最新 9000 字 )Spring Boot 配置特性解析
「快学springboot」SpringBoot多环境配置文件
我们都知道springboot的配置卸载application.properties配置文件上(或者application.yml)。但是,如果想要把不同的环境(如开发环境,测试环境,生产环境)的配置文件分离,这要怎么做呢?其实,SpringBoot是支持指定不同的配置文件的。
Happyjava
2024/02/01
2860
「快学springboot」SpringBoot多环境配置文件
springCloud学习1(集中式配置管理)
  在开发普通的 web 应用中,我们通常是将配置项写在单独的配置文件中,比如application.yml,application.properties,但是在微服务架构中,可能会出现数百个微服务,如果每个微服务将配置文件写在自身的配置文件中,会导致配置文件的管理非常复杂。因此集中式的配置管理是非常有必要的,每个服务启动时从集中式的存储库中读取需要的配置信息。其模型如下:
用户2038589
2018/12/28
7650
spring boot 之 profile 配置
SPRING Environment 为此提供了一个 API,但是您通常会设置一个 System 属性(spring.profiles.active) 或者一个 OS 环境变量(SPRING_PROFILES_ACTIVE)。此外,您可以使用 -d 参数启动应用程序(记住将其放在 main 类或 jar 归档之前) ,如下所示:
acc8226
2022/09/21
7650
Spring Cloud Config 配置中心搭建
Spring Cloud Config是一个用于集中管理应用程序的配置文件的工具,它提供了一个中心化的配置服务器,支持多种后端存储器。它可以帮助开发人员轻松管理应用程序的配置,同时也支持应用程序的动态更新,无需重新部署应用程序。
堕落飞鸟
2023/04/06
4280
SpringCloud入门之Spring Boot多环境配置切换指南
在 spring boot 中,有两种配置文件,一种是application.properties,另一种是application.yml,两种都可以配置spring boot 项目中的一些变量的定义,参数的设置等。
jack.yang
2025/04/05
860
Spring Boot核心概念:应用配置
Spring Boot提供了强大的配置系统,允许开发者通过配置文件轻松管理应用的配置。支持的主要配置文件格式有两种:application.properties和application.yml。
世间万物皆对象
2024/11/21
1010
Spring Boot从零入门7_最新配置文件配置及优先级详细介绍
本文属于原创,转载注明出处,欢迎关注微信小程序小白AI博客 微信公众号小白AI或者网站 https://xiaobaiai.net 或者我的CSDN http://blog.csdn.net/freeape
别打名名
2019/12/23
8960
Spring Boot基本配置
 转载自  https://www.cnblogs.com/lilinzhiyu/p/8116877.html
allsmallpig
2021/02/25
4380
SpringBoot 基础配置 & Hello Word
许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。
Bobby
2019/04/09
5000
SpringBoot 基础配置 & Hello Word
重学SpringBoot3-配置优先级详解
Spring Boot 的核心设计之一是“约定优于配置”(Convention Over Configuration),这使得它能够根据默认值和用户提供的配置快速启动应用程序。然而,在实际开发中,应用的配置可能来自多个来源。理解这些配置来源的优先级非常重要,以便在配置冲突时确保程序按预期运行。
CoderJia
2024/11/17
4730
重学SpringBoot3-配置优先级详解
「快学springboot」SpringBoot多环境配置文件
我们都知道springboot的配置卸载application.properties配置文件上(或者application.yml)。但是,如果想要把不同的环境(如开发环境,测试环境,生产环境)的配置文件分离,这要怎么做呢?其实,SpringBoot是支持指定不同的配置文件的。
Happyjava
2019/07/16
8980
「快学springboot」SpringBoot多环境配置文件
程序员的30大SpringBoot面试问题及答案
通过Spring Boot,可以轻松地创建独立的,基于生产级别的Spring的应用程序,您可以“运行”它们。大多数Spring Boot应用程序需要最少的Spring配置。
鱼找水需要时间
2023/12/27
3780
Spring Boot-2.配置基础
Spring Boot通常以一个名为*Application的类作为入口类,入口类里的main方法(即标准的Java应用的入口方法)作为Spring Boot应用项目的入口方法。 @SpringBootApplication是Spring Boot的核心注解,这是一个组合注解,源码为:
悠扬前奏
2019/05/28
5580
Spring Boot中的资源文件属性配置
在Spring Boot应用程序中,配置文件是管理应用程序行为的重要组成部分。资源文件属性配置允许开发者在不重新编译代码的情况下,对应用程序进行灵活地配置和调整。本篇博客将介绍Spring Boot中资源文件属性配置的基本概念,并通过实际示例展示如何利用这一功能。
小马哥学JAVA
2024/04/28
1790
Spring Boot的配置文件
在 Spring Boot 中,配置文件用于配置应用程序的各种属性和参数。Spring Boot 支持多种类型的配置文件,包括 YAML、Properties、XML 等。在本文中,我们将介绍 Spring Boot 的配置文件类型、配置文件的读取顺序和优先级、配置文件的语法和示例等方面。
堕落飞鸟
2023/04/05
7600
SpringBoot实战第六章-Spring Boot核心
本章主要讲Spring Boot的一些核心内容与配置,非常简单粗暴,具体参数配置还在实际项目里实践才能真正使用好这些配置。
全栈程序员站长
2021/05/19
2260
Spring Boot2.x-03Spring Boot基础
Spring Boot-Spring Tool Suit + Gradle 构建第一个Spring Boot 项目01
小小工匠
2021/08/17
3180
Spring Boot一些基础配置
我们可以把这个图案修改为自己想要的。在src/main/resources目录下新建banner.txt文件,然后将自己的图案黏贴进去即可。ASCII图案可通过网站http://www.network-science.de/ascii/一键生成,比如输入mrbird生成图案后复制到banner.txt,启动项目,eclipse控制台输出如下:
技术从心
2019/10/13
4030
《Spring Boot 实战:从0到1》第3章 零XML配置的Spring Boot Application第3章 零XML配置的Spring Boot
Spring Boot 提供了一种统一的方式来管理应用的配置,允许开发人员使用属性properties文件、YAML 文件、环境变量和命令行参数来定义优先级不同的配置值。
一个会写诗的程序员
2018/08/17
1.2K0
相关推荐
(最新 9000 字 )Spring Boot 配置特性解析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验