在做spring security3的另一種配置方式,測試時,無法對自定義的securityMetadataSource進行注入想要使用的dao處理,後來調試發現注入進去時null,對於注入進來的是獲取不到的,利用構造可以解決,
解決方案如下:
1、自定義的securityMetadataSource配置部分,使用構造加載
<beans:bean id="mySecurityMetadataSource" class="app_security.MyInvocationSecurityMetadataSource">
<beans:constructor-arg><beans:ref bean="resourceDao"/></beans:constructor-arg>
</beans:bean>
<beans:bean id="resourceDao" class="com.ipi.tyr.module.resourceModule.dao.impl.ResourceDaoImpl"></beans:bean>
2、在自定義的securityMetadataSource類,
private ResourceDao resourceDao;
public MyInvocationSecurityMetadataSource(ResourceDao resourceDao) {
this.resourceDao = resourceDao;
loadResourceDefine();
}