国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

SpringBoot學習筆記:Spring Boot配置文件詳解

sunny5541 / 2203人閱讀

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

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

修改默認配置

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

server:
  port: 9080

啟動項目即可在控制臺啟動日志中看到

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("${屬性名}")注解來加載對應的配置屬性

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
將屬性配置賦給實體類

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

對于上面我們自己關于girl的一些配置,同理我們可以創建一個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
使用隨機值

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

比如我們給girl隨機來個年齡

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

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

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

    private String name;

    private Integer age;

    private String cupSize;

    ...
}
多環境配置

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

application-test.yml:測試環境

application-dev.yml:開發環境

application-prod.yml:生產環境

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

參考自
慕課廖師兄girl案例

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76382.html

相關文章

  • Java學習路線總結,搬磚工逆襲Java架構師(全網最強)

    摘要:哪吒社區技能樹打卡打卡貼函數式接口簡介領域優質創作者哪吒公眾號作者架構師奮斗者掃描主頁左側二維碼,加入群聊,一起學習一起進步歡迎點贊收藏留言前情提要無意間聽到領導們的談話,現在公司的現狀是碼農太多,但能獨立帶隊的人太少,簡而言之,不缺干 ? 哪吒社區Java技能樹打卡?【打卡貼 day2...

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

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

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

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

    GeekQiaQia 評論0 收藏0
  • SpringBoot學習筆記:Getting Started構建第一個Spring Boot工程

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

    Drummor 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<