国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

springboot之一:配置文件(內(nèi)外部配置優(yōu)先順序+properties、xml、yaml基礎語法+profile動態(tài)切換配置、激活方式)

這篇具有很好參考價值的文章主要介紹了springboot之一:配置文件(內(nèi)外部配置優(yōu)先順序+properties、xml、yaml基礎語法+profile動態(tài)切換配置、激活方式)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

配置的概念:

Spring Boot是基于約定的,所以很多配置都有默認值,但如果想使用自己的配置替換默認配置的話,就可以使用application.properties或者application.yml(application.yaml)進行配置。

注意配置文件的命名必須是application開頭。

優(yōu)先順序:

在同一級目錄下優(yōu)先級為:properties > yml > yaml

內(nèi)部配置優(yōu)先順序:

  1. file:../config/ :當前項目下的/config目錄下直接放的配置文件

  2. file:../config/xxx/:當前項目下的/config目錄下的子路徑下放的配置文件

  3. file:../ :當前項目的根目錄中的配置文件

  4. classpath:/config/:classpath的/config目錄的配置文件

  5. classpath:/ :classpath的根目錄的配置文件

java和resources的文件會被打包到classes的目錄

properties和yml實際上會被打包到classpath路徑下

即優(yōu)先級順序如圖:

springboot之一:配置文件(內(nèi)外部配置優(yōu)先順序+properties、xml、yaml基礎語法+profile動態(tài)切換配置、激活方式),springboot入門,spring boot,后端,java,spring

外部配置優(yōu)先順序:

https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.external-config

properties、xml、yml格式比對:

properties:

server.port=8080
server.address=127.0.0.1

xml:

<server>
    <port>8080</port>
    <address>127.0.0.1</address>
</server>

yml:

server:
    port:8080
    address:127.0.0.1

Yaml(yml):

  • 大小寫有區(qū)別
  • 數(shù)據(jù)前必須有空格(空格數(shù)目無所謂)作為分隔符,否則不識別該數(shù)據(jù)。
  • 縮進的空格數(shù)目不重要,但是相同層級的元素要左對齊。
  • 注釋的話快捷鍵也是ctrl+/,是#+空格。
  • 參數(shù)引用的話用${}包裹起來即可。

對象(map):鍵值對的集合

person:
    name: zhangsan

# 行內(nèi)寫法
person: {name: zhangsan}

數(shù)組

address:
    - beijing
    - shanghai
# 行內(nèi)寫法

address: [beijing,shanghai]

?純量:單個的、不可再分的值。一般都是字符串

msg1: 'hello \n world' # 單引忽略轉義字符
msg2: "hello \n world" # 雙引識別轉義字符

讀取配置內(nèi)容:

@Value

application.yml的對象,用到幾個,就要注入幾個。

application.yml中

server:
  port: 8082

name: abc

Person:
  name: zhangsan
  age: 20

Student:
  name: ${name} # 占位符,表示abc那個name會傳輸?shù)竭@里

address:
  - beijing
  - shanghai

msg1: 'hello \n world'  # 不會識別轉義字符
msg2: "hello \n world"  # 會識別轉義字符

HelloController中

package com.example.springini.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
    @Value("${name}")
    //和application.yml的鍵值對的鍵要同名,與下一行的私有成員名字無關
    private String nname;

    @Value("${Person.name}")
    private String name2;

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

    @Value("${Student.name}")
    private String name3;

    @Value("${address[0]}")
    private String addr;

    @Value("${msg1}")
    private String msg11;

    @Value("${msg2}")
    private String msg22;


    @RequestMapping("/hello2")
    public String hello2()
    {
        System.out.println(nname);
        System.out.println(name2);
        System.out.println(name3);
        System.out.println(age);
        return "hello springboot";
    }

    @RequestMapping("/hello")
    public String hello()
    {
        System.out.println(addr);
        System.out.println(msg11);
        System.out.println(msg22);
        return "hello springboot";
    }
}

