Spring Boot - 应用程序属性 Spring Boot - Runners Spring Boot - 记录 应用程序属性支持我们在不同的环境中工作。在本章中,您将学习如何配置和指定Spring Boot应用程序的属性。 命令行属性 Spring Boot应用程序将命令行属性转换为Spring Boot Environment属性。命令行属性优先于其他属性源。默认情况下,Spring Boot使用8080端口号来启动Tomcat。让我们学习如何使用命令行属性更改端口号。 步骤1 - 创建可执行JAR文件后,使用命令java -jar <JARFILE>运行它。 步骤2 - 使用下面给出的屏幕截图中给出的命令,使用命令行属性更改Spring Boot应用程序的端口号。 注 - 您可以使用分隔符 - 提供多个应用程序属性。 属性文件 属性文件用于在单个文件中保留“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 外化属性 我们可以将属性保存在不同的位置或路径中,而不是将属性文件保存在类路径下。在运行JAR文件时,我们可以指定属性文件路径。您可以使用以下命令在运行JAR时指定属性文件的位置 -Dspring.config.location = C:\application.properties 使用@Value Annotation @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将抛出非法参数异常,因为无法解析值$ {spring.application.name}中的占位符spring.application.name。 要解决占位符问题,我们可以使用下面给出的thr语法设置属性的默认值 @Value("${property_key_name:default_value}") @Value("${spring.application.name:demoservice}") Spring Boot活动配置文件 Spring Boot支持基于Spring活动配置文件的不同属性。例如,我们可以保留两个单独的文件进行开发和生产,以运行Spring Boot应用程序。 application.properties中的Spring活动配置文件 让我们了解如何在application.properties中使用Spring活动配置文件。默认情况下,申请。属性将用于运行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文件。设置弹簧活动轮廓的命令如下所示 您可以在控制台日志中看到活动的配置文件名称,如下所示 2017-11-26 08:13:16.322 INFO 14028 --- [ main] com.codingdict.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) 您可以设置生产活动配置文件,如下所示 您可以在控制台日志中看到活动的配置文件名称,如下所示 2017-11-26 08:13:16.322 INFO 14028 --- [ main] com.codingdict.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活动配置文件 让我们了解如何为application.yml保留Spring活动配置文件。我们可以将Spring活动配置文件属性保存在单个application.yml文件中。无需使用像application.properties这样的单独文件。 以下是将Spring活动配置文件保留在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 命令设置开发活动配置文件如下 您可以在控制台日志中看到活动的配置文件名称,如下所示 2017-11-26 08:41:37.202 INFO 14104 --- [ main] com.codingdict.demo.DemoApplication : The following profiles are active: dev 现在,Tomcat开始使用端口9090(http),如下所示 2017-11-26 08:41:46.650 INFO 14104 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 9090 (http) 设置生产活动配置文件的命令如下 您可以在控制台日志中看到活动的配置文件名称,如下所示 2017-11-26 08:43:10.743 INFO 13400 --- [ main] com.codingdict.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) Spring Boot - Runners Spring Boot - 记录