欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot個(gè)性化配置的方法步驟

 更新時(shí)間:2019年02月01日 09:42:02   作者:吉林烏拉  
這篇文章主要介紹了SpringBoot個(gè)性化配置的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

在上一篇中我們簡(jiǎn)單的介紹了SpringBoot項(xiàng)目的創(chuàng)建及其啟動(dòng)方式。在這一篇中我們主要介紹一下SpringBoot項(xiàng)目的個(gè)性化配置。因?yàn)橥ㄟ^(guò)上一篇中知識(shí)我們知道SpringBoot項(xiàng)目的默認(rèn)端口為8080,那如果我要修改這個(gè)默認(rèn)端口,應(yīng)該怎么改呢?又比如SpringBoot項(xiàng)目在啟動(dòng)時(shí),默認(rèn)是沒(méi)有項(xiàng)目名字的,那如果我們想要添加自己喜歡的項(xiàng)目名字又該怎么辦呢?這些都在這一篇的內(nèi)容中。好了,下面我們?cè)敿?xì)介紹一下怎么修改SpringBoot項(xiàng)目中的默認(rèn)配置。

修改默認(rèn)端口

在上一篇的SpringBoot項(xiàng)目中我們看到在resources目錄中有一個(gè)application.properties文件,這個(gè)文件就是讓我們個(gè)性化配置SpringBoot項(xiàng)目參數(shù)的,也就是說(shuō),在這個(gè)文件中按照SpringBoot為我們提供的參數(shù)名,就可以直接修改SpringBoot項(xiàng)目的默認(rèn)參數(shù)。下面我們嘗試修改SpringBoot項(xiàng)目的默認(rèn)端口。具體修改如下:

在application.properties文件中添加下面的參數(shù),然后,啟動(dòng)application.properties文件項(xiàng)目即可。

server.port=8081

并且如果我們使用IDEA開(kāi)發(fā)工具時(shí),當(dāng)我們?cè)谠赼pplication.properties文件中輸入?yún)?shù)時(shí),IDEA就會(huì)自動(dòng)為我們提供相關(guān)參數(shù)提示,這樣方便我們修改。也就是如下圖所示:

這時(shí)我們啟動(dòng)SpringBoot項(xiàng)目并且用8080端口訪問(wèn)項(xiàng)目時(shí),發(fā)現(xiàn)已經(jīng)找不到服務(wù)了。

而如果我們用訪問(wèn)8081端口訪問(wèn)項(xiàng)目,則發(fā)現(xiàn)服務(wù)可以正常訪問(wèn)。這就說(shuō)明,我們已經(jīng)成功將SpringBoot項(xiàng)目的默認(rèn)端口修改為8081端口了。

雖然上面的方式已經(jīng)成功的修改了SpringBoot項(xiàng)目的默認(rèn)參數(shù),但在實(shí)際的開(kāi)發(fā)中,并不推薦使用application.properties文件的方式修改,因?yàn)樵赟pringBoot項(xiàng)目中有更推薦的方式。也就是使用yml文件的方式。

application.yml文件

使用yml文件的方式修改默認(rèn)參數(shù),也比較簡(jiǎn)單,也就是把a(bǔ)pplication.properties文件文件修改為application.yml文件即可。唯一不同的方式,就是yml文件有自己獨(dú)特的語(yǔ)法,和properties文件不同,可以省略很多參數(shù),并且瀏覽比較直觀。下面我們嘗試用yml文件的方式,將SpringBoot的端口修改為8082端口。

啟動(dòng)項(xiàng)目后訪問(wèn)剛剛的8081端口,發(fā)現(xiàn)項(xiàng)目已經(jīng)訪問(wèn)不了。

這時(shí)我們?cè)L問(wèn)8082端口,發(fā)現(xiàn)項(xiàng)目訪問(wèn)又正常了,這就說(shuō)明我們使用yml的方式修改SpringBoot的默認(rèn)參數(shù)方式成功了。

如果我們?cè)L問(wèn)http://localhost:8082/jilinwu...地址,即可看到SpringBoot接口返回的數(shù)據(jù)。

修改默認(rèn)項(xiàng)目名

下面我們還將使用yml的方式配置SpringBoot項(xiàng)目的項(xiàng)目名。具體參數(shù)如下:

server:
 port: 8082
 context-path: /springboot

我們繼續(xù)啟動(dòng)項(xiàng)目然后依然訪問(wèn)http://localhost:8082/jilinwu...地址,這時(shí)發(fā)現(xiàn)接口訪問(wèn)失敗。

然后我們?cè)L問(wèn)http://localhost:8082/springb...地址,發(fā)現(xiàn)服務(wù)又可正常訪問(wèn)了。

獲取配置文件中參數(shù)

在實(shí)際的項(xiàng)目開(kāi)發(fā)中,我們通常會(huì)遇到,讀取配置文件中的參數(shù),那么在SpringBoot中怎么獲取配置文件中的參數(shù)呢?下面我們?cè)谂渲梦募刑砑尤缦聟?shù)。

