溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

springboot中怎么配置動態(tài)刷新

發(fā)布時間:2021-08-07 14:37:23 來源:億速云 閱讀:165 作者:Leah 欄目:編程語言

springboot中怎么配置動態(tài)刷新,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

具體做法如下:

1、pom:

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  <modelVersion>4.0.0</modelVersion>  <groupId>com.liuyx</groupId>  <artifactId>test-config-refresh</artifactId>  <version>1.0-SNAPSHOT</version>  <parent>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-parent</artifactId>    <version>1.5.4.RELEASE</version>    <relativePath/> <!-- lookup parent from repository -->  </parent>  <dependencies>    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-web</artifactId>    </dependency>    <dependency>      <groupId>org.springframework.cloud</groupId>      <artifactId>spring-cloud-starter-config</artifactId>    </dependency>    <!--監(jiān)控+refresh配置-->    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-actuator</artifactId>    </dependency>  </dependencies>  <dependencyManagement>    <dependencies>      <dependency>        <groupId>org.springframework.cloud</groupId>        <artifactId>spring-cloud-dependencies</artifactId>        <version>Dalston.SR1</version>        <type>pom</type>        <scope>import</scope>      </dependency>    </dependencies>  </dependencyManagement></project>

單獨(dú)引入 spring-boot-starter-actuator或者spring-cloud-starter-config(spring cloud config的客戶端) 是不會暴露/refresh端點(diǎn)的,兩者同時引入之后才能暴露/refresh端點(diǎn)。

2、一般使用spring-cloud-starter-config的文章都會讓你在bootstrap里加上配置中心服務(wù)端的地址,這里我們要脫離配置中心服務(wù)端使用,所以這些配置完全不需要。

3、對需要刷新的屬性使用@Value注解,同時將類使用@RefreshScope注解進(jìn)行標(biāo)記,示例如下:

package com.liuyx.test;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.context.config.annotation.RefreshScope;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@SpringBootApplication@RestController@RefreshScopepublic class Main {  public static void main(String[] args) {    SpringApplication.run(Main.class);  }  private static int port;  @Value("${server.port}")  public void setPort(int port){    this.port=port;  }  @RequestMapping("/port")  public int port(){    return port;  }}

這里我的變量是一個static變量,所以只能在非static的set方法上加@Value注解,而不是變量定義行的上方。如果不是靜態(tài)變量則可以直接寫作:

@Value("${server.port}")  private int port;

4、application.properties配置

server.port=80local.test=hello1management.security.enabled=false

5、測試

1、啟動項(xiàng)目,訪問 http://localhost/port 顯示 80

2、修改classpath(注意是classpath,即你編譯后的class文件所處的目錄)下的application.properties將server.port改為801

3、發(fā)送空post(注意是post)請求到 http://localhost:80/refresh

4、再次訪問 http://localhost/port 顯示 801 測試成功

關(guān)于springboot中怎么配置動態(tài)刷新問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI