春季自定义参数转换器

时间:2018-10-22 06:36:33

标签: spring rest

Spring中是否有任何自定义参数转换器。例如

@RequestMapping(value="/getEmployees/{"empName"}")
public void getEmployees(@PathVariable("empName") Employee employee)
{
}

从请求获取的路径变量是spring类型,根据给定的empName将其分配给Employee对象。在JAX-RS中,我们可以使用ParamConvertor和ParamConvertorProvider进行转换。转换器?

1 个答案:

答案 0 :(得分:0)

是的,您可以在Spring中使用自定义参数转换器

1创建一个实现spring转换器接口的转换器组件

@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) {
 ................................................................
}

Spring 3 type conversion