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

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

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

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

使用InetAddress類(lèi)即可,直接看例子:

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

獲取啟動(dòng)使用的端口號(hào)

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

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

server:
  port: 8085

測(cè)試代碼:

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

@RestController
public class TestController {

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

	// 依賴(lài)配置
    @Autowired
    private PortConfig portConfig;

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

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

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

把@Value注釋?zhuān)瑔?dòng)正常,但是**@ConfigurationProperties獲取到的值是0**

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

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

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

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

3. 使用spring帶的ServerProperties類(lèi)

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

如下測(cè)試代碼:

@RestController
public class TestController {

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

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

4. 使用ServletWebServerApplicationContext類(lèi)(可推薦)

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

若沒(méi)有在yaml有配置server.port,不會(huì)獲取到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é)

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

相關(guān)文章

  • SpringBoot實(shí)現(xiàn)接口防刷的五種方案

    SpringBoot實(shí)現(xiàn)接口防刷的五種方案

    接口防刷是保障系統(tǒng)安全與穩(wěn)定性的重要措施,惡意的高頻請(qǐng)求不僅會(huì)消耗服務(wù)器資源,還可能導(dǎo)致數(shù)據(jù)異常,甚至系統(tǒng)癱瘓,本文將介紹在SpringBoot框架下實(shí)現(xiàn)接口防刷的5種技術(shù)方案,需要的朋友可以參考下
    2025-04-04
  • maven搭建java ee項(xiàng)目圖文教程

    maven搭建java ee項(xiàng)目圖文教程

    這篇文章主要為大家詳細(xì)介紹了maven搭建java ee項(xiàng)目圖文教程,感興趣的小伙伴們可以參考一下
    2016-04-04
  • 如何用struts調(diào)用支付寶接口

    如何用struts調(diào)用支付寶接口

    以下為大家介紹如何用struts調(diào)用支付寶接口的例子。
    2013-04-04
  • Springboot?Filter中注入bean無(wú)效為null問(wèn)題

    Springboot?Filter中注入bean無(wú)效為null問(wèn)題

    這篇文章主要介紹了Springboot?Filter中注入bean無(wú)效為null問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • SpringBoot項(xiàng)目如何將Bean注入到普通類(lèi)中

    SpringBoot項(xiàng)目如何將Bean注入到普通類(lèi)中

    這篇文章主要介紹了SpringBoot項(xiàng)目如何將Bean注入到普通類(lèi)中,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java OpenCV圖像處理之圖形與文字繪制

    Java OpenCV圖像處理之圖形與文字繪制

    這篇文章主要為大家介紹了如何利益Java OpenCV實(shí)現(xiàn)在圖像上繪制文字與形狀,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起動(dòng)手試一試
    2022-02-02
  • idea中l(wèi)ombok啟用的方法示例

    idea中l(wèi)ombok啟用的方法示例

    這篇文章主要介紹了idea中l(wèi)ombok啟用的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 詳解jvm對(duì)象的創(chuàng)建和分配

    詳解jvm對(duì)象的創(chuàng)建和分配

    這篇文章主要介紹了jvm對(duì)象的創(chuàng)建和分配的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-03-03
  • Java中如何比較兩個(gè)數(shù)組中元素是否相同

    Java中如何比較兩個(gè)數(shù)組中元素是否相同

    比較兩個(gè)數(shù)組中的元素是否相同,在項(xiàng)目中經(jīng)常會(huì)使用到,下面與大家分享個(gè)最簡(jiǎn)單的方法
    2014-06-06
  • Java 值傳遞和引用傳遞詳解及實(shí)例代碼

    Java 值傳遞和引用傳遞詳解及實(shí)例代碼

    這篇文章主要介紹了 Java 值傳遞和引用傳遞詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-03-03

最新評(píng)論