本文主要是介绍ApplicationListener接口实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
通过之前的学习,我们了解到ApplicationListener接口在spring事件广播中能够将消息广播到需要的监听器中。那么就让我们手撸一个监听器来试试。看看效果。
@Data
public class MyApplicationEvent extends ApplicationEvent {private String age;private String name;/*** Create a new ApplicationEvent.** @param source the object on which the event initially occurred (never {@code null})*/public MyApplicationEvent(Object source,String age,String name) {super(source);this.age=age;this.name=name;}
}
@Component
public class MyApplicationListener implements ApplicationListener {/**** 监听事件* @param event*/@Overridepublic void onApplicationEvent(ApplicationEvent event) {System.out.println("myApplication....");if (event instanceof MyApplicationEvent){System.out.println("myapplicationEvent...");System.out.println(event.toString());}}
}
@RestController
@RequestMapping("/file")
public class FileController implements ApplicationContextAware {private static ApplicationContext context;@GetMapping(value = "/test")public void test(){MyApplicationEvent myApplicationEvent=new MyApplicationEvent("test","123","tjl");context.publishEvent(myApplicationEvent);}@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {this.context=applicationContext;}
}
注释:上述打印的结果中,最后两个输出是容器事件。
总结:在做广播的时候要首先明确广播事件,定义好广播事件之后再定义广播监听器。然后在广播监听器中对广播事件进行处理。在发送广播的时候用IOC容器的pushEvent方法。在注入content的时候,可以通过ApplicationContentAware接口来实现。
这篇关于ApplicationListener接口实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!