spring3.x mapにenum列挙を注入する方法

1546 ワード

直接コード:
<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
}