spring的Convert机制
spring.core包内有Converter接口,方法是T convert(S source);从一个类型转为内容一个类型的实际转化器;converters可能非常多,需要一个注册器来集中管理使用,ConverterRegistry接口担当此任务.ConversionService这个概念将converter的这层概念对上层屏蔽,以服务接口形式,是convert工作更好使用。GenericConversionServcie既是ConversionService也是ConverterRegistry,就有效的整合出了实际可产生作用的服务实现;
另外:GenericConversionSerivce支持GenericConverter,这个GenericConverter 从Set<ConvertiblePair> getConvertibleTypes();方法可以看出,可以支持多组soureType-->targetType的能力,但是作者自己也一般不要用,直接用简单的Converter就行了(1:1类型转化)。而且spring内部的ObjectToCollectionConverter,ArrayToArrayConverter,都是Generic的,但ConvertiblePairSet长度都是1(即1对1)
spring.beans包内有一个TypeConverter用来,对jdk的propertEditor的setAsText的场景的spring抽象;
PropertyEditorRegistrySupport 实现PropertyEditorRegistry接口。也是一个为Bean的property进行处理的创造的概念,基于propery的nested对象路径的结构,来扩展一种叫customEditor(即只特定的属性才生效,比如“user.address.description”,只对desciption进行特殊订定制的(除了满足类型要求外)。).
beanWrapper,SimpletTypeConverter(他们都是TypeConverter,也是PropertyEditorRegistry)都委托包内部类TypeConverterDelegate来代理"自己作为PropertyEditorRegistrySupport所收集到(持有的)propertyEditor"。这个委托价值,在于它就如何使用conversionService,CustomEditors,defaultEditors进行了定义;
spring.context中有个DataBinder同样既是TypeConverter,也是PropertyEditorRegistry。 默认最终是委托给BeanWrapper去执行。但它的意义是为validation领域提供了比较容易的概念“数据绑定器”。 DataBinder可以认为是一个壳,只是可以接受外部的配置,最终converter的配置和执行到要让beanWrpaper去坐的。可以立即。
另外:DataBinder,还整合validation,包括Validator,和Erros(BindingResult)。实际发生数据bind的地方就是是由AbstractPropertyBindResult,中的PropertyAccessor完成的。 validation发生在bind完成的 校验。
spring的Convert机制的更多相关文章
- spring事务传播机制实例讲解
http://kingj.iteye.com/blog/1680350 spring事务传播机制实例讲解 博客分类: spring java历险 天温习spring的事务处理机制,总结 ...
- Spring事务传播机制和数据库隔离级别
Spring事务传播机制和数据库隔离级别 转载 2010年06月26日 10:52:00 标签: spring / 数据库 / exception / token / transactions / s ...
- Spring Ioc工作机制 初步
Spring IoC工作原理 Spring 启动时读取应用程序提供的Bean配置信息,并在Spring容器中生成一份相应的Bean配置注册表,然后根据这张注册表实例化Bean,装配好Bean之间的依赖 ...
- Spring的事件机制详解
同步事件和异步事件 同步事件:在一个线程里,按顺序执行业务,做完一件事再去做下一件事. 异步事件:在一个线程里,做一个事的同事,可以另起一个新的线程执行另一件事,这样两件事可以同时执行. 用一个例子来 ...
- spring 事务传播机制
spring 事务 传播机制 描述的 事务方法直接相互调用,父子事物开启,挂起,回滚 等的处理方式. 绿色的 那几个 我认为比较重要. 1 , @Transactional(propagation=P ...
- 【转】Java异常总结和Spring事务处理异常机制浅析
异常的概念和Java异常体系结构 异常是程序运行过程中出现的错误.本文主要讲授的是Java语言的异常处理.Java语言的异常处理框架,是Java语言健壮性的一个重要体现. Thorwable类所有异常 ...
- Spring事务管理机制的实现原理-动态代理
之前在做项目中遇到spring无法进行事务代理问题,最后发现是因为没有写接口,原因当时明白了,看到这篇文章写的清楚些,转过来 我们先来分析一下Spring事务管理机制的实现原理.由于Spring内置A ...
- Spring事务传播机制与隔离级别(转)
Spring事务传播机制与隔离级别 博客分类: Spring 转自:http://blog.csdn.net/edward0830ly/article/details/7569954 (写的不错) ...
- 7 -- Spring的基本用法 -- 3... Spring 的核心机制 : 依赖注入
7.3 Spring 的核心机制 : 依赖注入 Spring 框架的核心功能有两个. Spring容器作为超级大工厂,负责创建.管理所有的Java对象,这些Java对象被称为Bean. Spring容 ...
随机推荐
- 转:Maven项目编译后classes文件中没有dao的xml文件以及没有resources中的配置文件的问题解决
问题1:在做spring+mybatis时,自动扫描都配置正确了,却在运行时出现了如下错误.后来查看target/classes/.../dao/文件夹下,发现只有mapper的class文件,而没有 ...
- JQuery控制下拉列表
//遍历option和添加.移除option function changeShipMethod(shipping){ var len = $("select[@name=ISHIPTYPE ...
- java web 导出Excel 的工具类公用实现
平时我们在开发后端管理的系统时,经常会出现导出Excel的功能.这个功能很简单,但是呢,我一般就会使用公用的工具类,在一个Util中,暴露公用导出的接口,只需要传入需要导出的数据(一般使用list集合 ...
- 读《Java并发编程的艺术》(二)
上篇博客开始,我们接触了一些有关Java多线程的基本概念.这篇博客开始,我们就正式的进入了Java多线程的实战演练了.实战演练不仅仅是贴代码,也会涉及到相关概念和术语的讲解. 线程的状态 程的状态分为 ...
- UVa1025 (DAG上的dp)
这是紫书上的第一个dp哈. 1.状态定义:dp[i][j]---->到时刻i的时候(出发的时候时刻为0,约定时间为时刻time),从j号车站开往N号车站,在车站等待的最少的时间. 2.这个人当前 ...
- 微信小程序开发之获取openid及用户信息
1. 获取openid 1.1 获取code 调用接口获取登录凭证(code)进而换取用户登录态信息,包括用户的唯一标识(openid) 及本次登录的会话密钥(session_key).用户数据的加解 ...
- ZigZag Conversion2015年6月23日
题目: The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows l ...
- Ultimus BPM 房地产与建筑行业应用解决方案
Ultimus BPM 房地产与建筑行业应用解决方案 行业应用需求 房地产与建筑行业客户业务特点是集团化管控,多区域.多项目.多业态管理,而行业业务往往项目周期长,涉及专业复杂,客户越来越重视管理和跟 ...
- javaWeb学习总结(10)- EL表达式
一.EL表达式简介 EL 全名为Expression Language.EL主要作用: 1.获取数据 EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数 ...
- java集合(4)- java中HashSet详解
HashSet 的实现 对于 HashSet 而言,它是基于 HashMap 实现的,HashSet 底层采用 HashMap 来保存所有元素,因此 HashSet 的实现比较简单,查看 HashSe ...