`
esffor
  • 浏览: 1381411 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring Bean包装类案例之自定义PropertyEditor

阅读更多

javabean:

 

package Bean.CustomerPropertyEditor;

public class Company ...{
    
private Person director;

    
public Person getDirector() ...{
        
return director;
    }


    
public void setDirector(Person director) ...{
        
this.director = director;
    }

}



package Bean.CustomerPropertyEditor;

public class Person ...{
  
private String name;
  
private int age;
  
public Person(String name,int age)...{
      
this.name=name;
      
this.age=age;
  }

public int getAge() ...{
    
return age;
}

public void setAge(int age) ...{
    
this.age = age;
}

public String getName() ...{
    
return name;
}

public void setName(String name) ...{
    
this.name = name;
}

}

 自定义PropertyEditor

 

package Bean.CustomerPropertyEditor;

import java.beans.PropertyEditorSupport;

public class PersonEditor extends PropertyEditorSupport ...{

    @Override
    
public void setAsText(String text) throws IllegalArgumentException ...{
        String[] temp
=text.split("-");
        String name
=temp[0];
        
int age=Integer.parseInt(temp[1]);
        Person p
=new Person(name,age);
        setValue(p);
    }


}

配置文件:

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

 
<bean id="customEditorConfigure" class="org.springframework.beans.factory.config.CustomEditorConfigurer">
   
<property name="customEditors">
      
<map>
         
<!-- 确定目标类 -->
         
<entry key="Bean.CustomerPropertyEditor.Person">
           
<bean class="Bean.CustomerPropertyEditor.PersonEditor"></bean>
         
</entry>
      
</map>
   
</property>
 
</bean>
 
<bean id="company" class="Bean.CustomerPropertyEditor.Company">
   
<property name="director">
      
<value>gaoxiang-26</value>
   
</property>
 
</bean>
</beans>


测试代码:

 

package Bean.CustomerPropertyEditor;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

import Bean.FactoryMethods.Test;

public class test ...{

    
/** *//**
     * 
@param args
     
*/

    
public static void main(String[] args) ...{
        String path
=new Test().getClass().getResource("/").getPath();
        String realpath
=path.substring(1, path.length());
        ApplicationContext context
=new FileSystemXmlApplicationContext(realpath+"/propertyEditor.xml");
        Company c
=(Company)context.getBean("company");
        System.out.println(c.getDirector().getName()
+"*"+c.getDirector().getAge());
    }


}

 

运行结果:

gaoxiang*26



分享到:
评论

相关推荐

    Spring-Reference_zh_CN(Spring中文参考手册)

    2. Spring 2.0 的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 更简单的XML配置 2.2.2. 新的bean作用域 2.2.3. 可扩展的XML编写 2.3. 面向切面编程(AOP) 2.3.1. 更加简单的AOP XML配置 2.3.2. 对@AspectJ 切面的...

    Spring中文帮助文档

    5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. AOP代理 6.2. @AspectJ支持 6.2.1. 启用@AspectJ支持 6.2.2. 声明...

    Spring API

    5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. AOP代理 6.2. @AspectJ支持 6.2.1. 启用@AspectJ支持 6.2.2. 声明...

    Spring 2.0 开发参考手册

    18.3. 使用Spring提供的辅助类实现EJB组件 19. JMS 19.1. 简介 19.2. 使用Spring JMS 19.2.1. JmsTemplate 19.2.2. 连接工厂 19.2.3. (消息)目的地管理 19.2.4. 消息侦听容器 19.2.5. 事务管理 19.3. 发送...

    spring chm文档

    Spring Framework 开发参考手册 Rod Johnson Juergen Hoeller Alef Arendsen Colin Sampaleanu Rob Harrop ...18.3. 使用Spring提供的辅助类实现EJB组件 19. JMS 19.1. 简介 19.2. 使用Spring JMS ...

    Spring需要的Jar包

    4. `org.springframework.web-3.0.5.RELEASE.jar`:这个包提供了Web相关的辅助工具类和抽象,如HttpServletRequest和HttpServletResponse的包装器,以及Filter和Servlet的通用工具。 5. `org.springframework.jdbc-...

    浅谈Spring的属性编辑器的使用

    如果需要自定义转换逻辑,可以创建一个实现了`PropertyEditor`接口的类,并在Spring配置中注册它,或者通过`@Component`注解使其成为Spring管理的bean。 总的来说,Spring的属性编辑器是连接配置文件和JavaBean属性...

Global site tag (gtag.js) - Google Analytics