@Autowired+Environment

將application.yml一次性作為一個對象全都注入。

HelloController中

package com.example.springini.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController_by_environment {
    @Autowired
    private Environment env;

    @RequestMapping("/hello")
    public void hello()
    {
        System.out.println(env.getProperty("name"));
        System.out.println(env.getProperty("Person.name"));
        System.out.println(env.getProperty("address[0]"));
        System.out.println(env.getProperty("msg1"));
        System.out.println(env.getProperty("msg2"));
    }

}

@Autowired+ConfigurationProperties

將配置內(nèi)容與對象相互綁定。

新建Person類中

package com.example.springini;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component  //表示這個Person類被識別成Bean

@ConfigurationProperties(prefix = "person")
//如果不指定prefix為person,那么它不一定找到配置文件的person底下的兩個字段name和age
//而可能去找到單獨的兩個字段name和age。

public class Person {
    private String name;//命名必須和yml文件中的鍵值對的鍵保持一致
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

HelloController中

package com.example.springini.controller;

import com.example.springini.Person;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController_by_ConfigurationProperties {
    @Autowired
    private Person p;

    @RequestMapping("/hello")
    public void hello()
    {
        System.out.println(p.getName()+" : "+p.getAge());
    }

}

profile(動態(tài)配置切換):

我們在開發(fā)Spring Boot應用時,通常同一套程序會被安裝到不同環(huán)境,比如:開發(fā)、測試、生產(chǎn)等。其中數(shù)據(jù)庫地址、服務器端口等等配置都不同,如果每次打包時,都要修改配置文件,那么非常麻煩。profile功能就是來進行動態(tài)配置切換的。

配置方式:

多profile文件方式

  • application-dev.properties/yml? 開發(fā)環(huán)境
  • application-test.properties/yml? 測試環(huán)境
  • application-pro.properties/yml? ?生產(chǎn)環(huán)境

yml多文檔方式

在yml中使用----分隔不同配置

激活方式:

配置文件

在配置文件中配置:spring.profiles.active=dev

虞擬機參數(shù)

在VM options指定:-Dspring.profiles.active=dev

命令行參數(shù)

java-jar xxx.jar --spring.profiles.active=dev文章來源地址http://www.zghlxwxcb.cn/news/detail-691325.html

到了這里,關于springboot之一:配置文件(內(nèi)外部配置優(yōu)先順序+properties、xml、yaml基礎語法+profile動態(tài)切換配置、激活方式)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • SpringBoot 配置文件加載優(yōu)先級

    SpringBoot 配置文件加載優(yōu)先級

    最近在使用k8s部署項目的時候,發(fā)現(xiàn)Dockerfile文件中的命令后面跟的參數(shù),無法覆蓋nacos中的參數(shù),今天有時間正好來整理一下Springboot配置的加載順序 整理加載順序第一個肯定看官方文檔:https://docs.spring.io/spring-boot/docs/2.2.9.RELEASE/reference/htmlsingle/#boot-features-external-config 看不懂我們直

    2024年02月02日
    瀏覽(25)
  • 10SpringBoot 靜態(tài)資源訪問
                    
            
11Springboot的默認配置文件和外部配置文件及加載順序

    10SpringBoot 靜態(tài)資源訪問 11Springboot的默認配置文件和外部配置文件及加載順序

    ? ? ?? ?做web開發(fā)的時候,我們往往會有很多靜態(tài)資源,如html、圖片、css等。那如何向前端返回靜態(tài)資源呢? ? ? ? ?以前做過web開發(fā)的同學應該知道,我們以前創(chuàng)建的web工程下面會有一個webapp的目錄,我們只要把靜態(tài)資源放在該目錄下就可以直接訪問。 ? ? ? ?但是,基

    2023年04月08日
    瀏覽(23)
  • Springboot讀取外部配置文件,項目部署時配置讀取不到問題

