我试图保持声明性,基于约定和无XML。
所以,我没有web.xml
,而且我没有上下文配置XML。不幸的是,谷歌被老式的Spring
例子垃圾邮件发送,并且无法找到现代答案。
我的问题是:是否可以在Spring中使用注释声明拦截器?显然,有可能采用与控制器相同的方式(控制器类使用@Controller
及其方法注释 - 使用@RequestMapping
)。
我找到的最佳方式是https://stackoverflow.com/a/16706896/258483
不幸的是,它不是声明性的。
答案 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