目錄
如果需要修改自訂修改預設配置,spring boot 提供了很簡單的方法,只需要在application.properties 中加入修改對應的配置。 (spring boot啟動的時候會讀取application.properties這份預設配置)
一、修改預設配置
例1、spring boot 開發web應用的時候,預設tomcat的啟動端口為8080,如果需要修改預設的端口,則需要在application.properties 添加以下記錄:
重啟項目,啟動日誌可以看到:Tomcat started on port(s): 8888 (http) 啟動端口為8888,瀏覽器中造訪http://localhost:8888 能正常存取。
例2、spring boot 開發中的資料庫連接資訊配置(這裡使用com.alibaba 的druid), 在application.properties 新增以下記錄:
二、自訂屬性配置
在application.properties中除了可以修改預設配置,我們還可以在這配置自訂的屬性,並在實體bean中載入出來。
1、在application.properties中加入自訂屬性配置
2、寫Bean類,載入屬性
Sam類別需要新增@Component註解,讓spring在啟動的時候掃描到該類,並添加到spring容器中。
3、在controller中註入並使用Sam這個Bean。
瀏覽器存取:http://localhost:8080/index ,控制台正常列印出sam的內容。
三、application.properties 屬性配置詳解
1、參數引用與random隨機數方法的使用
在application.properties內可以直接透過${}引用其他屬性的值,如下:
在application.properties中如果需要取得隨機數,可以透過${random},如下:
2、多環境配置
如果每次切換不同環境都需要修改application.properties,那麼操作是十分繁瑣的。在spring boot中提供了多環境配置,使得我們切換環境變得簡單。
在application.properties同目錄下新建一下三個檔案:
上面三個檔案分別對應了開發、測試、生產的設定內容,接下來就是應該怎麼選擇性引用這些配置了。
在application.properties新增:
新增spring.profiles.active=dev後啟動應用,會發現引用了dev的這份設定資訊。
可以看出上面三個設定檔符合 application-{profile}.properties 格式,而在application.properties新增的 spring.profiles.active=dev 中的dev正是上面設定檔中的 profile。依具體環境進行切換即刻。
註:命令列參數這種jar套件指定參數啟動應用的方式,可能是不安全的,我們可以設定禁止這種方式啟動應用,如下:
補充:
在spring boot 中配置除了支援application.properties,也支援application.yml的設定方式,如下:
新application.yml取代application.properties
注意:port: 9999 中間是有空格的,yml語法請參考:yml設定檔用法
首頁 Java java教程 Spring Boot系列之屬性配置以及自訂屬性配置的具體介紹

Spring Boot系列之屬性配置以及自訂屬性配置的具體介紹

Jul 24, 2017 pm 02:16 PM
boot spring 配置

在使用spring boot過程中,可以發現專案中只需要極少的配置就能完成對應的功能,這歸功於spring boot中的模組化配置,在pom.xml中依賴的每個Starter都有預設配置,而這些預設配置足以滿足正常的功能開發。

如果需要修改自訂修改預設配置,spring boot 提供了很簡單的方法,只需要在application.properties 中加入修改對應的配置。 (spring boot啟動的時候會讀取application.properties這份預設配置)

一、修改預設配置

例1、spring boot 開發web應用的時候,預設tomcat的啟動端口為8080,如果需要修改預設的端口,則需要在application.properties 添加以下記錄:

server.port=8888
登入後複製
重啟項目,啟動日誌可以看到:Tomcat started on port(s): 8888 (http) 啟動端口為8888,瀏覽器中造訪http://localhost:8888 能正常存取。

例2、spring boot 開發中的資料庫連接資訊配置(這裡使用com.alibaba 的druid), 在application.properties 新增以下記錄:

druid.url=jdbc:mysql://192.168.0.20:3306/test
druid.driver-class=com.mysql.jdbc.Driver
druid.username=root
druid.password=123456
druid.initial-size=1
druid.min-idle=1
druid.max-active=20
druid.test-on-borrow=true
登入後複製

以上兩個例子,說明了如需修改starter模組中的預設配置,只需要在application.properties 新增需要修改的配置即可。

二、自訂屬性配置

在application.properties中除了可以修改預設配置,我們還可以在這配置自訂的屬性,並在實體bean中載入出來。

1、在application.properties中加入自訂屬性配置

com.sam.name=sam
com.sam.age=11
com.sam.desc=magical sam
登入後複製

2、寫Bean類,載入屬性

Sam類別需要新增@Component註解,讓spring在啟動的時候掃描到該類,並添加到spring容器中。

第一種:使用spring支援的@Value()載入

package com.sam.demo.conf;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
 * @author sam
 * @since 2017/7/15
 */
@Component
public class Sam {

    //获取application.properties的属性
    @Value("${com.sam.name}")
    private String name;

    @Value("${com.sam.age}")
    private int age;

    @Value("${com.sam.desc}")
    private String desc;
    
