java - 启动时决定的 URL 的 RequestMapping
问题描述
我有一个案例,或者我想要一个特定的控制器来处理由另一个类中的字段决定的请求模式,它类似于来自资源属性的模式,但不是使用 ${propertyName} 而是方法的返回类型:
@Controller
public class SomeController {
private final urlDecider;
@RequestMapping(urlDecider.getPatterns())
public String handle(HttpServletREquest request) {}
}
HandlerAdapter
似乎与我想要的相似,但问题是支持方法参数只有处理程序作为参数,而不是 url。
解决方案
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");
}
}
推荐阅读
- vb.net - 将数据从数据库和文本文件导入到 datagridview
- augmented-reality - 使用 ARKit 和 CoreML 从远距离检测物体
- android - 如何防止textview断词?
- go - 在 RSA 加密中为每次生成不同的 IV
- angular - 发布 json 数据 onclick 按钮 Angular
- grpc - 有没有办法进行 grpc 双向流应用程序负载测试以将 100req/sec 发送到服务器
- python - 具有 PredefinedSplit 评分的 Sklearn GridSearch 与独立分类器不匹配
- python-3.x - 为什么 DateTime 字段将时间保存到数据库中,而数据到 HTML(Django python 模型)时会减少 1 个值
- webrtc - 任何人在 apprtc 的 config collinder 中成功
- sql - 从存储过程中的混合字符串/整数列中选择最大值?