TestEvent.java
public class TestEvent extends ApplicationEvent {
private Object message;
public TestEvent(Object message) {
super(message);
this.message = message;
}
public Object getMessage() {
return message;
}
public void setMessage(Object message) {
this.message = message;
}
}
服务端:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
@Component
public class server {
@Autowired
private ApplicationContext applicationContext;
public void publish(Object message) {
applicationContext.publishEvent(new TestEvent(message));
}
}
客户端:
import org.springframework.context.event.EventListener;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.stereotype.Component;
@EnableAsync
@Component
public class Client {
@Async
@EventListener
public void listener(TestEvent event) throws Exception{
System.out.println("监听到数据:"+event.getMessage().toString());
}
}
测试:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class Controller {
@Autowired
private server server;
@RequestMapping("test")
@ResponseBody
public String test(){
for (int i = 0; i < 100; i++) {
User user = new User();
user.setAge(i+1);
server.publish(user);
}
return "成功";
}
}