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

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

 更新時間:2023年12月15日 09:47:35   作者:搏·夢  
這篇文章主要介紹了springboot實現(xiàn)獲取當(dāng)前服務(wù)器IP及當(dā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)致啟動報錯,無法啟動項目:

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

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

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

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

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

3. 使用spring帶的ServerProperties類

經(jīng)過上面第二點說明,固然大家會選擇使用配置類的方式,畢竟@Value會導(dǎo)致項目啟動不起來,而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配置,則默認值是null

4. 使用ServletWebServerApplicationContext類(可推薦)

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

若沒有在yaml有配置server.port,不會獲取到null 而是默認值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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

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

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

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

    maven搭建java ee項目圖文教程

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

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

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

    Springboot?Filter中注入bean無效為null問題

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

    SpringBoot項目如何將Bean注入到普通類中

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

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

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

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

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

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

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

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

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

    Java 值傳遞和引用傳遞詳解及實例代碼

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

最新評論