--- import org.springframework.context.ApplicationEvent; import java.time.Clock; public class ApplicationEventV1 extends ApplicationEvent { public ApplicationEventV1(Object source) { super(source); System.out.println("ApplicationEventV1 created"); } }
--- import org.springframework.context.ApplicationListener; import org.springframework.stereotype.Component; import java.util.Arrays; @Component public class ApplicationEventListener implements ApplicationListener<ApplicationEventV1> { @Override public void onApplicationEvent(ApplicationEventV1 applicationEventV1) { int [] source=(int []) applicationEventV1.getSource(); System.out.println( "myevent sourcr= "+ Arrays.toString(source)); } }
---
public static void main(String[] args) { ConfigurableApplicationContext con= SpringApplication.run(DocApp.class, args); int[] arr= {1,1,2}; con.publishEvent(new ApplicationEventV1(arr)); }
public class MyEvent extends ApplicationEvent {
private String message;
public MyEvent(Object source, String message) {
super(source);
this.message = message;
}
public String getMessage() {
return message;
}
}
@Component
public class MyEventListener implements ApplicationListener<MyEvent> {
@Override
public void onApplicationEvent(MyEvent event) {
System.out.println("接收到事件:" + event.getMessage());
}
}
@RestController
public class MyController {
@Autowired
private ApplicationEventPublisher publisher;
@GetMapping("/event")
public String event() {
publisher.publishEvent(new MyEvent(this, "测试事件"));
return "触发事件成功";
}
}