在spring中可以通过CustomeEditorConfigurer自动去检测bean包所需要转换属性,自定义一个继承于 PropertyEditorSupport的 Editor类,通过配置文件注入到 CustomeEditoConfigurer类中,当该属性在容器中的值是字符串时,他就会调用setTextAs(String text),把字符串值转换成目标类型的实例。如果不能正转换,则抛出相应的异常...例子如下
Person.java
package com.demo11;
public class Person {
private String name;
private String sex;
private int age;
public Person(String name, int age, String sex){
this.name = name;
this.age= age;
this.sex = sex;
}
public String getSex(){
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
Company.java 其中包含 Person属性.
package com.demo11;
public class Company {
private Person director;
public Person getDirector() {
return director;
}
public void setDirector(Person director) {
this.director = director;
}
}
PersonEditor.java //继承自PropertyEditorSupport
package com.demo11;
import java.beans.PropertyEditorSupport;
public class PersonEditor extends PropertyEditorSupport {
@Override
public void setAsText(String text) throws IllegalArgumentException {
String[] tmp =text.split("-");
String name = tmp[0];
int age = Integer.parseInt(tmp[1]);
String sex = tmp[2];
Person person = new Person(name, age, sex);
setValue(person);
}
}
对应的配置文件:
<bean id="customEditorConfigurer"
class="org.springframework.beans.factory.config.CustomEditorConfigurer">
<property name="customEditors">
<map>
<entry key="com.demo11.Person">
<bean class="com.demo11.PersonEditor"></bean>
</entry>
</map>
</property>
</bean>
<bean id="company" class="com.demo11.Company">
<property name="director">
<value>nono-35-女</value>
</property>
</bean>
在测试类中
ApplicationContext act = new ClassPathXmlApplicationContext("com/demo11/bean.xml");
Company company = (Company)act.getBean("company");
System.out.println(company.getDirector().getName());
输出结果为 nono
这的确是很好的编程思想,但是这在实际应用中有啥好处,或者有哪些实用场合 ?目前为止我还孤陋寡闻,尚不知结果,希望看到的朋友能给我指教指教![size=large][/size]!
分享到:
相关推荐
标题中的“Spring中IOC是什么”指的是Spring框架中的一个重要概念——控制反转(Inversion of Control,简称IOC)。在Spring框架中,IOC是核心特性之一,它改变了传统Java应用程序中对象依赖的管理方式。本文将深入...
13. **Spring Security与Spring MVC集成**:两者结合可以方便地在Web应用程序中实现安全控制,例如,通过`@Secured`或`@PreAuthorize`注解进行方法级别的访问控制。 综上所述,Spring 3.0和Spring Security 3.0.1...
在Spring框架中,JdbcTemplate是用于简化数据库操作的重要工具,它是Spring JDBC模块的核心组件。JdbcTemplate提供了一种声明式的方式来进行数据库操作,帮助开发者避免了手动处理JDBC连接、预编译SQL语句、结果集...
7. **Spring Data JPA的事件监听**:通过实现不同的事件接口,可以在实体的生命周期事件中插入自定义逻辑,如`PrePersist`、`PostLoad`等。 8. **事务管理**:Spring Data JPA与Spring的事务管理无缝集成,可以通过...
总结,Spring Data Redis是Java开发者与Redis交互的得力工具,通过其强大的功能和易于使用的API,我们可以轻松地在应用程序中利用Redis的高性能特性。在实际项目中,理解并熟练掌握Spring Data Redis的各项功能,将...
标题中的“Hibernate Spring CSS 中文帮助”提示我们,这个压缩包可能包含有关使用Hibernate、Spring框架以及CSS(层叠样式表)在中国语境下的技术指南。这三个技术在IT行业中都是至关重要的部分,尤其是在开发Java ...
SpEL支持`if`语句和`for`循环,可以在表达式中实现复杂的逻辑。 10. **列表和映射** SpEL可以操作列表和映射,如遍历列表元素,访问映射的键值对,或者在表达式中创建新的列表和映射。 11. **异常处理** 在...
"Spring_MyBatis物理分页"是指在Spring和MyBatis集成环境中实现的数据库物理分页功能。本文将深入探讨这个主题,包括其实现原理、优点以及如何在项目中进行配置。 首先,让我们了解什么是物理分页。物理分页是...
3. **Spring事务管理类型**:声明式事务管理和编程式事务管理的区别和应用场景,例如通过@Transactional注解实现的声明式事务。 4. **事务的隔离级别**:读未提交(READ UNCOMMITTED)、读已提交(READ COMMITTED)...
在Spring框架中,DI是通过控制反转(Inversion of Control,IoC)来实现的,它允许开发者将对象的创建和管理权交给容器,而不是在代码中硬编码依赖关系。 依赖注入的核心思想是,一个对象不应该负责寻找它所依赖的...
Java开发工具类基于pring MVC+Mybatis+EasyUI的基础框架,实现基本功能,方便快速开发
在Spring中,异常处理主要是通过AOP(面向切面编程)来实现的,它允许我们在不修改原有业务代码的情况下,对程序运行过程中的异常进行统一管理。 【描述】:“Spring异常处理共5页.pdf.zip” 描述中的“共5页”...
在Spring框架中,定时任务是应用开发中常见的一种需求,用于定期执行某些任务,比如数据同步、清理过期数据等。Spring提供了多种定时任务的实现方式,包括Spring自身的`TaskScheduler`和集成第三方库如Quartz。这里...
mybatis+pring+springmvc+mysql的所有包的整合jar包其中有spring-webmvc-3.2.0.RELEASE.jar和spring-core-3.2.0.RELEASE.jar以及mybatis-3.2.7.jar,junit-4.9.jar,mysql-connector-java-5.1.7-bin.jar等31个jar包
【标题】"程序天下J2EE structs+pring+Hibente源码(3)" 提供的是一款基于Java Enterprise Edition (J2EE) 平台的项目,它整合了Struts、Spring和Hibernate三大框架。这个项目的源码分析将帮助我们深入理解这三大...
【描述】虽然描述中仅提到"pring入门共4页.pdf.zip",但我们可以推测这可能是一个简明扼要的Spring教程,旨在帮助初学者快速了解Spring框架的基本概念和用法。通常,这样的入门教程会涵盖以下几个关键知识点: 1. *...
很抱歉,根据您提供的信息,"pring初探共18页.pdf.zip" 和 "pring初探共18页.pdf." 看起来像是一个关于Spring框架的教程文档,但是具体的文件列表只提到了 "赚钱项目",这与Spring框架的学习内容不直接相关。...
在第二部分“华尔街羊群”中,Pring讨论了何时应该采取与大众相反的行动,以及如何从新闻爆发中获利。他指出,市场的多数派往往基于情感而非理性做出决策,而成功的投资者需要有识别这些模式的能力,并从中获利。他...
4. **改进的类型安全转换服务**:Spring4的ConversionService进行了优化,提供了更强大的类型转换能力,避免了在处理复杂类型转换时可能出现的错误。 5. **数据绑定增强**:Spring4的数据绑定功能更加智能,支持更...