假设我们有以下 Java 代码:
public class Maintainer {
private Map<Enum, List<Listener>> map;
public Maintainer() {
this.map = new java.util.ConcurrentHashMap<Enum, List<Listener>>();
}
public void addListener( Listener listener, Enum eventType ) {
List<Listener> listeners;
if( ( listeners = map.get( eventType ) ) == null ) {
listeners = new java.util.concurrent.CopyOnWriteArrayList<Listener>();
map.put( eventType, listeners );
}
listeners.add( listener );
}
}
这段代码片段只不过是稍微改进的侦听器模式,其中每个侦听器都在告诉它感兴趣的事件类型,并且提供的方法维护这些关系的并发映射。
最初,我希望通过我自己的注释框架调用此方法,但遇到了各种注释限制的砖墙(例如,您不能将java.lang.Enum作为注释参数,还有一组各种类加载器问题)因此决定使用Spring。
谁能告诉我如何 Spring_ify_ 这个?我想要实现的是:
1. 将维护者类定义为 Spring bean。
2. 使各种监听器都可以使用addListener方法通过XML注册到Maintainer 。Spring doc 和 Google 在示例中都非常慷慨。
有没有办法轻松实现这一目标?