- 浏览: 6359299 次
- 性别:
- 来自: 一片神奇的土地
文章分类
- 全部博客 (745)
- JQuery (25)
- JS (33)
- 数据库 (59)
- Java基础 (56)
- JSON (8)
- XML (8)
- ireport (7)
- 设计模式 (10)
- 心情 (14)
- freemarker (1)
- 问题 (15)
- powerdesigner (2)
- CSS (15)
- DWR (4)
- tomcat (16)
- Hibernate (12)
- Oracle (7)
- Struts (7)
- Spring (34)
- JSP (23)
- 需学习 (64)
- 工具类库 (63)
- Maven (14)
- 笔试题 (34)
- 源码学习 (31)
- 多线程 (39)
- Android (32)
- 缓存 (20)
- SpringMVC (14)
- jQueryEasyUi (12)
- webservice-RPC (13)
- ant (1)
- ASP.NET (10)
- 正则表达式 (3)
- Linux (15)
- JBoss (1)
- EJB (3)
- UML (2)
- JMS (3)
- Flex (8)
- JSTL (2)
- 批处理 (5)
- JVM (16)
- 【工具】 (16)
- 数据结构 (29)
- HTTP/TCP/Socket (18)
- 微信 (1)
- tomcat源码学习 (15)
- Python (30)
- 主机 (2)
- 设计与架构 (19)
- thrift-RPC (2)
- nginx (6)
- 微信小程序 (0)
- 分布式+集群 (12)
- IO (1)
- 消息队列 (4)
- 存储过程 (8)
- redis (9)
- zookeeper (5)
- 海量数据 (5)
最新评论
-
360pluse:
技术更新,战术升级!Python爬虫案例实战从零开始一站通网盘 ...
Python爬虫实战:Scrapy豆瓣电影爬取 -
18335864773:
推荐用 pageoffice 组件生成 word 文件。
JAVA生成WORD工具类 -
jjhe369:
LISTD_ONE 写道起始地址为163.135.0.1 结束 ...
IP地址与CIDR -
baojunhu99:
private final int POOL_SIZE = 5 ...
使用CompletionService获取多线程返回值 -
LovingBaby:
胡说,javascript 运行时是单线程的,event lo ...
Ajax请求是否可以实现同步
Spring自定义属性编辑器PropertyEditorSupport + 使用CustomEditorConfigurer注册属性编辑器
- 博客分类:
- Spring
1、通过继承JDK 中的 java.beans.PropertyEditorSupport 类来实现自己的编辑器类 ,该类用于实现将String 类型转换成您需要的数据类型。然后我们只需要在Spring 的容器中对这个编辑器进行有效的“注册”便可以实现Spring 在装配Bean 时自动的将String 类型转换成我们自定义的类型。
如何编辑自己的PropertyEditor,其实需要了解一点java.beans包的知识,在该包中,有一个
java.beans.PropertyEditor的接口,它定义了一套接口方法(12个),即通过这些方法如何将一个String变成内部的一个对
象,这两个方法是比较重要的:
a)setValue(Object value) 直接设置一个对象
b)setAsText(String text) 通过一个字符串来构造对象,一般在此方法中解析字符串,将构造一个类对象,调用setValue(Object)来完成属性对象设置操作。
2)实现所有的接口方法是麻烦的,java.beans.PropertyEditorSupport 适时登场,一般情况下,我们通过扩展这个方便类即可。
2、CustomEditorConfigurer 类 用于实现在Spring 中注册自己定义的编辑器 。它是Spring 当中一个非常有用的工厂后处理类(工厂后处理通过Spring 的BeanFactoryPostProcessor 接口实现, 它是在Spring 容器启动并初始化之后进行对Spring 容器的操作类)。在Spring 中已经注册了不少编辑器类,他们都用于String 类型转换为其他的数据类型,如URL,Date等。
配置CustomEditorConfigurer 类:
CustomEditorConfigurer 类中有一个customEditor属性,它是一个Map 类型。通过配置它便实现了自定义的编辑器注册。这个Map 的键值对对应着转换类型和编辑器(转换类型是Key,编辑器是Value)。
自定义编辑器可以简化Spring 的装配Bean。使其更加的简单。不容易发生配置错误。 PS:如果使用Spring 的ApplicationContext容器,那么只需在Spring 的配置文件中进行简单的装配,而对于Bean 工厂可能需要手动的注册才能使用。
//User.java public class User { private String name; private int age; 。。。 }
//用到User的类:UserContainer.java public class UserContainer { private User user; public void setUser(User user) { this.user = user; } public void printUser() { System.out.println(user.getName() + " " + user.getAge()); } }
//将配置中的转换的类:TransformUser.java public class TransformUser extends PropertyEditorSupport { public void setAsText(String text) { String[] data = text.split(","); User user = new User(); user.setName(data[0]); user.setAge(Integer.parseInt(data[1])); this.setValue(user); } }
在applicationContext.xml文件中。 <bean id="user" class="User" /> <bean id="transformUser" class="TransformUser"/> <bean id="userContainer" class="UserContainer"> <property name="user" value="liming,23"></property> </bean> <bean id="configBean" class="org.springframework.beans.factory.config.CustomEditorConfigurer"> <property name="customEditors"> <map> <entry key="User"> <!-- 属性类型 --> <bean class="TransformUser"/> <!--对应Address的编辑器 --> </entry> </map> </property> </bean> 将liming,23这种格式的转换成User类。
例子1:http://www.iteye.com/topic/24660
例子2:http://gundumw100.iteye.com/blog/574440
发表评论
-
Spring 配置多数据源实现数据库读写分离
2014-10-09 11:05 58230现在大型的电子商务 ... -
strust_spring_hibernate的优缺点
2014-10-08 09:41 2761struts框架具有组件的模块化,灵活性和重用性的优点,同时 ... -
声明式事务
2014-09-03 17:53 1779跟开涛学Spring 数据库事务 本 ... -
@Component注解
2014-08-20 15:43 37837Spring自带的@Component注 ... -
日志记录、性能监控的三种实现方式
2014-08-18 14:09 7638一、需解决的问题 部分API有签名参数(signatur ... -
BeanWrapper 设置和获取属性值
2014-08-18 11:10 96985.4. Bean处理和BeanWrapper - Spr ... -
SpringMVC的拦截器Interceptor
2014-08-15 10:23 5079跟开涛学SpringMVC 接口: Ha ... -
AOP
2014-08-14 17:00 10753跟开涛学Spring 问题: 使用BeanFac ... -
Bean作用域
2014-08-14 15:16 1802跟开涛学Spring 附:单例模式的DoubleChec ... -
DI
2014-08-14 10:26 1795跟开涛学Spring DI: ... -
IOC + 容器
2014-08-13 18:03 2917跟开涛学Spring 传统应用程序示意图 ... -
Spring中Bean初始化实例【重要】
2014-07-21 16:48 61246可参考文章: Spring Bean 生命周期 Spr ... -
bean的生命周期
2014-07-21 15:41 1529在spring中,从BeanFactory或Applica ... -
Spring中BeanPostProcessor
2014-07-21 15:19 50704Spring提供了很多扩展 ... -
context,listener,filter,servlet加载顺序
2014-04-22 14:08 8080web.xml加载过程(步骤):1.启动WEB项目的时候, ... -
Spring+hibernate的session问题
2013-09-27 10:20 3193在spring框架和hibernate框架集成的时候,根据 ... -
HttpServletRequestWrapper 用法
2013-09-25 16:50 8515HttpServletRequestWrapper ... -
AOP
2012-05-09 10:14 1625引子: AOP(面向方面 ... -
IOC
2012-05-09 10:11 1600引述:IoC(控制反转:I ... -
事务隔离级别
2012-03-08 11:39 10513模拟数据库的四种隔离级别1 模拟数据库的四种隔离级 ...
相关推荐
这篇博客“spring 自定义属性编辑器”可能详细介绍了如何在Spring中创建和注册自定义属性编辑器,以满足特定的业务需求。 首先,了解Spring中的属性编辑器机制。Spring会自动寻找并使用`java.beans.PropertyEditor`...
2. **注册编辑器**:在Spring中,你可以通过两种方式注册自定义属性编辑器。一种是在XML配置文件中使用`propertyEditorRegistrar`元素,另一种是在Java配置中使用`@InitBinder`注解。 在XML配置中: ```xml ...
在“Spring学习笔记(11)----自定义属性编辑器”这篇博文中,作者深入探讨了如何自定义属性编辑器以满足特定需求。 首先,我们需要了解属性编辑器的工作原理。当IoC容器读取配置文件时,如果发现一个属性值需要...
在Spring 2.0框架中,自定义属性编辑器(Custom Property Editor)是一个重要的功能,它允许开发者扩展Spring的默认属性绑定机制,以处理特定类型的转换。本文将深入探讨这一特性,结合源码分析和实际应用,帮助你...
在Spring MVC中,当控制器方法接收请求参数时,如果请求参数与方法参数类型不匹配,Spring会尝试使用属性编辑器进行转换。例如,从字符串转换为日期、颜色代码到Color对象等。自定义属性编辑器需要继承`java.beans....
通过以上步骤,我们不仅解决了类型转换的问题,还深入了解了如何在Spring框架中使用自定义编辑器来扩展其功能。这对于处理复杂的业务逻辑或特定的数据格式非常有帮助。此外,自定义编辑器还可以用于提高应用程序的...
Spring Batch是一个轻量级的,完全面向...5、提供Spring框架中配置、自定义、和扩展服务。 6、所有存在的核心服务可以很容的被替换和扩展,不影响基础层。 7、提供一个简单的部署模式,利用Maven构建独立的Jar文件。
本教程将深入探讨如何在Spring中实现自定义事务管理器、编程式事务处理以及声明式事务`@Transactional`的使用。 首先,让我们了解事务管理的基本概念。事务是一组数据库操作,这些操作要么全部执行,要么全部回滚,...
后台通过自定义注解结合一个访问拦截器实现整个系统的权限控制 04. 系统前台采用全采用的Html+jQuery开发 05. 系统前台与后台的交互全部使用 Ajax 异步请求 06. 自定义 SecureValid 注解实现权限的控制 07. ...
2. **注册标签**:为了让Spring知道如何处理你的自定义标签,你需要在Spring的核心配置文件(如`beans.xml`)中声明这个解析器。通过`<bean>`标签注册一个工厂bean,它的`class`属性指定为你的`BeanDefinitionParser...
开源测试项目:spring mvc+springsecurity3+ehcache+bootstrap+mysql 内附MySQL表,直接导入就可运行 效果图请移步:http://blog.csdn.net/yangxuan0261/article/details/10053947
java中的属性编辑器详细说明及Spring中AnnotationMethodHandlerAdapter说明和DefaultAnnotationHandlerMapping的说明及用法
如果没有显式指定,Spring会使用`PropertyEditorManager`来查找默认的属性编辑器。如果需要自定义转换逻辑,可以创建一个实现了`PropertyEditor`接口的类,并在Spring配置中注册它,或者通过`@Component`注解使其...
本示例主要探讨如何在Spring中创建和使用自定义注解,以及与AOP结合实现动态代理。 首先,我们需要了解自定义注解的基本结构。在Java中,自定义注解是以`@interface`关键字定义的。例如,我们可以创建一个名为`...
一旦自定义启动器创建完成,你可以在其他Spring Boot项目中引入它,就像使用官方的启动器一样。这样,项目就能自动获取并配置你的模块所提供的服务。 6. **源码分析**: 提供的源码应该包含了完整的自定义启动器...
2. **注册属性编辑器**:在Spring配置中,我们需要注册这个自定义属性编辑器。这可以通过`@InitBinder`注解在控制器类中完成,或者在`WebConfig`类中使用`@Bean`方法注册`WebDataBinderFactory`。 3. **集合类型的...
【学生成绩管理系统】是一个基于Java技术的毕业设计项目,采用了经典的SSH(Spring MVC、Hibernate、Spring)框架组合,以及前端界面库EasyUI。这个系统的主要目标是为教育机构提供一个高效、便捷的学生分数记录与...
本项目是关于"activiti+spring+spring Mvc+mybatis+maven"的整合,旨在创建一个基于Activiti工作流引擎、Spring、Spring MVC、MyBatis以及Maven的开发环境。下面将详细介绍这些技术及其整合过程。 首先,`activiti`...
在Spring配置类或者XML配置文件中,使用`@ComponentScan`并添加`@ComponentScan annonation`属性,指定自定义注解的名称。这样,Spring在扫描过程中会识别并处理标记了这个注解的类。 ```java import org.spring...
Spring 自定义注解和 Aspect 的使用 在本文中,我们将学习如何在 Spring 项目中使用自定义注解和 Aspect 来实现日志记录功能。我们将从头开始,创建一个简单的 Spring Boot 项目,然后使用自定义注解和 Aspect 来...