最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot實(shí)現(xiàn)獲取當(dāng)前服務(wù)器IP及當(dāng)前項(xiàng)目使用的端口號Port

 更新時間:2023年12月15日 09:47:35   作者:搏·夢  
這篇文章主要介紹了springboot實(shí)現(xiàn)獲取當(dāng)前服務(wù)器IP及當(dāng)前項(xiàng)目使用的端口號Port方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

如何獲取當(dāng)前服務(wù)使用的IP

使用InetAddress類即可,直接看例子:

public class test {
    public static void main(String[] args) throws Exception{
        InetAddress localHost = InetAddress.getLocalHost();
        System.out.println("localhost: " + localHost);
        System.out.println("getHostAddress:  " + localHost.getHostAddress());
        System.out.println("getHostName:  " + localHost.getHostName());
    }
}

獲取啟動使用的端口號

1. @Value、@ConfigurationProperties等方法 從配置文件中獲取

在配置文件中配置server.port的值,之后通過@Value、@ConfigurationProperties 等方法從配置文件中獲取

server:
  port: 8085

測試代碼:

// 配置類 注入port的值
@Configuration
@ConfigurationProperties(prefix = "server")
public class PortConfig {
    @Getter
    @Setter
    private int port;
}

@RestController
public class TestController {

	// 或者使用@Value方式注入
    @Value("${server.port}")
    private int port;

	// 依賴配置
    @Autowired
    private PortConfig portConfig;

    @GetMapping("/test")
    public void test(){
        System.out.println(port);
        System.out.println(portConfig.getPort());
    }
}

2. 提問:如果上面配置文件中不配server.port值會發(fā)生什么?

@Value會導(dǎo)致啟動報(bào)錯,無法啟動項(xiàng)目:

把@Value注釋,啟動正常,但是**@ConfigurationProperties獲取到的值是0**

我們知道springboot默認(rèn)的port是8080,如果你真的很想獲取到port,代碼只能按照下面方式寫:

if(portConfig.getPort()==0){
	port = 8080;
} else {
	port = portConfig.getPort();
}

或者
int port = portConfig.getPort()>=0?portConfig.getPort():8080;

這樣子確實(shí)也可以獲取到服務(wù)啟動實(shí)際使用的port.

3. 使用spring帶的ServerProperties類

經(jīng)過上面第二點(diǎn)說明,固然大家會選擇使用配置類的方式,畢竟@Value會導(dǎo)致項(xiàng)目啟動不起來,而springboot有又自帶專門存儲server開頭的配置的類ServerProperties,都不用自己創(chuàng)建一個配置類了。

如下測試代碼:

@RestController
public class TestController {

    @Autowired
    private ServerProperties serverProperties;
    
    @GetMapping("/test")
    public void test(){
        System.out.println(serverProperties.getPort());
    }
}

同理,若當(dāng)配置文件中不寫 server.port配置,則默認(rèn)值是null

4. 使用ServletWebServerApplicationContext類(可推薦)

ServletWebServerApplicationContext類是web的上下文,里面有很多信息可以使用。

若沒有在yaml有配置server.port,不會獲取到null 而是默認(rèn)值8080(內(nèi)部已幫我們處理了)

代碼:

不在yaml配置 server.pot

@RestController
public class ConfigController {
    
    @Autowired
    private ServletWebServerApplicationContext servletWebServerApplicationContext;

    @GetMapping("/testPort")
    public void testPort(){
        System.out.println(servletWebServerApplicationContext.getWebServer().getPort());
    }
}

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java 獲取當(dāng)前函數(shù)名的實(shí)現(xiàn)代碼

    java 獲取當(dāng)前函數(shù)名的實(shí)現(xiàn)代碼

    以下是對使用java獲取當(dāng)前函數(shù)名的實(shí)現(xiàn)代碼進(jìn)行了介紹。需要的朋友可以過來參考下
    2013-08-08
  • 通過實(shí)例了解java序列化機(jī)制

    通過實(shí)例了解java序列化機(jī)制

    這篇文章主要介紹了通過實(shí)例了解java序列化機(jī)制,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • Java?輕松掌握字符緩沖流的使用

    Java?輕松掌握字符緩沖流的使用

    這篇文章主要介紹了Java的字符緩沖流用法,字符緩沖流的用途很多,主要是幾個構(gòu)造方法的使用,在項(xiàng)目開發(fā)中經(jīng)常會用到,需要的朋友參考下吧
    2022-04-04
  • Java從零開始創(chuàng)建功能豐富的PDF文檔

    Java從零開始創(chuàng)建功能豐富的PDF文檔

    隨著數(shù)字化辦公的普及,PDF格式因其跨平臺兼容性和安全性而被廣泛應(yīng)用于各種場景中,本文將詳細(xì)介紹如何使用Java來實(shí)現(xiàn)PDF文檔的一鍵生成,有需要的可以了解下
    2025-01-01
  • 解讀過濾器(Filter)與攔截器(Interceptor)的區(qū)別及說明

    解讀過濾器(Filter)與攔截器(Interceptor)的區(qū)別及說明

    這篇文章主要介紹了過濾器(Filter)與攔截器(Interceptor)的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-10-10
  • springboot版本升級以及解決springsecurity漏洞的問題

    springboot版本升級以及解決springsecurity漏洞的問題

    這篇文章主要介紹了springboot版本升級以及解決springsecurity漏洞的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • java中String,數(shù)組,ArrayList三者之間的轉(zhuǎn)換

    java中String,數(shù)組,ArrayList三者之間的轉(zhuǎn)換

    這篇文章主要介紹了java中String,數(shù)組,ArrayList三者之間的轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 基于SpringBoot實(shí)現(xiàn)一個簡易加法計(jì)算器

    基于SpringBoot實(shí)現(xiàn)一個簡易加法計(jì)算器

    本文詳細(xì)介紹了如何使用SpringBoot實(shí)現(xiàn)一個簡易的加法計(jì)算器,主要內(nèi)容包括項(xiàng)目準(zhǔn)備工作、項(xiàng)目設(shè)計(jì)、服務(wù)器代碼編寫以及項(xiàng)目運(yùn)行,通過這個項(xiàng)目,讀者可以學(xué)習(xí)到SpringBoot控制器編寫、請求映射配置等核心技能,需要的朋友可以參考下
    2026-01-01
  • Java實(shí)現(xiàn)入?yún)?shù)據(jù)批量數(shù)據(jù)校驗(yàn)詳解

    Java實(shí)現(xiàn)入?yún)?shù)據(jù)批量數(shù)據(jù)校驗(yàn)詳解

    在業(yè)務(wù)處理中一般入?yún)⑹菃螚l數(shù)據(jù),這樣數(shù)據(jù)校驗(yàn)比較容易,但是這種方法對于集合數(shù)據(jù)的校驗(yàn)不適用,下面我們就來看看如何對入?yún)?shù)據(jù)進(jìn)行批量數(shù)據(jù)校驗(yàn)吧
    2024-02-02
  • 使用Maven將Java項(xiàng)目打包為Docker鏡像的實(shí)戰(zhàn)方法

    使用Maven將Java項(xiàng)目打包為Docker鏡像的實(shí)戰(zhàn)方法

    本文介紹了兩種使用Maven將Java項(xiàng)目打包為Docker鏡像的實(shí)戰(zhàn)方法: Google Jib插件方案:無需Dockerfile,直接通過Maven插件構(gòu)建鏡像,優(yōu)勢包括分層構(gòu)建、安全高效、鏡像體積小,特別適合SpringBoot項(xiàng)目,文章詳細(xì)展示了使用Maven構(gòu)建Java項(xiàng)目并生成Docker鏡像的完整流程
    2026-02-02

最新評論

讷河市| 集安市| 盐源县| 政和县| 山丹县| 咸丰县| 靖州| 阿克陶县| 长顺县| 山西省| 东阿县| 九龙城区| 林西县| 镶黄旗| 秭归县| 东平县| 宿州市| 横峰县| 宣化县| 康乐县| 广昌县| 双柏县| 海丰县| 内丘县| 云南省| 肃宁县| 铜鼓县| 郎溪县| 府谷县| 上犹县| 新乡县| 衡阳市| 灵山县| 云安县| 安庆市| 沈丘县| 五台县| 育儿| 新乐市| 萨嘎县| 柳州市|