[英]Spring @initBinder method to be called only once inside a controller
我有一个用@RestController
和@ControllerAdvice
注释的类, @RestController
具有我的请求映射的方法( @RequestMapping
)。 同样在此类中,我添加了一个方法public void initBinder(WebDataBinder dataBinder)
,该方法使用@InitBinder
注释,并负责注册一些自定义编辑器。 具体来说,是将String转换为Enum的propertyEditor
。
我注意到在控制器中每次对@RequestMapping
方法的调用时,都会调用我的initBinder方法。 由于我认为该编辑器注册仅应发生一次(控制器初始化),因此我希望仅将其设置(调用一次)。
有办法吗?
另外,您可以使用BindingInitializer的实现来注册自定义编辑器。 您必须在应用上下文文件中定义一个类为“ org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter”的bean,并通过BindingInitializer的实现来设置其“ webBindingInitializer”属性。
无论如何,WebDataBinder的范围都是针对请求的。 希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.