直接上代码:
<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
}