是否可以在Spring中设置带有注释的拦截器?

时间:2015-12-25 11:48:21

标签: java spring spring-mvc

我试图保持声明性,基于约定和无XML。

所以,我没有web.xml,而且我没有上下文配置XML。不幸的是,谷歌被老式的Spring例子垃圾邮件发送,并且无法找到现代答案。

我的问题是:是否可以在Spring中使用注释声明拦截器?显然,有可能采用与控制器相同的方式(控制器类使用@Controller及其方法注释 - 使用@RequestMapping)。

我找到的最佳方式是https://stackoverflow.com/a/16706896/258483

不幸的是,它不是声明性的。

1 个答案:

答案 0 :(得分:1)

使用Java配置和public function findAllDispatchedEvents($limit) { $transportstatusAlias = "ts"; $transporteventtypeAlias = "tet"; $transportstatustypeAlias = "tst"; $crewAlias = "c"; $qb = $this->createQueryBuilder($this->getAlias()); $qb->leftJoin($this->getAlias() . '.crew', $crewAlias) ->leftJoin($this->getAlias() . '.transporteventtype', $transporteventtypeAlias) ->leftJoin($this->getAlias() . '.transportstatuses', $transportstatusAlias) ->leftJoin($transportstatusAlias . '.transportstatustype', $transportstatustypeAlias) ->where($this->getAlias() . ".transporteventtype <> 3") ->andWhere($crewAlias . ".crewid IS NOT NULL") ->andWhere($transportstatustypeAlias . ".tstypeid NOT IN (10, 15, 17)") ->orderBy($this->getAlias() . ".actualstart", "DESC") ->setMaxResults($limit); return $qb->getQuery()->getResult(); } 注释,您看起来像创建一个拦截器并按照here所述注册它。它并不像将一个类注释为拦截器那么简单,但仍然可以遵守你的规定。

编辑:

  

在java配置类中,我们需要扩展   WebMvcConfigurerAdapter。要添加我们的拦截器,我们覆盖   WebMvcConfigurerAdapter。 addInterceptors()方法。找到代码   片段。

@Configuration