1 Star 0 Fork 156

南风不竞 / Spring-Analysis

forked from huifer / Code-Analysis 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
Spring-ResourceEditorRegistrar.md 2.77 KB
一键复制 编辑 原始数据 按行查看 历史
huifer 提交于 2020-11-09 21:43 . fix: 修正文件路径

Spring ResourceEditorRegistrar

  • 类全路径: org.springframework.beans.support.ResourceEditorRegistrar

  • 该类实现PropertyEditorRegistrar 关注方法

    	@Override
    	public void registerCustomEditors(PropertyEditorRegistry registry) {
    		ResourceEditor baseEditor = new ResourceEditor(this.resourceLoader, this.propertyResolver);
    		doRegisterEditor(registry, Resource.class, baseEditor);
    		doRegisterEditor(registry, ContextResource.class, baseEditor);
    		doRegisterEditor(registry, InputStream.class, new InputStreamEditor(baseEditor));
    		doRegisterEditor(registry, InputSource.class, new InputSourceEditor(baseEditor));
    		doRegisterEditor(registry, File.class, new FileEditor(baseEditor));
    		doRegisterEditor(registry, Path.class, new PathEditor(baseEditor));
    		doRegisterEditor(registry, Reader.class, new ReaderEditor(baseEditor));
    		doRegisterEditor(registry, URL.class, new URLEditor(baseEditor));
    
    		ClassLoader classLoader = this.resourceLoader.getClassLoader();
    		doRegisterEditor(registry, URI.class, new URIEditor(classLoader));
    		doRegisterEditor(registry, Class.class, new ClassEditor(classLoader));
    		doRegisterEditor(registry, Class[].class, new ClassArrayEditor(classLoader));
    
    		if (this.resourceLoader instanceof ResourcePatternResolver) {
    			doRegisterEditor(registry, Resource[].class,
    					new ResourceArrayPropertyEditor((ResourcePatternResolver) this.resourceLoader, this.propertyResolver));
    		}
    	}
  • doRegisterEditor 方法

private void doRegisterEditor(PropertyEditorRegistry registry, Class<?> requiredType, PropertyEditor editor) {
   if (registry instanceof PropertyEditorRegistrySupport) {
      // 属性编辑器覆盖默认的编辑器
      ((PropertyEditorRegistrySupport) registry).overrideDefaultEditor(requiredType, editor);
   }
   else {
      // 注册自定义的属性编辑器
      registry.registerCustomEditor(requiredType, editor);
   }
}
Java
1
https://gitee.com/limengcanyu/spring-analysis.git
git@gitee.com:limengcanyu/spring-analysis.git
limengcanyu
spring-analysis
Spring-Analysis
master

搜索帮助