我的Java Spring应用程序使用了ACL,它有一个服务方法来检索对应于给定用户的所有对象。
@Override
@PostFilter("hasPermission(filterObject, 'READ') or hasPermission(filterObject, 'ADMINISTRATION')")
public List<SomeClass> findAll() {
return SomeClassRepository.findAll();
}
不幸的是,在数据库中有很多对象的情况下,这个方法需要太多的时间来完成(超过1秒)。可能是因为它首先要从数据库中获取所有的对象,然后在内存中一个一个地过滤它们。我怎样才能在不失去Spring ACL的好处的情况下优化这个方法?
StackOverflow:Java Spring Security @PostFilter performance - Stack Overflow