我正在寻找Spring控制器定义的帮助。我试图谷歌几次,但没有找到直接的解释如何实现我的目标。将请求转换为泛型类
我想定义通用控制器:
public abstract class AbstractController<E extends AbstractEntity,
P extends IRequestParams> {
@RequestMapping(method = GET)
public @ResponseBody
abstract List<E> list(@RequestParam P params);
}
后
我将宣布控制器,如:
public class CatController
extends AbstractController<Cat, ICatSearchParams> {
@RequestMapping(method = GET)
public @ResponseBody
List<Cat> list(@RequestParam ICatSearchParams params) {
// do something and return list of results
}
}
我服务,转变成@RequestParam Map<String, String[]> params
在IRequestParams
一个通用的方法。我能够通过Spring来解析泛型类型。
但我不知道如何插入到Spring自动将请求参数转换为我的params接口并在方法调用中使用它。我希望这种转换在配置后对开发者来说是透明的。
非常感谢您的帮助!
我不确定完整的构造是否会在最后工作,因为我不知道Spring的'Converter'或'WebArgrumentResolver'是否可以正确解析泛型类型。 – Ralph