直接上代码:
<bean id="listener_map" class="java.util.concurrent.ConcurrentHashMap" scope="singleton"> <constructor-arg> <map> <entry> <key> <value type="com.xxx.event.ResHelpEventType">REJECT_INVITE</value> </key> <ref bean="rejectThxEventListenerList"/> </entry> <entry> <key> <value type="com.xxx.event.ResHelpEventType">ACCEPT_INVITE</value> </key> <ref bean="acceptThxEventListenerList"/> </entry> <entry> <key> <value type="com.xxx.event.ResHelpEventType">THANK</value> </key> <ref bean="thxEventListenerList"/> </entry> </map> </constructor-arg> </bean>
这是一个事件监听器的map配置。
有些资料显示可以直接将枚举声明成bean并用ref引用的方式,在我试来其实会报ClassNotFoundException,不知是否是版本问题,错误代码贴出来给大家看看。
资料中显示的bean方式如下:
<bean id="thxEvent" class="com.xxx.event.ResHelpEventType.THANK"/>
还是把枚举类也拿出来给大家看看吧:
public enum ResHelpEventType { THANK, ACCEPT_INVITE, REJECT_INVITE }