1.思路分析
思路就是创建事件类,发布订阅模式,通过监听事件的发布,从而进行回调
2.代码实现
1.JAVA事件类
import org.springframework.context.ApplicationEvent;
public class CustomEvent extends ApplicationEvent {
private String message;
public CustomEvent(Object source, String message) {
super(source);
this.message = message;
}
public String getMessage() {
return message;
}
}
2.事件监听器(回调)
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
@Component
public class CustomEventListener {
@EventListener
public void handleCustomEvent(CustomEvent event) {
System.out.println("Received custom event - " + event.getMessage());
// 这里是处理事件的代码,你可以调用你的handler函数或进行其他操作
}
}
3.发布事件
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Service;
@Service
public class EventPublisherService {
@Autowired
private ApplicationEventPublisher applicationEventPublisher;
public void publishCustomEvent(String message) {
CustomEvent event = new CustomEvent(this, message);
applicationEventPublisher.publishEvent(event);
}
}
4.触发事件
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyController {
@Autowired
private EventPublisherService eventPublisherService;
@GetMapping("/trigger")
public String triggerEvent() {
eventPublisherService.publishCustomEvent("Hello from the controller!");
return "Event triggered";
}
}