亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

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

sunny5541 / 2258人閱讀

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

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

修改默認(rèn)配置

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

server:
  port: 9080

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

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

這時在瀏覽器輸入localhost:9080即可正常訪問
附SpringBoot Common application properties

自定義屬性配置

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

girl:
  name: baby
  age: 18
  cupSize: B

然后通過@Value("${屬性名}")注解來加載對應(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;
    }

}

啟動工程,訪問:localhost:9080/girl,瀏覽器顯示:

girlName: baby girlAge: 18 girlCupSize: B

屬性注入成功

屬性配置間的引用

在SpringBoot全局配置文件中的各個屬性之間可以通過直接引用來使用

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;
    }

}

再次啟動工程,訪問:localhost:9080/girl,瀏覽器顯示:

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

當(dāng)我們屬性配置很多的時候,使用@Value注解一個一個的注入將會變得很繁瑣,這時SpringBoot提供了將屬性配置與實(shí)體類結(jié)合的方式,具體先來看一下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;
    
    ...
}

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

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,同時以上@Component注解可加可不加
有時可能還需要在pom.xml中加上以下依賴

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

那么如何使用呢?我們需要在需要使用的類上加@EnableConfigurationProperties注解,同時使用@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();
    }

}

再次啟動工程,訪問:localhost:9080/girl,瀏覽器顯示:

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

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

比如我們給girl隨機(jī)來個年齡

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

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

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

    private String name;

    private Integer age;

    private String cupSize;

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

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

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

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

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

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

參考自
慕課廖師兄girl案例

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

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/76382.html

相關(guān)文章

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

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

    Scorpion 評論0 收藏0
  • 寫這么多系列博客,怪不得找不到女朋友

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

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

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

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

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

    Drummor 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<