在做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();
}