繁体   English   中英

Spring @initBinder方法在控制器内部只能被调用一次

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM