`
esffor
  • 浏览: 1367696 次
  • 性别: 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必学的Java基础知识(3)—PropertyEditor

    - `CustomEditor`:Spring提供了一个便利的`CustomEditor`类,它是`PropertyEditorSupport`的子类,简化了自定义`PropertyEditor`的过程。 - `ConversionService`:Spring 3.0引入了`ConversionService`,这是一个...

    spring2.0(三) 自定义属性编辑器

    当Spring尝试将配置文件中的属性值注入到Bean的属性时,如果该属性类型与配置值的类型不匹配,Spring会查找合适的PropertyEditor来完成类型转换。默认情况下,Spring提供了许多内置的PropertyEditor,例如将字符串...

    spring 自定义属性编辑器

    在Spring框架中,属性编辑器(PropertyEditor)是一种强大的工具,允许我们自定义类型转换过程。当我们需要将字符串形式的数据转换为Java对象时,属性编辑器就发挥了关键作用。例如,从请求参数或配置文件中读取的...

    spring中的自定义属性编辑器

    1. **创建编辑器类**:首先,你需要创建一个类并实现`java.beans.PropertyEditor`接口。这个接口包含两个主要方法:`setAsText()`和`getAsText()`。`setAsText()`方法负责将字符串转换为对象,而`getAsText()`则将...

    06 源码分析-spring自定义标签解析过程

    在Spring框架中,自定义标签的解析过程是一个关键的组件,它使得开发者能够通过XML配置文件以更加直观和简洁的方式声明Bean的定义。本节将深入探讨Spring 5.2.9版本中自定义标签的解析机制,以及背后的源码实现。 ...

    Spring学习笔记(11)----自定义属性编辑器

    一种是在Spring的bean定义中使用`@InitBinder`注解,通常在控制器类中使用,这样只会影响到该控制器的属性绑定。另一种是在全局范围内注册,通过实现`WebDataBinderFactory`接口并注入到Spring容器中,这样会影响到...

    spring-reference.pdf

    3. **Bean的初始化与销毁**:Spring支持自定义Bean的初始化和销毁方法,这些方法可以在Bean的生命周期中被自动调用,以执行必要的设置或清理工作。 六、Bean的属性与依赖关系 1. **属性设置**:可以通过setter方法...

    SpringMVC之DataBinding和Validation--Validator,PropertyEditor,Converter,Formatter

    `Converter`和`Formatter`在Spring 3.0之后引入,它们在`PropertyEditor`之上提供了更现代和灵活的数据转换机制。`Converter`负责将一种类型转换为另一种类型,而`Formatter`则负责将类型转换为字符串(用于显示)...

    Spring Framework 3.0.0.4

    4. **PropertyEditor**:Spring利用PropertyEditor来处理bean属性的类型转换,例如将字符串转换为日期或其他复杂类型。 5. **BeanPostProcessor**:这是一个接口,允许用户自定义bean实例化和初始化过程中的行为,...

    Spring Boot 2.0 配置属性自定义转换的方法

    Spring Boot 2.0 配置属性自定义转换的方法 在 Spring Boot 2.0 中,配置属性自定义转换是一个非常重要的功能,能够满足用户的个性化需求。在本文中,我们将介绍如何实现配置属性自定义转换,包括使用 ...

    spring数据格式转换

    例如,如果我们有一个名为`PhoneNumberModel`的类,其属性`phoneNumber`需要以特定格式(如`010-12345678`)存储,我们可以编写一个自定义的`PropertyEditor`,重写`setAsText()`方法来解析和验证输入的字符串,然后...

    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 切面的...

    springmvc自定义属性编辑器和参数解析器

    在Spring MVC框架中,属性编辑器(PropertyEditor)和参数解析器(HandlerMethodArgumentResolver)是两个关键组件,用于处理数据转换和模型绑定的过程。它们是实现灵活性和扩展性的重要手段,尤其在处理用户输入...

    spring_FrameWork3.0

    - **PropertyEditor:** PropertyEditor 用于自定义 Bean 属性的类型转换规则,可以用于处理复杂的数据类型。 **3-4 节Spring表达式(SPEL)** - **SPEL 特性说明:** SPEL 支持对对象的属性进行查询和操作,可以...

    Spring个人学习笔记.pdf

    7. Spring的属性编辑器(PropertyEditor) 在处理Java对象时,经常需要将字符串转换成特定的日期格式。文档中提到了“UtilDatePropertyEditor”,这说明学习者在学习如何在Spring中自定义属性编辑器,以便进行复杂...

    详细的Spring配置和Spring Boot-外文翻译

    FactoryBean接口提供了一种机制,使你可以轻松地将自定义工厂与Spring的BeanFactory接口集成。 4. **使用JavaBeans PropertyEditors**:PropertyEditor接口是java.beans包中提供的标准接口。PropertyEditors用于...

    spring数据绑定.docx

    在`spring-beans`模块中,`PropertyEditorRegistrySupport`类是`PropertyEditor`注册的核心,它负责管理一系列默认的`PropertyEditor`实例,用于处理常见的数据类型转换。 在提供的源码片段中,我们可以看到`...

Global site tag (gtag.js) - Google Analytics