Java 可以在Spring中设置带注释的拦截器吗?
我试图保持声明性、基于约定和无XML 因此,我没有Java 可以在Spring中设置带注释的拦截器吗?,java,spring,spring-mvc,Java,Spring,Spring Mvc,我试图保持声明性、基于约定和无XML 因此,我没有web.xml,也没有上下文配置xml。不幸的是,谷歌充斥着过时的Spring示例,不可能找到现代的答案 我的问题是:是否可以在Spring中声明带有注释的拦截器?显然,可以用与控制器相同的方法来完成(控制器类用@controller及其方法进行注释,用@RequestMapping) 我找到的最好的方法就是在这里 不幸的是,它不是声明性的。使用Java配置和@configuration注释,看起来您创建了一个拦截器,并按照描述注册了它。它不像将
web.xml
,也没有上下文配置xml。不幸的是,谷歌充斥着过时的Spring
示例,不可能找到现代的答案
我的问题是:是否可以在Spring中声明带有注释的拦截器?显然,可以用与控制器相同的方法来完成(控制器类用@controller
及其方法进行注释,用@RequestMapping
)
我找到的最好的方法就是在这里
不幸的是,它不是声明性的。使用Java配置和
@configuration
注释,看起来您创建了一个拦截器,并按照描述注册了它。它不像将类注释为拦截器那样简单,但仍然可以遵守您的规定
编辑:
在java配置类中,我们需要扩展
WebMVCConfigureAdapter。要添加拦截器,我们需要覆盖
WebMVCConfigureAdapter。addInterceptors()方法。找到代码
片段
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoggingInterceptor());
registry.addInterceptor(new TransactionInterceptor()).addPathPatterns("/person/save/*");
}
我很感兴趣,你是如何在没有web.xml的情况下运行SpringMVC应用程序的?您是如何在servlet容器中注册DispatcherServlet的?我不知道:)我正在试验SpringBoot。它可以在嵌入式Tomcat下运行,也可以生成常规战争。它有很多上下文加载器,但最常见的两种方式是从Xml或基于Java的配置中加载。创建注释只是为了使配置更轻松,并使开发人员的工作更方便。所以我担心配置(基于xml或java)不能完全被注释所取代。