    需求: 最近項目部署,但是每個地方都有個別地方配置的差異,我們每次打包后再進行修改極度不方便,這里將有關的配置都抽取出來,放在jar包外進行配置,這樣以后更新時只需要將jar包更換然后重啟即可,配置讀取外部的固定配置文件。 SpringBoot 配置 springboot默認配置的

    2024年02月07日
    瀏覽(25)
  • Docker 部署SpringBoot項目,使用外部配置文件啟動項目

    一、Springboot項目引入配置文件的方式: 二、docker啟動SpringBoot項目飲用外部部署文件

    2024年02月09日
    瀏覽(22)
  • SpringBoot啟動過程探究及配置文件優(yōu)先級解析

    如果項目依賴中存在org.springframework.web.reactive.DispatcherHandler,并且不存在org.springframework.web.servlet.DispatcherServlet,那么應用類型為WebApplicationType.REACTIVE 如果項目依賴中不存在org.springframework.web.reactive.DispatcherHandler,也不存在org.springframework.web.servlet.DispatcherServlet,那么應用類型為

    2024年02月09日
    瀏覽(48)
  • SpringBoot外部化配置

    SpringBoot外部化配置

    Spring Boot允許外部化項目配置,以便您可以在不同的環(huán)境中使用相同的應用程序代碼。您可以使用各種外部配置源,包括Java屬性文件、YAML文件、環(huán)境變量和命令行參數(shù)。 屬性值可以通過使用@Value注釋直接注入到bean中,通過Spring的環(huán)境抽象進行訪問,或者通過@ConfigurationProp

    2024年03月09日
    瀏覽(15)
  • springboot-配置優(yōu)先級

    springboot-配置優(yōu)先級

    類型 1.properties(三者同時存在,優(yōu)先級最高) 2.yml 3.yaml(最低) 除此之外,可以在啟動配置處修改 在jar包中修改配置屬性 1.pom文件需要導入打包的插件 2.使用package命令 3.用打開目錄的方式打開 4.在存放jar包的文件夾下打開命令行 5.java -jar jar包名,就能啟動springboot項目 6.jav

    2024年02月12日
    瀏覽(21)
  • SpringBoot項目配置方式及優(yōu)先級

    SpringBoot項目配置方式及優(yōu)先級

    說明:SpringBoot支持以下五種方式配置方式,例如將項目的Tomcat端口從8080,更改為9000,可以使用如下方式配置 在啟動窗口,鼠標右鍵,選擇“Edit Configurations”,在彈出來的窗口中,在Program arguments,里面填“–server.port=9000”,配置格式為兩個小橫杠(–)開頭 這種方式,可

    2024年02月08日
    瀏覽(22)
  • SpringBoot配置外部Tomcat項目啟動流程源碼分析

    SpringBoot配置外部Tomcat項目啟動流程源碼分析

    SpringBoot應用默認以Jar包方式并且使用內(nèi)置Servlet容器(默認Tomcat),該種方式雖然簡單但是默認不支持JSP并且優(yōu)化容器比較復雜。故而我們可以使用習慣的外置Tomcat方式并將項目打War包。 ① 同樣使用Spring Initializer方式創(chuàng)建項目 ② 打包方式選擇\\\"war\\\" ③ 選擇添加的模塊 ④ 創(chuàng)建的

    2024年02月04日
    瀏覽(25)
  • nacos配置文件優(yōu)先級

    nacos配置文件優(yōu)先級

    當前配置文件如下: 優(yōu)先級:userservice-dev.yml(當前環(huán)境配置) userservice.yml(nacos上的) application.yml(本地的) 擴展配置(extension-configs) 共享配置(shared-configs) 同為擴展配置,存在如下優(yōu)先級關系:extension-configs[3] extension-configs[2] extension-configs[1] extension-configs[0] 同為共享配置

    2024年02月12日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包