    //getter & setter
}
登入後複製

第二種:使用@ConfigurationProperties(prefix="") 設定前綴,屬性上不需要加上註解。

package com.sam.demo.conf;

import org.springframework.stereotype.Component;

/**
 * @author sam
 * @since 2017/7/15
 */
@Component
@ConfigurationProperties(prefix = "com.sam")
public class Sam {

    private String name;

    private int age;

    private String desc;

    //getter & setter
}
登入後複製

3、在controller中註入並使用Sam這個Bean。

package com.sam.demo.controller;

import com.sam.demo.conf.Sam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author sam
 * @since 2017/7/14
 */
@RestController
public class IndexController {

    @Autowired
    private Sam sam;

    @RequestMapping("/index")
    public String index() {
        System.out.println(sam.getName() + " " + sam.getAge() + " " + sam.getDesc());
        return "index";
    }

}
登入後複製
瀏覽器存取:http://localhost:8080/index ,控制台正常列印出sam的內容。

三、application.properties 屬性配置詳解

1、參數引用與random隨機數方法的使用

在application.properties內可以直接透過${}引用其他屬性的值,如下:
com.sam.name=sam
com.sam.age=11
com.sam.desc=${name} is ${age} years old.
登入後複製
在application.properties中如果需要取得隨機數,可以透過${random},如下:
#获取随机字符串
com.sam.randomValue=${random.value}

#获取随机字符串:${random.value}
#获取随机int:${random.int}
#获取10以内的随机数:${random.int(10)}
#获取10-20的随机数:${random.int[10,20]}
#获取随机long:${random.long}
#获取随机uuid:${random.uuid}
登入後複製

2、多環境配置

實際開發中可能會有不同的環境,有開發環境、測試環境、生成環境。對於每個環境相關配置都可能有所不同,如:資料庫資訊、連接埠配置、本機路徑配置等。

如果每次切換不同環境都需要修改application.properties,那麼操作是十分繁瑣的。在spring boot中提供了多環境配置,使得我們切換環境變得簡單。

在application.properties同目錄下新建一下三個檔案:

application-dev.properties      //开发环境的配置文件
application-test.properties     //测试环境的配置文件
application-prod.properties     //生产环境的配置文件
登入後複製
上面三個檔案分別對應了開發、測試、生產的設定內容,接下來就是應該怎麼選擇性引用這些配置了。

在application.properties新增:

spring.profiles.active=dev
#引用测试的配置文件
#spring.profiles.active=test
#引用生产的配置文件
#spring.profiles.active=prod
登入後複製
新增spring.profiles.active=dev後啟動應用,會發現引用了dev的這份設定資訊。
可以看出上面三個設定檔符合 application-{profile}.properties 格式,而在application.properties新增的 spring.profiles.active=dev 中的dev正是上面設定檔中的 profile。依具體環境進行切換即刻。

用指令執行jar包啟動應用程式的時候,可以指定對應的設定.

java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev
登入後複製

附:設定方式與優先權

这些方式优先级如下:
a. 命令行参数
b. 来自java:comp/env的JNDI属性
c. Java系统属性(System.getProperties())
d. 操作系统环境变量
e. RandomValuePropertySource配置的random.*属性值
f. jar外部的application-{profile}.properties或application.yml(带spring.profile)配置文件
g. jar内部的application-{profile}.properties或application.yml(带spring.profile)配置文件
h. jar外部的application.properties或application.yml(不带spring.profile)配置文件
i. jar内部的application.properties或application.yml(不带spring.profile)配置文件
j. @Configuration注解类上的@PropertySource
k. 通过SpringApplication.setDefaultProperties指定的默认属性
登入後複製

註:命令列參數這種jar套件指定參數啟動應用的方式,可能是不安全的,我們可以設定禁止這種方式啟動應用,如下:

springApplication.setAddCommandLineProperties(false);

package com.sam.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
//        SpringApplication.run(DemoApplication.class, args);
        SpringApplication springApplication = new SpringApplication(DemoApplication.class);
        //禁止命令行设置参数
        springApplication.setAddCommandLineProperties(false);
        springApplication.run(args);
    }
}
登入後複製

補充:

在spring boot 中配置除了支援application.properties,也支援application.yml的設定方式,如下:
新application.yml取代application.properties
server:
  port: 9999

com:
  sam:
    name: sam
    age: 11
    desc: magical sam
登入後複製
注意:port: 9999 中間是有空格的,yml語法請參考:yml設定檔用法

以上是Spring Boot系列之屬性配置以及自訂屬性配置的具體介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Linux系統中GDM的工作原理及配置方法 Linux系統中GDM的工作原理及配置方法 Mar 01, 2024 pm 06:36 PM

標題:Linux系統中GDM的工作原理及設定方法在Linux作業系統中,GDM(GNOMEDisplayManager)是一種常見的顯示管理器,用於控制圖形使用者介面(GUI)登入和使用者會話管理。本文將介紹GDM的工作原理和設定方法,以及提供具體的程式碼範例。一、GDM的工作原理GDM是GNOME桌面環境下的顯示管理器,負責啟動X伺服器並提供登入介面,使用者輸

