基于事件也是一种解耦的方式,这里简单写了个demo:
1.创建ApplicatonEvent的实现类
public class MyApplicationEvent extends ApplicationEvent {/*** Create a new {@code ApplicationEvent}.** @param source the object on which the event initially occurred or with*which the event is associated (never {@code null})*/public MyApplicationEvent(Object source) {super(source);}}2.创建事件发送方类
@Component@Slf4jpublic class UserListener {@Autowiredprivate ApplicationEventPublisher applicationEventPublisher;private String username;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public void register(){log.info("UserListener!!!");username = "xiaochen";//发布事件applicationEventPublisher.publishEvent(new MyApplicationEvent(this));}} 3.创建事件接收类
@Component@Slf4jpublic class PersonListener {@EventListenerpublic void test1(MyApplicationEvent myApplicationEvent){log.info("PersonListener!!!");UserListener userListener = (UserListener) myApplicationEvent.getSource();String username = userListener.getUsername();log.info(username);}}4.测试
@SpringBootApplicationpublic class AppStart {public static void main(String[] args) {ConfigurableApplicationContext context = SpringApplication.run(AppStart.class, args);new Thread(()->{for (int i = 0;i < 3;i++){try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}context.getBean(UserListener.class).register();}}).start();}} 输出结果如下:
【Spring基于事件通知的demo】
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
