我有一个遗留系统,其中查询参数用于使用简单的内部框架确定请求的类/方法。 E.g。
/endpoint?product=foo&action=bar&amount=1.0
/endpoint?product=foo&action=baz&amount=1.0
我想将产品的所有操作映射到一个类,这样可以大大简化管道,例如。
@Controller
@RequestMapping("/endpoint/foo/**")
public class FooController {
@AutoWire
private FooProductService s; // one of many beans that have to be wired into lots of classes
@RequestMapping("/bar")
public void bar(@PathVariable String amount, Model model) {
// implementation omitted
}
@RequestMapping("/baz")
public void baz(@PathVariable String amount, Model model) {
// implementation omitted
}
}
这是已发布的API,因此我们无法更改公共API - >网址无法更改。
我认为也许这可以使用配置,方面甚至是带有自己注释的自定义框架来完成。
答案 0 :(得分:0)
我相信你可以为product = foo& action = bar& amount = 1.0
做类似的事情@RequestMapping(value = "product={productName}&action={someaction}&amount={value}", method=RequestMethod.GET)
something(@PathVariable String productName, @PathVariable String someaction, @PathVariable String value)
if(someaction.equals("bar")) {
//do bar
}
if(someaction.equals("baz")) {
//do baz
}
}
HTH