美文网首页
2019-08-22 实现ApplicationListene

2019-08-22 实现ApplicationListene

作者: 归去来ming | 来源:发表于2019-09-29 07:37 被阅读0次

最近在阅读项目代码时,有个疑问:某个service类没有定时器,也没有调用方,它是怎么跑起来的?后来请教了同事之后发现,关键在于这个类实现了ApplicationListener<ContextRefreshedEvent>接口,再加上@Service注解。这个类是一个事件监听器,spring启动有一步是发布事件,最终会触发监听器的onApplicationEvent方法。这不是web服务,而平时常见的都是web服务,或者mq,dubbo,都有请求来源,所以犯了思维定式的错误。

ApplicationListener

百度了一下,很多文章都是用@Component注解,其实@Service与@Component都能起作用,因为@Controller, @Service, @Repository都包含了@Component :

查看spring官网:

@Component注解

也就是说,如果你不知道要在项目的业务层采用@Service还是@Component注解。那么,@Service是一个更好的选择。

公司这个代码没有定时器,没有外部调用,是因为它启动之后,另起一个线程,在run方法中用while循环,线程sleep时间是500 ms。

相关文章

网友评论

      本文标题:2019-08-22 实现ApplicationListene

      本文链接:https://www.haomeiwen.com/subject/odtjuctx.html