PyCharm與PyTorch完美結合:安裝設定步驟詳解 PyCharm與PyTorch完美結合:安裝設定步驟詳解 Feb 21, 2024 pm 12:00 PM

PyCharm是一款強大的整合開發環境(IDE),而PyTorch則是深度學習領域備受歡迎的開源架構。在機器學習和深度學習領域,使用PyCharm和PyTorch進行開發可以大大提高開發效率和程式碼品質。本文將詳細介紹如何在PyCharm中安裝設定PyTorch,並附上具體的程式碼範例,幫助讀者更好地利用這兩者的強大功能。第一步:安裝PyCharm和Python

利用Spring Boot以及Spring AI建構生成式人工智慧應用 利用Spring Boot以及Spring AI建構生成式人工智慧應用 Apr 28, 2024 am 11:46 AM

Spring+AI作為行業領導者,透過其強大、靈活的API和先進的功能,為各種行業提供了領先性的解決方案。在本專題中,我們將深入探討Spring+AI在各領域的應用範例,每個案例都將展示Spring+AI如何滿足特定需求,實現目標,並將這些LESSONSLEARNED擴展到更廣泛的應用。希望這個專題能對你有所啟發,更深入地理解和利用Spring+AI的無限可能。 Spring框架在軟體開發領域已經有超過20年的歷史,自SpringBoot1.0版本發布以來已有10年。現在,無人會質疑,Spring

了解Linux Bashrc:功能、設定與使用方法 了解Linux Bashrc:功能、設定與使用方法 Mar 20, 2024 pm 03:30 PM

了解LinuxBashrc:功能、配置與使用方法在Linux系統中,Bashrc(BourneAgainShellrunco​​mmands)是一個非常重要的配置文件,其中包含了系統啟動時自動運行的各種命令和設定。 Bashrc文件通常位於使用者的家目錄下,是一個隱藏文件,它的作用是為使用者自訂設定Bashshell的環境。一、Bashrc的功能設定環境

win11系統如何配置工作小組 win11系統如何配置工作小組 Feb 22, 2024 pm 09:50 PM

Win11系統如何設定工作群組工作群組是一種在區域網路中連接多台電腦的方式,它允許電腦之間共用檔案、印表機和其他資源。在Win11系統中,設定工作群組非常簡單,只需依照下列步驟操作即可。步驟1:開啟「設定」應用程式首先,點擊Win11系統的「開始」按鈕,然後在彈出的選單中選擇「設定」應用程式。你也可以使用快捷鍵“Win+I”開啟“設定”。步驟2:選擇「系統」在「設定」應用程式中,你會看到多個選項。請點選「系統」選項,進入系統設定頁面。步驟3:選擇「關於」在「系統」設定頁面中,你會看到多個子選項。請點

Linux系統中如何設定和安裝FTPS Linux系統中如何設定和安裝FTPS Mar 20, 2024 pm 02:03 PM

標題:Linux系統中如何配置和安裝FTPS,需要具體程式碼範例在Linux系統中,FTPS是一種安全的檔案傳輸協議,與FTP相比,FTPS透過TLS/SSL協議對傳輸的資料進行加密,提高了資料傳輸的安全性。在本文中,將介紹如何在Linux系統中設定和安裝FTPS,並提供特定的程式碼範例。步驟一:安裝vsftpd開啟終端,輸入以下指令安裝vsftpd:sudo

MyBatis Generator配置參數解讀及最佳實踐 MyBatis Generator配置參數解讀及最佳實踐 Feb 23, 2024 am 09:51 AM

MyBatisGenerator是MyBatis官方提供的程式碼產生工具,可以幫助開發人員快速產生符合資料庫表結構的JavaBean、Mapper介面以及XML映射檔。在使用MyBatisGenerator進行程式碼產生的過程中,配置參數的設定是至關重要的。本文將從配置參數的角度出發,深入探討MyBatisGenerator的

CentOS7系統安裝與設定 DRBD?實現高可用性和資料冗餘教程! CentOS7系統安裝與設定 DRBD?實現高可用性和資料冗餘教程! Feb 22, 2024 pm 02:13 PM

DRBD(DistributedReplicatedBlockDevice)是一種用於實現資料冗餘和高可用性的開源解決方案。以下是在CentOS7系統上安裝和設定DRBD的教學:安裝DRBD:開啟終端機並以管理員身分登入CentOS7系統。執行以下命令以安裝DRBD軟體包:sudoyuminstalldrbd配置DRBD:編輯DRBD設定檔(通常位於/etc/drbd.d目錄下),配置DRBD資源的設定。例如,可以定義主節點和備份節點的IP位址、連接埠和設備等。確保主節點和備份節點之間可以透過網

See all articles