`
tony_lei
  • 浏览: 2689 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

pring 中 通过 CustomeEditorConfigureer 实现类型转换的一点疑问!

 
阅读更多
在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]!
分享到:
评论

相关推荐

    pring中ioc是什么共15页.pdf.zip

    标题中的“Spring中IOC是什么”指的是Spring框架中的一个重要概念——控制反转(Inversion of Control,简称IOC)。在Spring框架中,IOC是核心特性之一,它改变了传统Java应用程序中对象依赖的管理方式。本文将深入...

    pring3.0中文文档

    13. **Spring Security与Spring MVC集成**:两者结合可以方便地在Web应用程序中实现安全控制,例如,通过`@Secured`或`@PreAuthorize`注解进行方法级别的访问控制。 综上所述,Spring 3.0和Spring Security 3.0.1...

    pring中的jdbc访问类JdbcTemplate使用共

    在Spring框架中,JdbcTemplate是用于简化数据库操作的重要工具,它是Spring JDBC模块的核心组件。JdbcTemplate提供了一种声明式的方式来进行数据库操作,帮助开发者避免了手动处理JDBC连接、预编译SQL语句、结果集...

    pring date jpa中文指南文档

    7. **Spring Data JPA的事件监听**:通过实现不同的事件接口,可以在实体的生命周期事件中插入自定义逻辑,如`PrePersist`、`PostLoad`等。 8. **事务管理**:Spring Data JPA与Spring的事务管理无缝集成,可以通过...

    pring-data-redisjar和源文件

    总结,Spring Data Redis是Java开发者与Redis交互的得力工具,通过其强大的功能和易于使用的API,我们可以轻松地在应用程序中利用Redis的高性能特性。在实际项目中,理解并熟练掌握Spring Data Redis的各项功能,将...

    hibernate pring css 中文帮助

    标题中的“Hibernate Spring CSS 中文帮助”提示我们,这个压缩包可能包含有关使用Hibernate、Spring框架以及CSS(层叠样式表)在中国语境下的技术指南。这三个技术在IT行业中都是至关重要的部分,尤其是在开发Java ...

    pring3表达式语言共13页.pdf.zip

    SpEL支持`if`语句和`for`循环,可以在表达式中实现复杂的逻辑。 10. **列表和映射** SpEL可以操作列表和映射,如遍历列表元素,访问映射的键值对,或者在表达式中创建新的列表和映射。 11. **异常处理** 在...

    pring_mybatis物理分页

    "Spring_MyBatis物理分页"是指在Spring和MyBatis集成环境中实现的数据库物理分页功能。本文将深入探讨这个主题,包括其实现原理、优点以及如何在项目中进行配置。 首先,让我们了解什么是物理分页。物理分页是...

    pring事务共9页.pdf.zip

    3. **Spring事务管理类型**:声明式事务管理和编程式事务管理的区别和应用场景,例如通过@Transactional注解实现的声明式事务。 4. **事务的隔离级别**:读未提交(READ UNCOMMITTED)、读已提交(READ COMMITTED)...

    pring之DI简介共13页.pdf.zip

    在Spring框架中,DI是通过控制反转(Inversion of Control,IoC)来实现的,它允许开发者将对象的创建和管理权交给容器,而不是在代码中硬编码依赖关系。 依赖注入的核心思想是,一个对象不应该负责寻找它所依赖的...

    Java开发工具类基于pring MVC+Mybatis+EasyUI的基础框架,实现基本功能,方便快速开发

    Java开发工具类基于pring MVC+Mybatis+EasyUI的基础框架,实现基本功能,方便快速开发

    pring异常处理共5页.pdf.zip

    在Spring中,异常处理主要是通过AOP(面向切面编程)来实现的,它允许我们在不修改原有业务代码的情况下,对程序运行过程中的异常进行统一管理。 【描述】:“Spring异常处理共5页.pdf.zip” 描述中的“共5页”...

    pring定时器的使用

    在Spring框架中,定时任务是应用开发中常见的一种需求,用于定期执行某些任务,比如数据同步、清理过期数据等。Spring提供了多种定时任务的实现方式,包括Spring自身的`TaskScheduler`和集成第三方库如Quartz。这里...

    mybatis+pring+springmvc+mysql的所有包的整合

    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)

    【标题】"程序天下J2EE structs+pring+Hibente源码(3)" 提供的是一款基于Java Enterprise Edition (J2EE) 平台的项目,它整合了Struts、Spring和Hibernate三大框架。这个项目的源码分析将帮助我们深入理解这三大...

    pring入门共4页.pdf.zip

    【描述】虽然描述中仅提到"pring入门共4页.pdf.zip",但我们可以推测这可能是一个简明扼要的Spring教程,旨在帮助初学者快速了解Spring框架的基本概念和用法。通常,这样的入门教程会涵盖以下几个关键知识点: 1. *...

    pring初探共18页.pdf.zip

    很抱歉,根据您提供的信息,"pring初探共18页.pdf.zip" 和 "pring初探共18页.pdf." 看起来像是一个关于Spring框架的教程文档,但是具体的文件列表只提到了 "赚钱项目",这与Spring框架的学习内容不直接相关。...

    Investment Psychology Explained by Martin J. Pring

    在第二部分“华尔街羊群”中,Pring讨论了何时应该采取与大众相反的行动,以及如何从新闻爆发中获利。他指出,市场的多数派往往基于情感而非理性做出决策,而成功的投资者需要有识别这些模式的能力,并从中获利。他...

    pring4新特性之核心部分共7页.pdf.zip

    4. **改进的类型安全转换服务**:Spring4的ConversionService进行了优化,提供了更强大的类型转换能力,避免了在处理复杂类型转换时可能出现的错误。 5. **数据绑定增强**:Spring4的数据绑定功能更加智能,支持更...

Global site tag (gtag.js) - Google Analytics