spring 强大的PropertyEditor

学习Spring必学的Java基础知识(3)—PropertyEditor NULL 博文链接:https://bijian1013.iteye.com/blog/2164121 立即下载

今天看了一下spring的Data Binding,觉得挺强大,记录一下,以免忘记。

 

public class User{

private String name;

private Son son;

public Son getSon() {

return son;

}

public void setSon(Son son) {

this.son = son;

}

 

}

 

 

public class Son{

private String name;

public Son(){}

public Son(String name) {

this.name = name;

}

 

}

 

 

<bean id="user" class="com.lhacker.domain.User">

<property name="name" value="Dylan" />

<property name="son" value="Dylan的儿子"/>

</bean>

 

 

不需要配置son的bean,只需要以上的一个配置,spring就会初始化Son,并把“Dylan的儿子"根据Son的有参构造函数,把值绑定在name属性中。

 

 

还可以定义自己的TypeEditor,继承java提供的PropertyEditorSuppor.

 

public class ExoticTypeEditor extends PropertyEditorSupport {

 

@Override

public void setAsText(String text) throws IllegalArgumentException {

setValue(new Son(text.toUpperCase()));

}

 

}

 

 

 

<bean class="org.springframework.beans.factory.config.CustomEditorConfigurer"> 

<property name="customEditors"> <map> <entry key="com.lhacker.domain.Son" 

value="com.lhacker.controller.util.ExoticTypeEditor" /> </map> </property> 

</bean>

 

 

这样,就可以将Son的name属性值绑定为"DYLAN的儿子"。

 

还有另一种方式

 

public class CustomPropertyEditorRegistrar implements PropertyEditorRegistrar {

 

@Override

public void registerCustomEditors(PropertyEditorRegistry registry) {

registry.registerCustomEditor(Son.class, new ExoticTypeEditor());

}

 

}

 

<bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">

<property name="propertyEditorRegistrars">

<list>

<ref bean="customPropertyEditorRegistrar" />

</list>

</property>

</bean>

 

<bean id="customPropertyEditorRegistrar" class="com.lhacker.controller.util.CustomPropertyEditorRegistrar" />

Xilinx GTY Transceiver时钟方案与功耗优化实践 本文详细解析了Xilinx GTY Transceiver的时钟方案设计与功耗优化实践,涵盖从基础配置到高速24.33024Gbps和中速10.1376Gbps的实战案例。通过Transceivers Wizard的IP设计技巧和动态功耗优化方法,帮助工程师有效降低FPGA系统功耗,提升高速串行通信的稳定性与效率。 阅读详情

相关推荐

从AMCL到SLAM Toolbox:在Nav2中实现高精度纯定位的实践指南

本文详细介绍了从AMCL迁移到SLAM Toolbox纯定位模式的实践指南,帮助开发者在Nav2中实现高精度定位。通过对比AMCL与SLAM Toolbox的性能差异,提供环境配置、参数调优、Nav2集成等关键步骤,显著提升机器人在动态环境中的定位精度和重定位效率。

weixin_29292535的博客 148

Spring 类型转换、数值绑定与验证(二)—PropertyEditor与Conversion

Spring 中,属性类型转换是在将数值绑定到目标对象时完成的。例如在创建ApplicationContext 容器时,将XML配置的bean 转换成Java类型对象,主要是借助了PropertyEditor类,而在Spring MVC 的Controller的请求参数转化为特定类型时,我们也可以自定义转化器Convert并注册来完成转换。以下是Spring相关源码分析。

KEEP CODING 1461

【超详细】安装了anaconda后,Ubuntu18+COLMAP配置疯狂踩坑踩至魔怔的记录

本博客收集了博主在Ubuntu18系统中编译COLMAP所遇到的困难,提供了解决方法,也收集了目前网上大多数的坑,除此之外,也为Ubuntu18系统下COLMAP的安装提供了一种新的路径。

Stay_Foo_lish的博客 3511

探秘 Spring 的 PropertyEditor

