diff --git a/labx-29/labx-29-sc-bus-consul-demo-listener-actuator/pom.xml b/labx-29/labx-29-sc-bus-consul-demo-listener-actuator/pom.xml new file mode 100644 index 00000000..88bbd31c --- /dev/null +++ b/labx-29/labx-29-sc-bus-consul-demo-listener-actuator/pom.xml @@ -0,0 +1,64 @@ + + + + labx-29 + cn.iocoder.springboot.labs + 1.0-SNAPSHOT + + 4.0.0 + + labx-29-sc-bus-consul-demo-listener-actuator + + + 1.8 + 1.8 + 2.2.4.RELEASE + Hoxton.SR1 + + + + + + + org.springframework.boot + spring-boot-starter-parent + ${spring.boot.version} + pom + import + + + org.springframework.cloud + spring-cloud-dependencies + ${spring.cloud.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-starter-web + + + + + org.springframework.cloud + spring-cloud-starter-consul-bus + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + diff --git a/labx-29/labx-29-sc-bus-consul-demo-listener-actuator/src/main/java/cn/iocoder/springcloud/labx29/listenerdemo/ListenerDemoApplication.java b/labx-29/labx-29-sc-bus-consul-demo-listener-actuator/src/main/java/cn/iocoder/springcloud/labx29/listenerdemo/ListenerDemoApplication.java new file mode 100644 index 00000000..ef24b9b8 --- /dev/null +++ b/labx-29/labx-29-sc-bus-consul-demo-listener-actuator/src/main/java/cn/iocoder/springcloud/labx29/listenerdemo/ListenerDemoApplication.java @@ -0,0 +1,15 @@ +package cn.iocoder.springcloud.labx29.listenerdemo; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.bus.jackson.RemoteApplicationEventScan; + +@SpringBootApplication +@RemoteApplicationEventScan +public class ListenerDemoApplication { + + public static void main(String[] args) { + SpringApplication.run(ListenerDemoApplication.class, args); + } + +} diff --git a/labx-29/labx-29-sc-bus-consul-demo-listener-actuator/src/main/java/cn/iocoder/springcloud/labx29/listenerdemo/event/UserRegisterEvent.java b/labx-29/labx-29-sc-bus-consul-demo-listener-actuator/src/main/java/cn/iocoder/springcloud/labx29/listenerdemo/event/UserRegisterEvent.java new file mode 100644 index 00000000..4a25297f --- /dev/null +++ b/labx-29/labx-29-sc-bus-consul-demo-listener-actuator/src/main/java/cn/iocoder/springcloud/labx29/listenerdemo/event/UserRegisterEvent.java @@ -0,0 +1,27 @@ +package cn.iocoder.springcloud.labx29.listenerdemo.event; + +import org.springframework.cloud.bus.event.RemoteApplicationEvent; + +/** + * 用户注册事件 + */ +public class UserRegisterEvent extends RemoteApplicationEvent { + + /** + * 用户名 + */ + private String username; + + public UserRegisterEvent() { // 序列化 + } + + public UserRegisterEvent(Object source, String originService, String destinationService, String username) { + super(source, originService); + this.username = username; + } + + public String getUsername() { + return username; + } + +} diff --git a/labx-29/labx-29-sc-bus-consul-demo-listener-actuator/src/main/java/cn/iocoder/springcloud/labx29/listenerdemo/listener/UserRegisterListener.java b/labx-29/labx-29-sc-bus-consul-demo-listener-actuator/src/main/java/cn/iocoder/springcloud/labx29/listenerdemo/listener/UserRegisterListener.java new file mode 100644 index 00000000..a4c52697 --- /dev/null +++ b/labx-29/labx-29-sc-bus-consul-demo-listener-actuator/src/main/java/cn/iocoder/springcloud/labx29/listenerdemo/listener/UserRegisterListener.java @@ -0,0 +1,22 @@ +package cn.iocoder.springcloud.labx29.listenerdemo.listener; + +import cn.iocoder.springcloud.labx29.listenerdemo.event.UserRegisterEvent; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.ApplicationListener; +import org.springframework.stereotype.Component; + +/** + * 用户注册事件的监听器 + */ +@Component +public class UserRegisterListener implements ApplicationListener { + + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Override + public void onApplicationEvent(UserRegisterEvent event) { + logger.info("[onApplicationEvent][监听到用户({}) 注册]", event.getUsername()); + } + +} diff --git a/labx-29/labx-29-sc-bus-consul-demo-listener-actuator/src/main/resources/application.yml b/labx-29/labx-29-sc-bus-consul-demo-listener-actuator/src/main/resources/application.yml new file mode 100644 index 00000000..16d2476e --- /dev/null +++ b/labx-29/labx-29-sc-bus-consul-demo-listener-actuator/src/main/resources/application.yml @@ -0,0 +1,19 @@ +spring: + application: + name: listener-demo + + cloud: + # Consul + consul: + host: 127.0.0.1 + port: 8500 + +server: + port: 18080 # 随机端口,方便启动多个消费者 + +management: + endpoints: + # Actuator HTTP 配置项,对应 WebEndpointProperties 配置类 + web: + exposure: + include: '*' # 需要开放的端点。默认值只打开 health 和 info 两个端点。通过设置 * ,可以开放所有端点。 diff --git a/labx-29/pom.xml b/labx-29/pom.xml index 0fb2f4d1..9a715297 100644 --- a/labx-29/pom.xml +++ b/labx-29/pom.xml @@ -14,6 +14,7 @@ labx-29-sc-bus-consul-demo-publisher labx-29-sc-bus-consul-demo-listener + labx-29-sc-bus-consul-demo-listener-actuator diff --git a/pom.xml b/pom.xml index f51d7c63..2a28e45b 100644 --- a/pom.xml +++ b/pom.xml @@ -41,7 +41,7 @@ - lab-31 + @@ -104,7 +104,7 @@ - labx-28 + labx-29