实现
pom
OrderObservable
@Data
public class OrderObservable extends ApplicationEvent {
/**
* 设置抽象主题内容
* @param source
*/
private String message;
public OrderObservable(Object source,String message) {
super(source);
this.message = message;
}
@Override
public Object getSource() {
return super.getSource();
}
}
EmailListener
/**
* @author administrator
*/
@Slf4j
@Component
public class EmailListener implements ApplicationListener<OrderObservable> {
@Override
@Async
public void onApplicationEvent(OrderObservable orderObservable) {
log.info(Thread.currentThread() + "用户下单成功!手机收到邮件!内容为{}", orderObservable.getMessage());
}
}
SmsListener
/**
* @author administrator
*/
@Slf4j
@Component
public class SmsListener implements ApplicationListener<OrderObservable> {
@Override
@Async
public void onApplicationEvent(OrderObservable orderObservable) {
log.info(Thread.currentThread() + "用户下单成功!手机收到短信!内容为{}", orderObservable.getMessage());
}
}
ObserverController
@RestController
public class ObserverController {
@Autowired
private ApplicationContext applicationContext;
@GetMapping("test")
public String test() {
OrderObservable order = new OrderObservable(this, "用户下单成功");
applicationContext.publishEvent(order);
return "success";
}
}
ObserverApp
@SpringBootApplication
@EnableAsync
public class ObserverApp {
public static void main(String[] args) {
SpringApplication.run(ObserverApp.class, args);
}
}
测试 注意项目端口
http://localhost:8088/test