我有一个用@RestController
和@ControllerAdvice
注释的类,它有我的请求映射方法(@RequestMapping
)。同样在这个类中,我添加了一个方法public void initBinder(WebDataBinder dataBinder)
,该方法用@InitBinder
注释并负责注册一些自定义编辑器。
具体来说,它是一个propertyEditor
,它将String转换为Enum。
我注意到在我的控制器中每次调用@RequestMapping
方法时,都会调用我的initBinder方法。因为在我看来这个编辑器注册只应该发生一次(控制器的初始化),我希望它只被设置(调用)一次。
有办法吗?
答案 0 :(得分:0)
或者,您可以使用BindingInitializer的实现来注册自定义编辑器。您必须在应用程序上下文文件中定义类“org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter”的bean,并使用您的BindingInitializer实现设置其“webBindingInitializer”属性。
在任何情况下,WebDataBinder的范围都是针对请求的。希望这会有所帮助。