diff --git a/spring-cloud-alibaba-examples/spring-cloud-bus-rocketmq-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/rocketmq/RocketMQBusApplication.java b/spring-cloud-alibaba-examples/spring-cloud-bus-rocketmq-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/rocketmq/RocketMQBusApplication.java index c4a05a8b..60299a22 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-bus-rocketmq-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/rocketmq/RocketMQBusApplication.java +++ b/spring-cloud-alibaba-examples/spring-cloud-bus-rocketmq-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/rocketmq/RocketMQBusApplication.java @@ -16,8 +16,6 @@ */ package org.springframework.cloud.alibaba.cloud.examples.rocketmq; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; @@ -30,6 +28,9 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + /** * RocketMQ Bus Spring Application * @@ -41,54 +42,61 @@ import org.springframework.web.bind.annotation.RestController; @RemoteApplicationEventScan(basePackages = "org.springframework.cloud.alibaba.cloud.examples.rocketmq") public class RocketMQBusApplication { - public static void main(String[] args) { - new SpringApplicationBuilder(RocketMQBusApplication.class) - .properties("server.port=0") // Random server port - .properties("management.endpoints.web.exposure.include=*") // exposure includes all - .properties("spring.cloud.bus.trace.enabled=true") // Enable trace - .run(args); - } + public static void main(String[] args) { + new SpringApplicationBuilder(RocketMQBusApplication.class) + .properties("server.port=0") // Random server port + .properties("management.endpoints.web.exposure.include=*") // exposure + // includes + // all + .properties("spring.cloud.bus.trace.enabled=true") // Enable trace + .run(args); + } - @Autowired - private ApplicationEventPublisher publisher; + @Autowired + private ApplicationEventPublisher publisher; - @Value("${spring.cloud.bus.id}") - private String originService; + @Value("${spring.cloud.bus.id}") + private String originService; - @Value("${server.port}") - private int localServerPort; + @Value("${server.port}") + private int localServerPort; - @Autowired - private ObjectMapper objectMapper; + @Autowired + private ObjectMapper objectMapper; - /** - * Publish the {@link UserRemoteApplicationEvent} - * - * @param name the user name - * @param destination the destination - * @return If published - */ - @GetMapping("/bus/event/publish/user") - public boolean publish(@RequestParam String name, @RequestParam(required = false) String destination) { - User user = new User(); - user.setId(System.currentTimeMillis()); - user.setName(name); - publisher.publishEvent(new UserRemoteApplicationEvent(user, originService, destination)); - return true; - } + /** + * Publish the {@link UserRemoteApplicationEvent} + * + * @param name the user name + * @param destination the destination + * @return If published + */ + @GetMapping("/bus/event/publish/user") + public boolean publish(@RequestParam String name, + @RequestParam(required = false) String destination) { + User user = new User(); + user.setId(System.currentTimeMillis()); + user.setName(name); + publisher.publishEvent( + new UserRemoteApplicationEvent(this, user, originService, destination)); + return true; + } - /** - * Listener on the {@link UserRemoteApplicationEvent} - * - * @param event {@link UserRemoteApplicationEvent} - */ - @EventListener - public void onEvent(UserRemoteApplicationEvent event) { - System.out.printf("Server [port : %d] listeners on %s\n", localServerPort, event.getUser()); - } + /** + * Listener on the {@link UserRemoteApplicationEvent} + * + * @param event {@link UserRemoteApplicationEvent} + */ + @EventListener + public void onEvent(UserRemoteApplicationEvent event) { + System.out.printf("Server [port : %d] listeners on %s\n", localServerPort, + event.getUser()); + } - @EventListener - public void onAckEvent(AckRemoteApplicationEvent event) throws JsonProcessingException { - System.out.printf("Server [port : %d] listeners on %s\n", localServerPort, objectMapper.writeValueAsString(event)); - } + @EventListener + public void onAckEvent(AckRemoteApplicationEvent event) + throws JsonProcessingException { + System.out.printf("Server [port : %d] listeners on %s\n", localServerPort, + objectMapper.writeValueAsString(event)); + } } diff --git a/spring-cloud-alibaba-examples/spring-cloud-bus-rocketmq-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/rocketmq/UserRemoteApplicationEvent.java b/spring-cloud-alibaba-examples/spring-cloud-bus-rocketmq-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/rocketmq/UserRemoteApplicationEvent.java index 919e00ea..fa404e89 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-bus-rocketmq-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/rocketmq/UserRemoteApplicationEvent.java +++ b/spring-cloud-alibaba-examples/spring-cloud-bus-rocketmq-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/rocketmq/UserRemoteApplicationEvent.java @@ -26,12 +26,22 @@ import org.springframework.cloud.bus.event.RemoteApplicationEvent; */ public class UserRemoteApplicationEvent extends RemoteApplicationEvent { - public UserRemoteApplicationEvent(User user, String originService, + private User user; + + public UserRemoteApplicationEvent() { + } + + public UserRemoteApplicationEvent(Object source, User user, String originService, String destinationService) { - super(user, originService, destinationService); + super(source, originService, destinationService); + this.user = user; + } + + public void setUser(User user) { + this.user = user; } public User getUser() { - return (User) getSource(); + return user; } }