diff --git a/service/cloud-demo1/src/main/java/cn/bunny/config/CloudConfiguration.java b/service/cloud-demo1/src/main/java/cn/bunny/config/CloudConfiguration.java index 2b29232..fb54469 100644 --- a/service/cloud-demo1/src/main/java/cn/bunny/config/CloudConfiguration.java +++ b/service/cloud-demo1/src/main/java/cn/bunny/config/CloudConfiguration.java @@ -1,11 +1,18 @@ package cn.bunny.config; +import com.alibaba.cloud.nacos.NacosConfigManager; +import com.alibaba.nacos.api.config.ConfigService; +import com.alibaba.nacos.api.config.listener.Listener; import feign.Logger; +import org.springframework.boot.ApplicationRunner; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.client.RestTemplate; +import java.util.concurrent.Executor; +import java.util.concurrent.Executors; + @Configuration public class CloudConfiguration { @@ -22,4 +29,26 @@ public class CloudConfiguration { public Logger.Level feignLoggerLevel() { return Logger.Level.FULL; } + + /** + * 当配置文件更新时的操作 + */ + @Bean + public ApplicationRunner applicationRunner(NacosConfigManager nacosConfigManager) { + return args -> { + ConfigService configService = nacosConfigManager.getConfigService(); + configService.addListener("service-order.yml", "DEFAULT_GROUP", new Listener() { + @Override + public Executor getExecutor() { + return Executors.newFixedThreadPool(4); + } + + @Override + public void receiveConfigInfo(String s) { + System.out.println("变化的信息:" + s); + System.out.println("====================发送邮件。。。===================="); + } + }); + }; + } } diff --git a/service/cloud-demo1/src/main/java/cn/bunny/controller/PropertiesController.java b/service/cloud-demo1/src/main/java/cn/bunny/controller/PropertiesController.java new file mode 100644 index 0000000..56d4b3b --- /dev/null +++ b/service/cloud-demo1/src/main/java/cn/bunny/controller/PropertiesController.java @@ -0,0 +1,24 @@ +package cn.bunny.controller; + +import cn.bunny.properties.OrderProperties; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/api") +@Tag(name = "获取配置属性名称", description = "获取配置属性名称") +public class PropertiesController { + + @Autowired + private OrderProperties orderProperties; + + @GetMapping("config") + @Operation(summary = "获取云端配置属性", description = "获取云端配置属性") + public String getConfig() { + return "timeout:" + orderProperties.getTimeout() + ";autoConfirm:" + orderProperties.getConfirm() + ";dbUrl:" + orderProperties.getDbUrl(); + } +} diff --git a/service/cloud-demo1/src/main/java/cn/bunny/intercept/TokenRequestInterceptor.java b/service/cloud-demo1/src/main/java/cn/bunny/intercept/TokenRequestInterceptor.java new file mode 100644 index 0000000..1ed0876 --- /dev/null +++ b/service/cloud-demo1/src/main/java/cn/bunny/intercept/TokenRequestInterceptor.java @@ -0,0 +1,21 @@ +package cn.bunny.intercept; + +import feign.RequestInterceptor; +import feign.RequestTemplate; +import org.springframework.stereotype.Component; + +import java.util.UUID; + +@Component +public class TokenRequestInterceptor implements RequestInterceptor { + /** + * 请求拦截器 + * + * @param requestTemplate 请求拦截器 + */ + @Override + public void apply(RequestTemplate requestTemplate) { + System.out.println("===============请求拦截器==============="); + requestTemplate.header("X-Token", UUID.randomUUID().toString()); + } +} diff --git a/service/cloud-demo1/src/main/java/cn/bunny/properties/OrderProperties.java b/service/cloud-demo1/src/main/java/cn/bunny/properties/OrderProperties.java new file mode 100644 index 0000000..8443006 --- /dev/null +++ b/service/cloud-demo1/src/main/java/cn/bunny/properties/OrderProperties.java @@ -0,0 +1,16 @@ +package cn.bunny.properties; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Component +@ConfigurationProperties(prefix = "order") +@Data +public class OrderProperties { + String timeout; + + String confirm; + + String dbUrl; +} diff --git a/service/cloud-demo1/src/main/resources/application.yml b/service/cloud-demo1/src/main/resources/application.yml index b14bd37..c0de666 100644 --- a/service/cloud-demo1/src/main/resources/application.yml +++ b/service/cloud-demo1/src/main/resources/application.yml @@ -6,6 +6,9 @@ spring: profiles: active: dev cloud: + nacos: + config: + namespace: ${spring.profiles.active:public} # 后面是默认 namespace openfeign: client: config: @@ -25,5 +28,3 @@ spring: # 压缩响应请求 response: enabled: true -# main: -# allow-bean-definition-overriding: true \ No newline at end of file