spring - spring 中的自定义参数转换器
问题描述
Spring中是否有任何自定义参数转换器。例如
@RequestMapping(value="/getEmployees/{"empName"}")
public void getEmployees(@PathVariable("empName") Employee employee)
{
}
从请求中获取的路径变量是 spring 类型。基于给定的 empName,它将分配给 Employee 对象。在 JAX-RS 中,我们可以使用 ParamConvertor 和 ParamConvertorProvider 进行转换。就像在 JAX-RS 中一样,我们有任何转换器吗?
解决方案
是的,您可以在 Spring 中使用自定义参数转换器
1 创建一个实现spring Converter接口的转换器组件
@Component
public class StringToRightsModeConverter implements Converter<String, RightsMode> {
@Override
public RightsMode convert(String s) {
try{
return RightsMode.valueOf(s);
} catch (Exception e) {
return RightsMode.getByCode(s);
}
}
}
2 仅此而已。Spring 会自动将其用于 String -> RightsMode 类型转换
@GetMapping({"/periods"})
public List<Period> periods(
@RequestParam(required = false) RightsMode rightsMode) {
................................................................
}
推荐阅读
- linux - gnutls_handshake() 失败:GIT 握手失败
- firebase - Firebase:允许对不同集合进行读取或写入访问
- kubernetes - *v1.Pod 的 watch 以:太旧的资源版本结束
- python - 无法在 Visual Studio 代码中启动 jupyter notebook
- javascript - Vue.js 返回属性 <= input.value 的项目
- javascript - 难以识别 CSS 并从网页中提取正确的 CSS
- c# - 完成后才做事件
- c++ - 纪元时间转换为特定时区
- java - java spring项目中gremlin客户端集群的最佳实践是什么
- java - dart ffi - 用 ffi 调用替换所有 swift 和 java 代码是否可行