成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

SpringBoot學(xué)習(xí)筆記:Spring Boot配置文件詳解

sunny5541 / 2211人閱讀

摘要:全局配置文件默認(rèn)為下的,另外它還可以重命名為格式即對(duì)著兩種格式均支持。其中每個(gè)環(huán)境的數(shù)據(jù)庫(kù)地址服務(wù)器端口等等配置都會(huì)不同,如果在為不同環(huán)境打包時(shí)都要頻繁修改配置文件的話,那必將是個(gè)非常繁瑣且容易發(fā)生錯(cuò)誤的事。

SpringBoot全局配置文件默認(rèn)為src/main/resources下的application.properties,另外它還可以重命名為.yml格式(即SpringBoot對(duì)著兩種格式均支持)。

修改默認(rèn)配置

如修改SpringBoot內(nèi)嵌Tomcat的啟動(dòng)端口為9080(.yml格式)

server:
  port: 9080

啟動(dòng)項(xiàng)目即可在控制臺(tái)啟動(dòng)日志中看到

s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 9080 (http)

這時(shí)在瀏覽器輸入localhost:9080即可正常訪問(wèn)
附SpringBoot Common application properties

自定義屬性配置

我們也可以在SpringBoot配置文件中自定義屬性配置,如

girl:
  name: baby
  age: 18
  cupSize: B

然后通過(guò)@Value("${屬性名}")注解來(lái)加載對(duì)應(yīng)的配置屬性

package cn.fulgens.springboot.springbootconfig.web;

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

@RestController
public class HelloController {

    @Value("${girl.name}")
    private String girlName;

    @Value("${girl.age}")
    private Integer girlAge;

    @Value("${girl.cupSize}")
    private String girlCupSize;

    @GetMapping("/girl")
    public String girl() {
        return "girlName: " + girlName + " girlAge: " + girlAge + " girlCupSize: " + girlCupSize;
    }

}

啟動(dòng)工程,訪問(wèn):localhost:9080/girl,瀏覽器顯示:

girlName: baby girlAge: 18 girlCupSize: B

屬性注入成功

屬性配置間的引用

在SpringBoot全局配置文件中的各個(gè)屬性之間可以通過(guò)直接引用來(lái)使用

girl:
  name: baby
  age: 18
  cupSize: B
  desc: ${girl.name} ${girl.age} ${girl.cupSize}

同樣可以使用@Value注解將girl.desc屬性配置注入到某一屬性中,如

@RestController
public class HelloController {

    @Value("${girl.name}")
    private String girlName;

    @Value("${girl.age}")
    private Integer girlAge;

    @Value("${girl.cupSize}")
    private String girlCupSize;

    @Value("${girl.desc}")
    private String girlDesc;

    @GetMapping("/girl")
    public String girl() {
        // return "girlName: " + girlName + " girlAge: " + girlAge + " girlCupSize: " + girlCupSize;
        return girlDesc;
    }

}

再次啟動(dòng)工程,訪問(wèn):localhost:9080/girl,瀏覽器顯示:

baby 18 B
將屬性配置賦給實(shí)體類(lèi)

當(dāng)我們屬性配置很多的時(shí)候,使用@Value注解一個(gè)一個(gè)的注入將會(huì)變得很繁瑣,這時(shí)SpringBoot提供了將屬性配置與實(shí)體類(lèi)結(jié)合的方式,具體先來(lái)看一下SpringBoot中官方的使用如org.springframework.boot.autoconfigure.data.redis.RedisProperties

package org.springframework.boot.autoconfigure.data.redis;

import java.util.List;
import org.springframework.boot.context.properties.ConfigurationProperties;

@ConfigurationProperties(
    prefix = "spring.redis"
)
public class RedisProperties {
    private int database = 0;
    private String url;
    private String host = "localhost";
    private String password;
    private int port = 6379;
    private boolean ssl;
    private int timeout;
    private RedisProperties.Pool pool;
    private RedisProperties.Sentinel sentinel;
    private RedisProperties.Cluster cluster;
    
