Spring Boot - 应用属性

Spring Boot - 应用属性 首页 / Spring Boot入门教程 / Spring Boot - 应用属性

应用程序属性(Application Properties)支持无涯教程在不同的环境中工作。在本章中,您将学习如何配置和指定Spring Boot应用程序的属性。

命令行属性

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

步骤1   - 创建可执行的JAR文件后,使用命令java –jar <JARFILE>运行它。

步骤2   - 使用以下截图中给出的命令,通过命令行属性更改Spring Boot应用程序的端口号。

命令行属性 JARFILE


属性文件

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

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

server.port=9090
spring.application.name=demoservice

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

YAML文件

Spring Boot支持基于YAML的属性配置来运行应用程序,除了使用 application.properties ,无涯教程还可以使用 application.yml 文件,该YAML文件也应保留在类路径中,示例文件 application.yml 在下面给出-

spring:
   application:
      name: demoservice
   server:
port: 9090

Externalized 属性

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

-Dspring.config.location=C:\application.properties
外在属性

@Value注释

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

@Value("${property_key_name}")

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

@Value("${spring.application.name}")

观察下面给出的代码,以更好地理解-

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会抛出非法参数异常

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

@Value("${property_key_name:default_value}")

@Value("${spring.application.name:demoservice}")

Spring Boot配置文件

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

application.properties

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

application.properties

server.port=8080
spring.application.name=demoservice

application-dev.properties

server.port=9090
spring.application.name=demoservice

application-prod.properties

server.port=4431
spring.application.name=demoservice

在运行JAR文件时,需要基于每个属性文件指定spring活动概要文件。默认情况下,Spring Boot应用程序使用application.properties文件。

Prod.Properties Active Dev

您可以在控制台日志上看到活动的配置文件名称,如下所示:

2017-11-26 08:13:16.322  INFO 14028 --- [           
   main] com.learnfk.demo.DemoApplication  :
   The following profiles are active: dev

现在,Tomcat已在端口9090(http)上启动,如下所示-

2017-11-26 08:13:20.185  INFO 14028 --- [           
   main] s.b.c.e.t.TomcatEmbeddedServletContainer : 
   Tomcat started on port(s): 9090 (http)

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

Production Active Profile

您可以在控制台日志上看到配置文件名称,如下所示:

2017-11-26 08:13:16.322  INFO 14028 --- [           
   main] com.learnfk.demo.DemoApplication  :
   The following profiles are active: prod

现在,Tomcat在端口4431(http)上启动,如下所示-

2017-11-26 08:13:20.185  INFO 14028 --- [          
   main] s.b.c.e.t.TomcatEmbeddedServletContainer :
   Tomcat started on port(s): 4431 (http)

application.yml

以下是一个示例代码,用于将Spring active profile 文件保留在application.yml文件中。请注意定界符(-)用于分隔application.yml文件中的每个配置文件。

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

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

Prod.Properties Active Dev

您可以在控制台日志上看到配置文件名称,如下所示:

2017-11-26 08:41:37.202  INFO 14104 --- [           
   main] com.learnfk.demo.DemoApplication  : 
   The following profiles are active: dev

现在,Tomcat在端口9090(http)上启动,如下所示-

链接:https://www.learnfk.comhttps://www.learnfk.com/spring-boot/spring-boot-application-properties.html

来源:LearnFk无涯教程网

2017-11-26 08:41:46.650  INFO 14104 --- [           
   main] s.b.c.e.t.TomcatEmbeddedServletContainer : 
   Tomcat started on port(s): 9090 (http)

下面给出了设置生产活动配置文件的命令-

Production Active Profile

您可以在控制台日志上看到配置文件名称,如下所示:

2017-11-26 08:43:10.743  INFO 13400 --- [    
   main] com.learnfk.demo.DemoApplication  : 
   The following profiles are active: prod

这将在端口4431(http)上启动Tomcat,如下所示:

2017-11-26 08:43:14.473  INFO 13400 --- [     
   main] s.b.c.e.t.TomcatEmbeddedServletContainer : 
   Tomcat started on port(s): 4431 (http)

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

机器学习40讲 -〔王天一〕

软件测试52讲 -〔茹炳晟〕

MySQL实战45讲 -〔林晓斌〕

许式伟的架构课 -〔许式伟〕

成为AI产品经理 -〔刘海丰〕

深入C语言和程序运行原理 -〔于航〕

大厂广告产品心法 -〔郭谊〕

技术领导力实战笔记 2022 -〔TGO 鲲鹏会〕

深入拆解消息队列47讲 -〔许文强〕

好记忆不如烂笔头。留下您的足迹吧 :)