gpt4 book ai didi

SpringCloud的@RefreshScope 注解你了解吗

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 30 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章SpringCloud的@RefreshScope 注解你了解吗由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

spring-boot-starter-actuator提供服务健康检查和暴露内置的url接口.

spring-cloud-starter-config提供动态刷新的一些支持和注解.

  。

pom.xml

<?xml version="1.0" encoding="UTF-8"?><project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">  <modelVersion>4.0.0</modelVersion>  <parent>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-parent</artifactId>      <version>2.4.6</version>      <relativePath/> <!-- lookup parent from repository -->  </parent>  <groupId>com.xiaobu</groupId>  <artifactId>demo-for-mybatis-plus</artifactId>  <version>0.0.1-SNAPSHOT</version>  <name>demo-for-mybatis-plus</name>  <description>demo-for-mybatis-plus</description>  <properties>      <java.version>1.8</java.version>      <spring-cloud.version>2020.0.3</spring-cloud.version>  </properties>  <dependencies>      <!--spring boot-->      <dependency>          <groupId>org.springframework.boot</groupId>          <artifactId>spring-boot-starter-web</artifactId>      </dependency>      <dependency>          <groupId>org.springframework.boot</groupId>          <artifactId>spring-boot-starter-test</artifactId>          <scope>test</scope>          <exclusions>              <exclusion>                  <artifactId>asm</artifactId>                  <groupId>org.ow2.asm</groupId>              </exclusion>          </exclusions>      </dependency>      <dependency>          <groupId>com.baomidou</groupId>          <artifactId>mybatis-plus-boot-starter</artifactId>          <version>3.4.2</version>      </dependency>      <!-- lomback -->      <dependency>          <groupId>org.projectlombok</groupId>          <artifactId>lombok</artifactId>          <version>1.16.10</version>      </dependency>      <dependency>          <groupId>cn.hutool</groupId>          <artifactId>hutool-all</artifactId>          <version>5.3.2</version>      </dependency>      <!-- 引入Swagger2依赖 -->      <dependency>          <groupId>io.springfox</groupId>          <artifactId>springfox-swagger2</artifactId>          <version>2.9.2</version>          <exclusions>              <exclusion>                  <artifactId>guava</artifactId>                  <groupId>com.google.guava</groupId>              </exclusion>          </exclusions>      </dependency>      <dependency>          <groupId>io.springfox</groupId>          <artifactId>springfox-swagger-ui</artifactId>          <version>2.9.2</version>      </dependency>      <!-- https://mvnrepository.com/artifact/com.google.guava/guava -->      <dependency>          <groupId>com.google.guava</groupId>          <artifactId>guava</artifactId>          <version>29.0-jre</version>      </dependency>      <dependency>          <groupId>com.alibaba</groupId>          <artifactId>easyexcel</artifactId>          <version>2.0.2</version>      </dependency>      <dependency>          <groupId>junit</groupId>          <artifactId>junit</artifactId>      </dependency>      <dependency>          <groupId>com.xuxueli</groupId>          <artifactId>xxl-job-core</artifactId>          <version>2.3.0</version>      </dependency>      <dependency>          <groupId>mysql</groupId>          <artifactId>mysql-connector-java</artifactId>      </dependency>      <!--   spring-cloud config-->      <dependency>          <groupId>org.springframework.cloud</groupId>          <artifactId>spring-cloud-starter-config</artifactId>      </dependency>      <dependency>          <groupId>org.springframework.boot</groupId>          <artifactId>spring-boot-starter-actuator</artifactId>      </dependency>      <!--        springcloud 高版本需要引入 spring-cloud-starter-bootstrap 否则刷新不起效-->      <dependency>          <groupId>org.springframework.cloud</groupId>          <artifactId>spring-cloud-starter-bootstrap</artifactId>      </dependency>  </dependencies>  <dependencyManagement>      <dependencies>          <dependency>              <groupId>org.springframework.cloud</groupId>              <artifactId>spring-cloud-dependencies</artifactId>              <version>${spring-cloud.version}</version>              <type>pom</type>              <scope>import</scope>          </dependency>      </dependencies>  </dependencyManagement>  <build>      <resources>          <resource>              <directory>src/main/resources</directory>          </resource>          <resource>              <directory>src/main/java</directory>              <includes>                  <include>**/*.xml</include>              </includes>              <filtering>true</filtering>          </resource>      </resources>      <finalName>App</finalName>      <plugins>          <plugin>              <groupId>org.springframework.boot</groupId>              <artifactId>spring-boot-maven-plugin</artifactId>              <version>2.4.5</version>          </plugin>      </plugins>  </build></project>

  。

properties

########## Mybatis 自身配置 ##########logging.level.com.xiaobu=debugmybatis-plus.type-aliases-package=com.xiaobu.entitymybatis-plus.mapper-locations=classpath:com/xiaobu/mapper/xml/*.xml# 控制台打印sql 带参数 无法写入文件#mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl# 将sql 写入文件 带参数mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.slf4j.Slf4jImpl#集成mysql数据库的配置spring.datasource.driverClassName=com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/master0?useSSL=false&useUnicode=true&characterEncoding=utf-8&autoReconnect=true&serverTimezone=Asia/Shanghaispring.datasource.username=rootspring.datasource.password=root#测试动态刷新配置order.pay-timeout-seconds=9999order.create-frequency-seconds=600#暴露内置的刷新配置文件url,这个必须写,否则无法刷新配置文件management.endpoints.web.exposure.include=refresh#management.endpoints.web.exposure.include=env,refresh#management.endpoints.web.exposure.include=env,refresh

  。

启动类

package com.xiaobu;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.context.properties.ConfigurationPropertiesScan;/*** @author 小布*/@SpringBootApplication@ConfigurationPropertiesScanpublic class DemoForMybatisPlusApplication {  public static void main(String[] args) {      SpringApplication.run(DemoForMybatisPlusApplication.class, args);  }}

  。

配置类

package com.xiaobu.config;import lombok.Data;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.cloud.context.config.annotation.RefreshScope;import org.springframework.stereotype.Component;/*** @author 小布*/@Component@ConfigurationProperties(prefix = "order")@RefreshScope@Datapublic class OrderProperties {  /**   * 订单支付超时时长,单位:秒。   */  private Integer payTimeoutSeconds;  /**   * 订单创建频率,单位:秒   */  private Integer createFrequencySeconds;}

  。

controller

package com.xiaobu.controller;import com.xiaobu.config.OrderProperties;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.cloud.context.config.annotation.RefreshScope;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;/*** The type Refresh controller.** @author 小布* @version 1.0.0* @className RefreshController.java* @createTime 2021年09月06日 15:38:00*/@RestController@RequestMapping("refresh")@RefreshScopepublic class RefreshController {  @Autowired  private OrderProperties orderProperties;  @Value(value = "${order.pay-timeout-seconds}")  private Integer payTimeoutSeconds;  /**   * Test string.   *   * @return the string   */  @GetMapping("test")  public String test() {      return "payTimeoutSeconds:" + payTimeoutSeconds;  }  @GetMapping("test01")  public String test01() {      return orderProperties.toString();  }}

  。

打包

执行 。

mvn clean package -Dmaven.test.skip=true

cmd启动jar 并指定外部配置文件 。

java -jar App.jar  --spring.config.location=D:/application.properties

访问:http://localhost:8080/refresh/test 。

SpringCloud的@RefreshScope 注解你了解吗

修改配置文件内容

SpringCloud的@RefreshScope 注解你了解吗

执行 POST http://localhost:8080/actuator/refresh 。

SpringCloud的@RefreshScope 注解你了解吗

再次访问:http://localhost:8080/refresh/test 。

SpringCloud的@RefreshScope 注解你了解吗

访问:http://localhost:8080/refresh/test01 。

SpringCloud的@RefreshScope 注解你了解吗

  。

springcloud对应的springboot版本

SpringCloud的@RefreshScope 注解你了解吗

SpringCloud的@RefreshScope 注解你了解吗

  。

参考:

springcloud对应的springboot版本 。

Spring boot 应用实现动态刷新配置 。

Spring Boot 指定外部启动配置文件 。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我的更多内容! 。

原文链接:https://blog.csdn.net/tanhongwei1994/article/details/120147010 。

最后此篇关于SpringCloud的@RefreshScope 注解你了解吗的文章就讲到这里了,如果你想了解更多关于SpringCloud的@RefreshScope 注解你了解吗的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com