    ...
}

對(duì)于上面我們自己關(guān)于girl的一些配置,同理我們可以創(chuàng)建一個(gè)GirlProperties類(lèi),如

package cn.fulgens.springboot.springbootconfig.properties;

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

@ConfigurationProperties(prefix = "girl")
@Component
public class GirlProperties {

    private String name;

    private Integer age;

    private String cupSize;

    public String getName() {
        return name;
    }

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

    public Integer getAge() {
        return age;
    }

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

    public String getCupSize() {
        return cupSize;
    }

    public void setCupSize(String cupSize) {
        this.cupSize = cupSize;
    }
}

注意這里指定了@ConfigurationProperties注解的prefix,同時(shí)以上@Component注解可加可不加
有時(shí)可能還需要在pom.xml中加上以下依賴(lài)

    
        org.springframework.boot
        spring-boot-configuration-processor
        true
    

那么如何使用呢?我們需要在需要使用的類(lèi)上加@EnableConfigurationProperties注解,同時(shí)使用@Autowired注解注入即可,如

package cn.fulgens.springboot.springbootconfig.web;

import cn.fulgens.springboot.springbootconfig.properties.GirlProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@EnableConfigurationProperties(GirlProperties.class)
public class HelloController {

    @Autowired
    private GirlProperties girlProperties;
    
    @GetMapping("/girl")
    public String girl() {
        return girlProperties.getName() + "--" + girlProperties.getAge() + "--" +girlProperties.getCupSize();
    }

}

再次啟動(dòng)工程,訪問(wèn):localhost:9080/girl,瀏覽器顯示:

baby--18--B
使用隨機(jī)值

Spring Boot的屬性配置文件中可以通過(guò)${random}來(lái)產(chǎn)生隨機(jī)int、long、uuid或者string字符串,來(lái)支持屬性的隨機(jī)值。

比如我們給girl隨機(jī)來(lái)個(gè)年齡

age: ${random.int}
自定義配置文件

雖然SprinBoot提供了application.properties或application.yml全局配置文件,但有時(shí)我們還是需要自定義配置文件,如將上文關(guān)于girl的屬性配置提取到girl.properties文件中,那么如何讓spring讀取這個(gè)屬性配置文件呢?答案是使用@PropertySource(value = "classpath:girl.properties")當(dāng)然如果這樣寫(xiě)需要將girl.properties文件放在類(lèi)路徑下
結(jié)合屬性配置類(lèi)的用法如下:

@Configuration
@PropertySource(value = "classpath:girl.properties")
@ConfigurationProperties(prefix = "girl")
public class GirlProperties {

    private String name;

    private Integer age;

    private String cupSize;

    ...
}
多環(huán)境配置

開(kāi)發(fā)Spring Boot應(yīng)用時(shí),通常同一套程序會(huì)被應(yīng)用和安裝到幾個(gè)不同的環(huán)境,比如:開(kāi)發(fā)、測(cè)試、生產(chǎn)等。其中每個(gè)環(huán)境的數(shù)據(jù)庫(kù)地址、服務(wù)器端口等等配置都會(huì)不同,如果在為不同環(huán)境打包時(shí)都要頻繁修改配置文件的話,那必將是個(gè)非常繁瑣且容易發(fā)生錯(cuò)誤的事。
在Spring Boot中多環(huán)境配置文件名需要滿足application-{profile}.properties的格式,其中{profile}對(duì)應(yīng)你的環(huán)境標(biāo)識(shí),比如:

application-test.yml:測(cè)試環(huán)境

application-dev.yml:開(kāi)發(fā)環(huán)境

application-prod.yml:生產(chǎn)環(huán)境

哪個(gè)profile會(huì)被激活?在application.yml文件中通過(guò)spring.profiles.active屬性來(lái)設(shè)置,其值對(duì)應(yīng){profile}值
這里在類(lèi)路徑下創(chuàng)建application-dev.yml配置server.port為8080,并在application.yml中配置spring.profiles.active為dev
再次啟動(dòng)工程,訪問(wèn):localhost:8080/girl即可正常訪問(wèn)

參考自
慕課廖師兄girl案例

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/76382.html

相關(guān)文章

  • Java學(xué)習(xí)路線總結(jié),搬磚工逆襲Java架構(gòu)師(全網(wǎng)最強(qiáng))

    摘要:哪吒社區(qū)技能樹(shù)打卡打卡貼函數(shù)式接口簡(jiǎn)介領(lǐng)域優(yōu)質(zhì)創(chuàng)作者哪吒公眾號(hào)作者架構(gòu)師奮斗者掃描主頁(yè)左側(cè)二維碼,加入群聊,一起學(xué)習(xí)一起進(jìn)步歡迎點(diǎn)贊收藏留言前情提要無(wú)意間聽(tīng)到領(lǐng)導(dǎo)們的談話,現(xiàn)在公司的現(xiàn)狀是碼農(nóng)太多,但能獨(dú)立帶隊(duì)的人太少,簡(jiǎn)而言之,不缺干 ? 哪吒社區(qū)Java技能樹(shù)打卡?【打卡貼 day2...

    Scorpion 評(píng)論0 收藏0
  • 寫(xiě)這么多系列博客,怪不得找不到女朋友

    摘要:前提好幾周沒(méi)更新博客了,對(duì)不斷支持我博客的童鞋們說(shuō)聲抱歉了。熟悉我的人都知道我寫(xiě)博客的時(shí)間比較早,而且堅(jiān)持的時(shí)間也比較久,一直到現(xiàn)在也是一直保持著更新?tīng)顟B(tài)。 showImg(https://segmentfault.com/img/remote/1460000014076586?w=1920&h=1080); 前提 好幾周沒(méi)更新博客了,對(duì)不斷支持我博客的童鞋們說(shuō)聲:抱歉了!。自己這段時(shí)...

    JerryWangSAP 評(píng)論0 收藏0
  • SpringBoot 實(shí)戰(zhàn) (二) | 第一個(gè) SpringBoot 工程詳解

    摘要:代碼如下可以看到中一共有個(gè)依賴(lài),其中只有是我手動(dòng)加入的,用于單元測(cè)試。點(diǎn)擊項(xiàng)目啟動(dòng)按鈕,效果如下好的程序必須配備完善的單元測(cè)試。測(cè)試結(jié)果如下可以看到紅圈框住的地方,出現(xiàn)這個(gè)綠色標(biāo)志證明單元測(cè)試沒(méi)問(wèn)題。 微信公眾號(hào):一個(gè)優(yōu)秀的廢人如有問(wèn)題或建議,請(qǐng)后臺(tái)留言,我會(huì)盡力解決你的問(wèn)題。 前言 哎呦喂,按照以往的慣例今天周六我的安排應(yīng)該是待在家學(xué)學(xué)貓叫啥的。但是今年這種日子就可能一去不復(fù)返了,沒(méi)...

    GeekQiaQia 評(píng)論0 收藏0
  • SpringBoot學(xué)習(xí)筆記:Getting Started構(gòu)建第一個(gè)Spring Boot工程

    摘要:本文參考官方文檔部分特定版本如版本官方文檔地址注本文基于構(gòu)建話說(shuō)在上已經(jīng)有多顆星了,足見(jiàn)火爆程度簡(jiǎn)介以下介紹引自創(chuàng)建獨(dú)立的應(yīng)用程序直接嵌入,或無(wú)需部署文件提供自己的入門(mén)來(lái)簡(jiǎn)化你的配置盡可能自動(dòng)配置提供生產(chǎn)就緒功能,如指標(biāo),運(yùn)行 本文參考 Spring Boot官方文檔 Part II. Getting Started部分特定版本如1.5.10.RELEASE版本官方文檔地址:https...

    Drummor 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<