server:
 port: 8082
 context-path: /springboot
email:
 username: jilinwula
 password: 123456

下面我們?cè)贑ontroller中采用如下的方式讀取配置文件中的參數(shù)。

@RestController
@RequestMapping("/jilinwula")
public class JilinwulaController {

  @Value("${email.username}")
  private String username;

  @Value("${email.password}")
  private String password;

  @RequestMapping("/helloworld")
  public Object helloWorld() {
    Map<String, Object> map = new HashMap<String, Object>();
    map.put("username", username);
    map.put("password", password);
    return map;
  }

}

我們可以直接使用@Value注解來(lái)獲取配置文件中的參數(shù),并且這個(gè)注解不只是在SpringBoot中可以使用,這個(gè)注解在Spring的項(xiàng)目中也可以使用。下面我們啟動(dòng)項(xiàng)目,并訪問(wèn)http://localhost:8082/springb...地址,看看是不是可以成功的獲取配置文件中的參數(shù)。

我們看上圖所示,我們成功的獲取到了配置文件中的參數(shù)。但如果有強(qiáng)迫證的人,對(duì)于上面的代碼難免有些不滿意。因?yàn)槿绻覀円@取配置文件中非常多的參數(shù)時(shí),要是按照上面的代碼編寫,則需要在代碼中編寫大量的@Value注解,這顯然是不合理的。那有沒(méi)有比較方便的辦法呢?答案一定是有的,并且SpringBoot為我們提供了非常方便的方法獲取配置文件中的參數(shù)。下面我們看一下這種方式。

我們首先要在項(xiàng)目的pom.xml中添加以下依賴:

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-configuration-processor</artifactId>
      <optional>true</optional>
    </dependency>

    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.4</version>
      <scope>provided</scope>
    </dependency>

第一個(gè)依賴是自動(dòng)獲取配置文件參數(shù)的必須依賴,而下面的依賴,則是可以用注解的方式動(dòng)態(tài)生成get和set方法,這樣我們?cè)陂_(kāi)發(fā)時(shí),就不用在寫get和set方法了,在實(shí)際的項(xiàng)目中比較常用。在使用lombok生成get和set方法時(shí),還要在IDEA中添加相應(yīng)的lombok插件,否則IDEA會(huì)提示到不到get和set方法的警告。

其次我們新創(chuàng)建一下獲取配置參數(shù)的類,并且添加@ConfigurationProperties注解,該注解會(huì)自動(dòng)將配置文件中的參數(shù)注入到類中的屬性中(不需要寫@Value注解)。并且可以指定prefix參數(shù)來(lái)指定要獲取配置文件中的前綴。具體代碼如下:

package com.jilinwula.springboot.helloworld;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

@Component
@ConfigurationProperties(prefix = "email")
@Data
public class EmailProperties {
  private String username;
  private String password;
}

上面中的@Data,注解就是動(dòng)態(tài)生成get和set方法的所以上述的代碼是不需要寫get和set方法的。下面我們看一下Controller中的代碼修改:

package com.jilinwula.springboot.helloworld;

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

import java.util.HashMap;
import java.util.Map;

@RestController
@RequestMapping("/jilinwula")
public class JilinwulaController {

  @Autowired
  private EmailProperties emailProperties;

  @RequestMapping("/helloworld")
  public Object helloWorld() {
    Map<String, Object> map = new HashMap<String, Object>();
    map.put("username", emailProperties.getUsername());
    map.put("password", emailProperties.getPassword());
    return map;
  }
}

下面我們啟動(dòng)項(xiàng)目并訪問(wèn)接口看看是否能夠成功獲取配置文件中的參數(shù)。

下面我們介紹一下在SpringBoot中怎么處理不同環(huán)境中獲取不同的配置參數(shù)。下面我們模擬兩人環(huán)境一個(gè)是開(kāi)發(fā)環(huán)境,一個(gè)是測(cè)試環(huán)境,我們暫時(shí)以不同端口來(lái)區(qū)分這兩個(gè)環(huán)境的區(qū)別。

application-dev.yml:

server:
 port: 8081
 context-path: /springboot
email:
 username: jilinwula
 password: 123456

application-test.yml:

server:
 port: 8082
 context-path: /springboot
email:
 username: jilinwula
 password: 654321

application.yml:

spring:
 profiles:
  active: dev

這樣當(dāng)我們?cè)赼pplication.yml文件中的參數(shù)設(shè)置為dev時(shí),SpringBoot項(xiàng)目在啟動(dòng)時(shí)就會(huì)讀取application-dev.yml中的參數(shù)。如果我們將參數(shù)設(shè)置為test時(shí),則SpringBoot會(huì)讀取application-test.yml文件中的參數(shù)。