转自:探秘 Spring 的 PropertyEditor - 简书 PropertyEditor & PropertyEditorSupport 介绍 java.beans.PropertyEditor 是 JDK 自带的类,是提供给 AWT。做啥用呢、就是讲用户在图形见面中输入的字符串转换位对应类型的值(对象)。类似于一个 convertor。 public interface PropertyEditor { void setValue(Object value);

一只小棉花的博客 726

IEDA激活码失效?教你5分钟快速续期的方法

本文针对IEDA激活码失效问题,提供了一套从快速应急到深度排查的完整解决方案。文章不仅详解了5分钟快速续期与清理缓存等应急方法,更深入剖析了授权机制、离线激活流程,并指导如何构建可持续的授权管理策略,帮助开发者彻底解决激活困扰,确保开发环境稳定。

a0b1c2d3的专栏 273

Python爬虫实战:用Selenium+ChromeDriver批量抓取政府网站政策文件(附完整代码)

本文详细介绍了使用Python的Selenium和ChromeDriver进行政府网站政策文件批量抓取的实战技巧。从环境配置、动态页面元素定位到分页机制破解和反爬虫策略,提供了完整的解决方案和代码示例,帮助开发者高效获取结构化政策数据。

weixin_42531710的博客 266

Spring之PropertyEditor

文章目录概述PropertyEditor简介内置PropertyEditor自定义PropertyEditorCustomEditorConfigurerDate属性编辑自定义属性编辑器参考文献 概述 在 Spring 配置文件里,我们往往通过字面值为 Bean 各种类型的属性提供设置值:不管是 double 类型还是 int 类型,在配置文件中都应字符串类型的字面值。BeanWrapper 填充...

Herishwater的博客 974

STM32与HT7038的高精度电能计量系统设计与实现

本文详细介绍了基于STM32微控制器与HT7038三相电能计量芯片的高精度电能计量系统设计与实现。文章从项目选型出发,深入剖析了硬件电路设计、SPI驱动开发、芯片校准及系统集成等关键环节,为智能电表、能源监控等应用提供了高性价比且稳定的国产化解决方案。

pytorch8learner的博客 389

Spring 属性编辑器 PropertyEditor

博文目录 文章目录PropertyEditor 在 Spring 中的作用演示PropertyEditorPropertyEditorSupportPropertyEditorRegistryPropertyEditorRegistrySupportPropertyEditorRegistrarResourceEditorRegistrarBeanWrapper总结 探秘 Spring 的 PropertyEditor PropertyEditor 在 Spring 中的作用 XML 配置 Bean

mrathena 885

黑猫带你学UFS协议第2篇:UFS相关名词释义

本文依据UFSJEDEC3.1、个人工作经验整理而成,如有错误请留言。文章为个人辛苦整理,付费内容,已加入原创保护,禁止私自转载。文章所在专栏《黑猫带你学UFS协议详解》

黑猫奥利奥的博客 5305

AutoSAR系列讲解(深入篇)13.6-闪烁一颗LED灯 6

闪烁一颗LED灯:配置SWC和生成代码

雪云飞星的博客 1万+

spring之类型转换

spring之类型转换(PropertyEditor、ConditionalGenericConverter和TypeConverter)

qq_41139119的博客 1009

【零基础入门unity游戏开发——2D篇】大大简化了地形创建流程,减少Rule Tile的使用 —— AutoTile自动平铺瓦片的使用介绍

Unity 2D游戏开发中的AutoTile技术详解 摘要:本文详细介绍了Unity 2D游戏开发中的AutoTile技术,这是一种智能瓦片系统,能够自动处理地形和场景拼接。文章首先讲解了AutoTile的基本概念和优势,然后分步骤指导读者如何安装2D Tilemap Extras包、创建AutoTile、设置参数和绘制遮罩。通过实际案例演示了AutoTile的使用方法,并比较了AutoTile与Rule Tile的适用场景。最后指出AutoTile虽然使用方便,但对素材要求较高,开发者应根据项目需求选择合

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 729

linq结果转换object_Spring类型转换整理

平常在使用Spring过程中,经常会用到类型转换,但一直没时间对这一块进行系统的整理。因此接下来会用几篇文章对这一块进行系统的整理。大概的想法是下面俩篇:Spring类型转换整理BeanWrapper使用以及原理DataBinder使用以及原理这篇文章用于记录自己在学习Spring类型转换相关的内容,主要有以下三块。PropertyEditor:用于String到Object的类型转换Conver...

weixin_39628551的博客 247

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

BeanWrapper

文章稍微有点儿长… BeanWrapper 是 Spring 中比较重要的一个接口、我们在 Spring 获取单例流程(三) 中曾见过 PropertyDescriptor 我们在 Java 内省 有介绍过 我们先一个个的介绍它所继承的接口 PropertyEditorRegistry 要介绍 PropertyEditorRegistry 首先要介绍下 PropertyEditor。 PropertyEditor 俗称属性编辑器、原本只是在 GUI 中将字符串转换为 Java 对象的相应类型的、比如说

CoderLi 1358

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Spring 源码阅读(二) 核心概念解析 ApplicationContext、类型转化

它也是继承了AbstractApplicationContext,但是相对于AnnotationConfigApplicationContext而言,功能没有AnnotationConfigApplicationContext强大,比如不能注册BeanDefinition。在Spring源码中,有可能需要把String转成其他类型,所以在Spring源码中提供了一些技术来更方便的做对象的类型转化,关于类型转化的应用场景, 后续看源码的过程中会遇到很多。具体的功能演示,后面会有。先定义一个事件监听器。

2402_82958989的博客 908

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Spring3 Web MVC下的数据类型转换

基于spring-framework-3.1.1.RELEASE 7.1、简介 在编写可视化界面项目时,我们通常需要对数据进行类型转换、验证及格式化。 一、在Spring3之前,我们使用如下架构进行类型转换、验证及格式化: 流程: ①:类型转换:首先调用Property...

chenqiaodezhi57164的博客 89

数据绑定应该算是Spring MVC的特点之一吧~简单易用且功能强大,极大地简化了我们编程人员对于用户输入数据的接收及转换。 早先版本的Spring中的数据绑定完全都是基于PropertyEditor

数据绑定应该算是Spring MVC的特点之一吧~简单易用且功能强大,极大地简化了我们编程人员对于用户输入数据的接收及转换。 早先版本的Spring中的数据绑定完全都是基于PropertyEditor的。而Spring3中引入了Converter,用来替代PropertyEditor完成类型转换。 那么我们也依照这个顺序,先来讲讲基于传统的PropertyEditor来实现日期类型的数

u013101826的专栏 492

Spring3 Web MVC下的数据类型转换(第一篇)——《跟我学Spring3 Web MVC》抢先看

  基于spring-framework-3.1.1.RELEASE 7.1、简介 在编写可视化界面项目时,我们通常需要对数据进行类型转换、验证及格式化。   一、在Spring3之前,我们使用如下架构进行类型转换、验证及格式化:   流程: ①:类型转换:首先调用PropertyEditor的setAsText(String),内部根据需要调用setValue(Object)...

jinnianshilongnian的专栏 268

Spring MVC学习(七)-------SpringMVC数据类型转换

7.1、简介 在编写可视化界面项目时,我们通常需要对数据进行类型转换、验证及格式化。   一、在Spring3之前,我们使用如下架构进行类型转换、验证及格式化:  流程: ①:类型转换:首先调用PropertyEditor的setAsText(String),内部根据需要调用setValue(Object)方法进行设置转换后的值; ②:数据验证:需要显示

qyddle的专栏 532

Spring基础十:@Value属性值注入

@Autowire可以用来注入bean依赖,@Value则用于注入属性值。本章介绍@Value的使用方法,属性值来源以及属性值类型转换的原理。 回顾PropertySourcesPlaceholderConfigurer 在介绍BeanFactoryPostProcessor的时候,我们讲过,可以通过向容器注册一个PropertySourcesPlaceholderConfigurer来替换属性值...

longhuihu的专栏 2060

SpringMVC注解式控制器的数据验证、类型转换及格式化

7.1、简介 在编写可视化界面项目时,我们通常需要对数据进行类型转换、验证及格式化。 一、在Spring3之前,我们使用如下架构进行类型转换、验证及格式化: 流程: ①:类型转换:首先调用PropertyEditor的setAsText(String),内部根据需要调用setValue(Object)方法进行设置转换后的值; ②:数据验证:需要显示调用Spring的Valida...

lgxzzz的博客 364

类型转换、验证及格式化

②:数据验证:需要显示调用Spring的Validator接口实现进行数据验证; ③:格式化显示:需要调用PropertyEditor的getText进行格式化显示。   使用如上架构的缺点是: (1、PropertyEditor被设计为只能StringObject之间转换,不能任意对象类型任意类型,如我们常见的Long时间戳到Date类型的转换是办不到的; (2、PropertyEdi

someon2的专栏 507

spring的数据转换

Java标准的对象PropertyEditor的核心功能是将一个String类型转化为一个java对象,以便根据界面输入的或者配置文件中的配置字符串构造出的一个jvm的内部的java对象。 但数java原声的PropertyEditor存在以下的不足: 1.只能用于字符串和java对象的转换,不适用于任意两个java类型之间的转换。 2.对源对象及目标对象所在的上下文信息(如注解,所在的宿主...

u010334303的博客 235

第七章 注解式控制器的数据验证、类型转换及格式化 SpringMVC数据类型转换

7.1、简介 在编写可视化界面项目时,我们通常需要对数据进行类型转换、验证及格式化。   一、在Spring3之前,我们使用如下架构进行类型转换、验证及格式化:  流程: ①:类型转换:首先调用PropertyEditor的setAsText(String),内部根据需要调用setValue(Object)方法进行设置转换后的值; ②:数据验证:需要显示调用Spring的Val

备忘录 1907
上一篇: java 发邮件
下一篇: 父类与子类的实例化
LHacker
博客等级 码龄17年 162粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值