最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Spring Boot快速入門(mén)之(九):應(yīng)用屬性

2020-08-14 16:16 作者:信碼由韁  | 我要投稿

【注】本文譯自: https://www.tutorialspoint.com/spring_boot/spring_boot_application_properties.htm


? ? 應(yīng)用屬性能夠支持在不同環(huán)境中工作。本文將帶你學(xué)習(xí)如何在?Spring Boot?應(yīng)用中配置特定的屬性。

命令行屬性

? ? Spring Boot 應(yīng)用將命令行屬性轉(zhuǎn)換為 Spring Boot 環(huán)境屬性。命令行屬性優(yōu)先于其他屬性源。Spring Boot 默認(rèn)使用 8080 端口號(hào)啟動(dòng) Tomcat。讓我們學(xué)習(xí)如何使用命令行屬性改變它。

第1步?創(chuàng)建可執(zhí)行 JAR 文件,使用命令?java –jar <JARFILE> 運(yùn)行。

第2步?如下面截屏的命令所示,利用命令行屬性改變?Spring Boot?應(yīng)用的端口號(hào):


注意?你可以使用分隔符號(hào) - 提供多個(gè)應(yīng)用屬性。

屬性文件

? ? 屬性文件的作用在于,在不同環(huán)境中運(yùn)行的應(yīng)用使用單個(gè)屬性文件配置多個(gè)屬性。Spring Boot 中屬性被配置在?application.properties?文件中,這個(gè)文件要在?classpath 路徑中。

? ?application.properties 文件位于?src/main/resources?目錄。以下代碼是?application.properties?文件的示例:

server.port = 9090

spring.application.name = demoservice

? ?要注意上面的代碼指定 Spring Boot 應(yīng)用 demoservice 啟動(dòng)的端口號(hào)為 9090。

YAML 文件

? ?Spring Boot 支持基于 YAML 的屬性配置來(lái)運(yùn)行應(yīng)用。代之以?application.properties,我們可以使用?application.yml?文件。這個(gè)?YAML 文件也應(yīng)當(dāng)在 classpath 路徑下。application.yml?文件示例如下:

spring:

???application:

??????name: demoservice

???server:

port: 9090

外化屬性

? ?不用在?classpath 路徑下的屬性文件,我們也可以在不同的位置和路徑下使用。在運(yùn)行?JAR 文件時(shí),也可以指定屬性文件路徑,如下所示:

-Dspring.config.location = C:\application.properties


使用 @Value 注解

? ?@Value 注解用于在 Java 代碼中讀取環(huán)境或應(yīng)用屬性。讀取屬性的語(yǔ)法如下所示:

@Value("${property_key_name}")

? ?下面的例子展示了如何在 Java 變量中使用?@Value 注解讀取?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;

???}

}

注意:如果在運(yùn)行應(yīng)用中沒(méi)有找到指定的屬性,Spring Boot 會(huì)拋出非法參數(shù)異常,如:Could not resolve placeholder 'spring.application.name' in value "${spring.application.name}"。

? ?要解決占位符問(wèn)題,可以設(shè)置屬性的缺省值,如下所示:

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

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

Spring Boot 活動(dòng)配置

? ?Spring Boot 支持基于 Spring 活動(dòng)配置的不同屬性。例如,我們可以為開(kāi)發(fā)和生產(chǎn)環(huán)境下運(yùn)行 Spring Boot 應(yīng)用配置不同的屬性文件。

在 application.properties 中的 spring 活動(dòng)配置

? ?我們來(lái)理解一下如何?application.properties 中的?Spring 活動(dòng)配置。缺省情況下,Spring Boot 應(yīng)用會(huì)使用?application. properties 來(lái)運(yùn)行。如果你想使用基于屬性的配置以如下所示來(lái)保存每個(gè)配置:

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

? ?運(yùn)行?JAR 文件時(shí),需要基于每個(gè)屬性文件來(lái)指定 spring 活動(dòng)配置。缺省情況下,Spring Boot 應(yīng)用使用 application.properties 文件。設(shè)置 spring active 配置的命令如下所示:


? ?你可以在控制臺(tái)日志中看到活動(dòng)配置名,如下所示:

2017-11-26 08:13:16.322 INFO 14028 --- [

main] com.tutorialspoint.demo.DemoApplication :

The following profiles are active: dev

? ? 現(xiàn)在 Tomcat 已經(jīng)在 9090 (http) 端口啟動(dòng)了,如下所示:

2017-11-26 08:13:20.185 INFO 14028 --- [

main] s.b.c.e.t.TomcatEmbeddedServletContainer :

Tomcat started on port(s): 9090 (http)

? ? 如下所示可以指定生產(chǎn)環(huán)境的活動(dòng)配置:


? ?在控制臺(tái)日志中可以看到活動(dòng)配置名,如下所示:

2017-11-26 08:13:16.322 INFO 14028 --- [

main] com.tutorialspoint.demo.DemoApplication :

The following profiles are active: prod

? ?現(xiàn)在 Tomcat 已經(jīng)在 4431 (http) 端口啟動(dòng)了,如下所示:

2017-11-26 08:13:20.185 INFO 14028 --- [

main] s.b.c.e.t.TomcatEmbeddedServletContainer :

Tomcat started on port(s): 4431 (http)

針對(duì) application.yml 的?Spring 活動(dòng)配置?

? ?接下來(lái),我們看下針對(duì)?application.yml 如何設(shè)置?Spring 活動(dòng)配置。我們可以在單個(gè)?application.yml 文件中設(shè)置?Spring 活動(dòng)配置。不需要象?application.properties 那樣使用不同的的屬性文件。

? ?下面是一個(gè)?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

? ?如下所示設(shè)置開(kāi)發(fā)環(huán)境的活動(dòng)配置:


? ?如下所示,你可以在控制臺(tái)日志中看到活動(dòng)的配置

2017-11-26 08:41:37.202 INFO 14104 --- [

main] com.tutorialspoint.demo.DemoApplication :

The following profiles are active: dev

? ?現(xiàn)在 Tomcat 已經(jīng)在 9090 (http) 端口啟動(dòng)了,如下所示:

2017-11-26 08:41:46.650 INFO 14104 --- [

main] s.b.c.e.t.TomcatEmbeddedServletContainer :

Tomcat started on port(s): 9090 (http)

? ?在控制臺(tái)日志中可以看到活動(dòng)配置名,如下所示:


? ?如下所示可以指定生產(chǎn)環(huán)境的活動(dòng)配置:

2017-11-26 08:43:10.743 INFO 13400 --- [

main] com.tutorialspoint.demo.DemoApplication :

The following profiles are active: prod

? ?現(xiàn)在 Tomcat 已經(jīng)在 4431 (http) 端口啟動(dòng)了,如下所示:

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快速入門(mén)之(九):應(yīng)用屬性的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
德格县| 台北市| 朝阳区| 嘉定区| 友谊县| 上思县| 富顺县| 彰化市| 舟曲县| 从江县| 济源市| 德化县| 永州市| 远安县| 肇东市| 平原县| 辽宁省| 平安县| 蒙山县| 芜湖市| 通州市| 五常市| 磐石市| 卓尼县| 平泉县| 崇州市| 东丰县| 麻栗坡县| 安丘市| 万源市| 宁安市| 阿尔山市| 从江县| 石泉县| 通州市| 庆云县| 宁德市| 潞城市| 寿宁县| 沛县| 日喀则市|