@PreFilter和@PostFilter对集合类型的参数或返回值进行过滤。

比如:

@PreFilter("filterObject.equals('lbwnb')")   //filterObject代表集合中每个元素,只要满足条件的元素才会留下
public void test(List<String> list){
    System.out.println("成功执行"+list);
}
@RequestMapping("/")
public String index(){
    List<String> list = new LinkedList<>();
    list.add("lbwnb");
    list.add("yyds");
    service.test(list);
    return "index";
}

与@PreFilter类似的@PostFilter这里就不做演示了,它用于处理返回值,使用方法是一样的。

当有多个集合时,需要使用filterTarget进行指定:

@PreFilter(value = "filterObject.equals('lbwnb')", filterTarget = "list2")
public void test(List<String> list, List<String> list2){
    System.out.println("成功执行"+list);
}