看了ACL部分有一段时间了,给我的一个感觉就是实现起来太复杂了。如果在实际当中应用使用不该源码,直接使用是不可能的,里面的sql语句好多是不通用的,好多这能在hsql下面才可用,像JdbcMutableAclService中的。
如果要是在mysql中运行就要该成 SELECT LAST_INSERT_ID() 还有BasicLookupStrategy中那个老长的sql也是同样的问题 看了里面的代码,查询数据表的次数太多,会严重影响到性能, 对查询领域对象的结果集进行事后评审,AclEntryAfterInvocationCollectionFilteringProvider的实现方式是对符合要求的领域对象直接从结果集中删除,一直在想,如果是分页怎么办,导致每页显示的数量不能由我控制了。所以ACl只是为了增加Acegi的功能点,每什么太大的价值,如果使用,会付出很大的代价的,直接通过sql语句控制据可以了。 暂把ACL放在那,研究一下Acegi cas 部分!
private String identityQuery = "call identity()";
如果要是在mysql中运行就要该成 SELECT LAST_INSERT_ID() 还有BasicLookupStrategy中那个老长的sql也是同样的问题 看了里面的代码,查询数据表的次数太多,会严重影响到性能, 对查询领域对象的结果集进行事后评审,AclEntryAfterInvocationCollectionFilteringProvider的实现方式是对符合要求的领域对象直接从结果集中删除,一直在想,如果是分页怎么办,导致每页显示的数量不能由我控制了。所以ACl只是为了增加Acegi的功能点,每什么太大的价值,如果使用,会付出很大的代价的,直接通过sql语句控制据可以了。 暂把ACL放在那,研究一下Acegi cas 部分!