下面我們分別啟動(dòng)項(xiàng)目并且訪問(wèn)接口:

當(dāng)參數(shù)為dev:

當(dāng)參數(shù)為test:

啟動(dòng)時(shí)指定參數(shù)

在上一篇中我們已經(jīng)介紹過(guò)了我們可以使用java -jar 項(xiàng)目的名字的方式啟動(dòng)SpringBoot項(xiàng)目。并且,該方式還支持指定SpringBoot參數(shù),例如上面剛剛介紹的指定獲取同環(huán)境的配置參數(shù)。具體命里如下:

java -jar jilinwula-springboot-helloworld-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev

我們此時(shí)繼續(xù)訪問(wèn)接口發(fā)現(xiàn)還是成功的獲取了dev環(huán)境中的參數(shù)。

上述內(nèi)容就是SpringBoot個(gè)性化配置的內(nèi)容,如有不正確,或者需要交流的,歡迎留言,謝謝。

項(xiàng)目源碼:

https://github.com/jilinwula/jilinwula-springboot-helloworld2

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決RestTemplate 的getForEntity調(diào)用接口亂碼的問(wèn)題

    解決RestTemplate 的getForEntity調(diào)用接口亂碼的問(wèn)題

    這篇文章主要介紹了解決RestTemplate 的getForEntity調(diào)用接口亂碼的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Spring中自定義Schema如何解析生效詳解

    Spring中自定義Schema如何解析生效詳解

    Spring2.5在2.0的基于Schema的Bean配置的基礎(chǔ)之上,再增加了擴(kuò)展XML配置的機(jī)制。通過(guò)該機(jī)制,我們可以編寫自己的Schema,并根據(jù)自定義的Schema用自定的標(biāo)簽配置Bean,下面這篇文章主要介紹了關(guān)于Spring中自定義Schema如何解析生效的相關(guān)資料,需要的朋友可以參考下
    2018-07-07
  • Java實(shí)現(xiàn)簡(jiǎn)單的彈球游戲

    Java實(shí)現(xiàn)簡(jiǎn)單的彈球游戲

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)單的彈球游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • Java的String類中的startsWith方法和endsWith方法示例詳解

    Java的String類中的startsWith方法和endsWith方法示例詳解

    大家應(yīng)該都知道startsWith()方法用于檢測(cè)字符串是否以指定的前綴開(kāi)始,endsWith()方法用于測(cè)試字符串是否以指定的后綴結(jié)束,本文就Java的String類中的startsWith方法和endsWith方法給大家詳細(xì)講解,感興趣的朋友一起看看吧
    2023-11-11
  • java字符串?dāng)?shù)組進(jìn)行大小排序的簡(jiǎn)單實(shí)現(xiàn)

    java字符串?dāng)?shù)組進(jìn)行大小排序的簡(jiǎn)單實(shí)現(xiàn)

    下面小編就為大家?guī)?lái)一篇java字符串?dāng)?shù)組進(jìn)行大小排序的簡(jiǎn)單實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-09-09
  • Java中Cron表達(dá)式的生成解析及計(jì)算的工具類完整代碼

    Java中Cron表達(dá)式的生成解析及計(jì)算的工具類完整代碼

    這篇文章主要給大家介紹了關(guān)于Java中Cron表達(dá)式的生成解析及計(jì)算工具類的相關(guān)資料,Cron表達(dá)式是一個(gè)字符串,字符串空格分割,每一個(gè)域代表一個(gè)含義,一個(gè)cron表達(dá)式有至少6個(gè),需要的朋友可以參考下
    2023-12-12
  • MyBatis如何處理MySQL字段類型date與datetime

    MyBatis如何處理MySQL字段類型date與datetime

    這篇文章主要介紹了MyBatis如何處理MySQL字段類型date與datetime問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • SpringBoot后端上傳文件類型檢測(cè)方式

    SpringBoot后端上傳文件類型檢測(cè)方式

    這篇文章主要介紹了SpringBoot后端上傳文件類型檢測(cè)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • IDEA?maven項(xiàng)目依賴無(wú)法解析問(wèn)題

    IDEA?maven項(xiàng)目依賴無(wú)法解析問(wèn)題

    這篇文章主要介紹了IDEA?maven項(xiàng)目依賴無(wú)法解析問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Spring通過(guò)三級(jí)緩存解決循環(huán)依賴問(wèn)題的過(guò)程詳解

    Spring通過(guò)三級(jí)緩存解決循環(huán)依賴問(wèn)題的過(guò)程詳解

    循環(huán)依賴指的是在對(duì)象之間存在相互依賴關(guān)系,形成一個(gè)閉環(huán),導(dǎo)致無(wú)法準(zhǔn)確地完成對(duì)象的創(chuàng)建和初始化,本文主要介紹了Spring通過(guò)三級(jí)緩存解決循環(huán)依賴的方法,需要的可以參考下
    2023-10-10

最新評(píng)論