From b610456eebd383f91bdcd9e6e12e7a625c1ec87d Mon Sep 17 00:00:00 2001 From: dingzhaojun Date: Fri, 2 Feb 2024 10:06:05 +0800 Subject: [PATCH] Y9ConsulAutoServiceRegistrationListener --- .../net/risesoft/demo/config/Y9Config.java | 18 +++++++++++++ ...ConsulAutoServiceRegistrationListener.java | 27 +++++++++++++++++++ src/main/resources/application.yml | 2 +- 3 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 src/main/java/net/risesoft/demo/config/Y9Config.java create mode 100644 src/main/java/org/springframework/cloud/client/serviceregistry/Y9ConsulAutoServiceRegistrationListener.java diff --git a/src/main/java/net/risesoft/demo/config/Y9Config.java b/src/main/java/net/risesoft/demo/config/Y9Config.java new file mode 100644 index 0000000..363446d --- /dev/null +++ b/src/main/java/net/risesoft/demo/config/Y9Config.java @@ -0,0 +1,18 @@ +package net.risesoft.demo.config; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.cloud.client.serviceregistry.Y9ConsulAutoServiceRegistrationListener; +import org.springframework.cloud.consul.serviceregistry.ConsulAutoServiceRegistrationListener; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration(proxyBeanMethods = true) +public class Y9Config { + + @Bean + @ConditionalOnMissingBean(ConsulAutoServiceRegistrationListener.class) + public Y9ConsulAutoServiceRegistrationListener y9ConsulAutoServiceRegistrationListener() { + return new Y9ConsulAutoServiceRegistrationListener(); + } + +} diff --git a/src/main/java/org/springframework/cloud/client/serviceregistry/Y9ConsulAutoServiceRegistrationListener.java b/src/main/java/org/springframework/cloud/client/serviceregistry/Y9ConsulAutoServiceRegistrationListener.java new file mode 100644 index 0000000..edbe9d9 --- /dev/null +++ b/src/main/java/org/springframework/cloud/client/serviceregistry/Y9ConsulAutoServiceRegistrationListener.java @@ -0,0 +1,27 @@ +package org.springframework.cloud.client.serviceregistry; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.web.ServerProperties; +import org.springframework.boot.context.event.ApplicationReadyEvent; +import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties; +import org.springframework.cloud.consul.serviceregistry.ConsulAutoServiceRegistration; +import org.springframework.context.ApplicationListener; + +public class Y9ConsulAutoServiceRegistrationListener implements ApplicationListener { + @Autowired + private ConsulAutoServiceRegistration consulAutoServiceRegistration; + + @Autowired + private ConsulDiscoveryProperties consulProperties; + + @Autowired + private ServerProperties serverProperties; + + @Override + public void onApplicationEvent(ApplicationReadyEvent event) { + // 参考 ConsulAutoServiceRegistrationListener + consulAutoServiceRegistration.getPort().compareAndSet(0, serverProperties.getPort()); + consulAutoServiceRegistration.start(); + } + +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 98b2237..3e197a1 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -7,7 +7,7 @@ management: exposure: include: '*' server: - port: 8081 + port: 9000 servlet: context-path: /demo01-client encoding: