【发布时间】:2018-02-07 14:50:59
【问题描述】:
也许这是一个容易被删除的问题,但以防万一。
我最近在对我的服务执行 @EventListener 注释的方法时怀疑这些方法是否应该包含在服务的接口中。
我的意思是,像这样的类:
class FooServiceImpl implements FooService {
@EventListener
public void doSomethingWithEvent(ApplicationEvent event){
// do something
}
}
doSomethingWithEvent 应该包含在FooService 中吗?
我认为不应该这样做,因为该方法不应该由任何其他实例直接调用,而是由管理事件的实例直接调用。
但是,另一方面,我的服务上会有一个不包含在接口中的公共方法,并且由于某种原因,这对我来说很糟糕(也许这只是一种习惯)。
那么,该怎么办?有没有这方面的约定?
【问题讨论】:
-
这取决于您是否认为此服务需要对这些类型的事件作出反应。
-
我会为
doSomethingWithEvent做一个自己的接口,并称之为 - 就像 -ApplicationEventAware。总而言之,我认为这主要是基于意见的主题。 -
@pvpkiran,并不是真正的重复。
@Service注释与@EventListener的含义不同。 -
@M.Prokhorov 有什么不同,Spring 处理方式相同。可能是内部不同。但是即使对于这个问题,这个问题的答案也很好
标签: java spring events coding-style