我使用Spring Boot
,我的主控制器处理所有顶级网址:
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class IndexController {
@GetMapping({"/*"})
public ResponseEntity<String> handleIndex() {
// ...
}
}
由于某些原因,我希望排除路径/exclude_path
来处理我的控制器。
这样的事情:
@GetMapping(include={"/*"}, exclude={"/exclude_path"})
你能否回答我怎么做?
答案 0 :(得分:1)
首先,/*
是一种不好的做法。如果您想要这样做,最好的选择是为您的控制器引入一个Aspect。并将其过滤掉
像这样的东西会做
@Pointcut("@annotation(org.springframework.web.bind.annotation.RequestMapping)")
public void requestMapping() {}
@Pointcut("within(blah.blah.package.controller.*)")
public void myController() {}
@Around("requestMapping() && myController()")
public Object logAround(ProceedingJoinPoint joinPoint, RequestMapping requestMapping) throws Throwable {
String url = requestMapping.value();
//check the url and based on that do
//joinPoint.proceed();
}
答案 1 :(得分:0)
除了所有请求之外,您应该删除“/ *”。只提供您想要的路径,这样您就不需要/ excludepath。