6

应用程序启动时,我收到以下警告消息(数十次):

Dec 08, 2012 5:10:41 PM org.springframework.beans.TypeConverterDelegate findDefaultEditor
WARNING: PropertyEditor [sun.beans.editors.EnumEditor] found through deprecated global PropertyEditorManager fallback - consider using a more isolated form of registration, e.g. on the BeanWrapper/BeanFactory!

谷歌显示这是非常常见的消息,但不幸的是没有说明它为什么会发生。我怎样才能避免这些警告?

春季版本 2.5.6。

4

2 回答 2

8

添加自定义编辑器修复警告:

public final class EnumPropertyEditor extends PropertyEditorSupport {

    public EnumPropertyEditor() {
    }

    @Override
    public String getAsText() {
       return (String) getValue();
    }

    @Override
    public void setAsText(String text) throws IllegalArgumentException {
       setValue(text);
   }
}

在配置中:

<bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
    <property name="customEditors">
        <map>
            <entry key="java.lang.Enum">
                <bean class="package.EnumPropertyEditor">
                </bean>
            </entry>
        </map>
    </property>
</bean>
于 2013-01-19T07:52:48.030 回答
3

它告诉您它正在使用已弃用的回退方法来查找枚举的属性编辑器,而不是使用在 Spring 中注册的属性编辑器,并且您应该考虑为枚举使用专用的属性编辑器并将其注册到 Spring,使用描述的机制在文档中。

如果您不这样做,您的代码将无法在 Spring 的未来版本中正常工作,因为 Spring 无法再使用这种回退机制。

也就是说,3.1.x 版本仍然有这个回退机制。

于 2012-12-08T12:07:18.943 回答