2 回答
TA贡献1799条经验 获得超8个赞
我有一个案例,或者我想要一个特定的控制器来处理由另一个类中的字段决定的请求模式,它类似于来自资源属性的模式,但不是使用 ${propertyName} 而是方法的返回类型:
@Controller
public class SomeController {
private final urlDecider;
@RequestMapping(urlDecider.getPatterns())
public String handle(HttpServletREquest request) {}
}
HandlerAdapter 似乎与我想要的类似,但问题是支持方法参数只有处理程序作为参数,而不是 url。
TA贡献1898条经验 获得超8个赞
SpEL 可用于做到这一点。以下是在 Spring Boot 2 / Spring 5.0.9 上测试的。此示例调用同一 bean 上的方法以获取端点名称,但您可以将 SpEL 表达式中的 bean 和方法名称替换为适合您的应用程序的任何名称。
@Slf4j
@RestController("testBean")
public class TestBean {
public String endpoint() {
return "/test";
}
@RequestMapping("#{testBean.endpoint()}")
public void doit() {
log.info("Hello World");
}
}
添加回答
举报