我们注意到受保护的资源和对应的权限关系是配死在applicationContext.xml中的:
有时候如果资源和权限的对应关系特别多,一个一个配并不方便。我们还是希望把这种关系放到数据库里面,然后通过SQL的方式取出来。
打断点测试的时候发现filterChainDefinitionMap里面放置的就是我们在配置文件配置的键值对:
所以如果我们要实现从数据库表中初始化资源和权限,只需要配置filterChainDefinitionMap即可:
但是我们不可能又在filterChainDefinitionMap里面配置key-value,如果这么做的话和之前的配置不就一样了吗?所以我们需要配置一个bean,这个bean实际上是一个Map,通过实例工厂的方式。
然后我们去实现这个实例工厂: