我有SpringBootApplication
:
@ServletComponentScan
@SpringBootApplication
public class ExampleApplication extends SpringBootServletInitializer {
属性文件包含:
server.contextPath=/example
并过滤:
@WebFilter(urlPatterns = { "/example/*" })
public class AuthorizationFilter implements Filter {
当我执行REST方法GET /example/test
时:
@RestController
public class ExampleController {
@GetMapping("/test")
public String getTest(){
WebFilter
没有抓住它。
但如果我改为:
@WebFilter(urlPatterns = { "/*" })
public class AuthorizationFilter implements Filter {
WebFilter捕获所有请求。
如果我添加@Component
:
@Component
@WebFilter(urlPatterns = { "/example/*" })
public class AuthorizationFilter implements Filter {
在启动期间,我得到:
st-startStop-38] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'authorizationFilter' to: [/*]
为什么会这样?如何按特定(上下文)路径过滤?