Spring自定义属性编辑器

本文详细介绍了如何在Spring中自定义属性编辑器,实现字符串转换为相应对象进行注入,包括定义属性编辑器的方法、注册过程及具体代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是属性编辑器,作用?
<wbr>* 自定义属性编辑器,spring配置文件中的字符串转换成相应的对象进行注入<br><wbr>spring已经有内置的属性编辑器,我们可以根据需求自己定义属性编辑器<br><wbr><br><wbr>* 如何定义属性编辑器?<br><wbr>* 继承PropertyEditorSupport类,覆写setAsText()方法,参见:UtilDatePropertyEditor.java<br><wbr>* 将属性编辑器注册到spring中,参见:applicationContext-editor.xml</wbr></wbr></wbr></wbr></wbr></wbr>

<wbr></wbr>

<wbr></wbr>

package com.bjsxt.spring;

import java.beans.PropertyEditorSupport;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;


public class UtilDatePropertyEditor extends PropertyEditorSupport {

<wbr>private String format="yyyy-MM-dd";<br><wbr><br><wbr>@Override<br><wbr>public void setAsText(String text) throws IllegalArgumentException<wbr> {<br><wbr><wbr>System.out.println("UtilDatePropertyEditor.saveAsText() -- text=" + text);<br><wbr><wbr><br><wbr><wbr>SimpleDateFormat sdf = new SimpleDateFormat(format);<br><wbr><wbr>try {<br><wbr><wbr><wbr>Date d = sdf.parse(text);<br><wbr><wbr><wbr>this.setValue(d);<br><wbr><wbr>} catch (ParseException e) {<br><wbr><wbr><wbr>e.printStackTrace();<br><wbr><wbr>}<br><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr>public void setFormat(String format) {<br><wbr><wbr>this.format = format;<br><wbr>}</wbr></wbr></wbr></wbr>

}

<wbr></wbr>

<wbr></wbr>

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
<wbr><wbr><wbr><wbr><wbr> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br><wbr><wbr><wbr><wbr><wbr> xmlns:aop="http://www.springframework.org/schema/aop"<br><wbr><wbr><wbr><wbr><wbr> xmlns:tx="http://www.springframework.org/schema/tx"<br><wbr><wbr><wbr><wbr><wbr> xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"&gt;<br><wbr><wbr><wbr><wbr> &lt;!-- 定义属性编辑器 --&gt;<wbr><wbr><wbr><wbr><wbr><br><wbr>&lt;bean id="customEditorConfigurer" class="org.springframework.beans.factory.config.CustomEditorConfigurer"&gt;<br><wbr><wbr>&lt;property name="customEditors"&gt;<br><wbr><wbr><wbr>&lt;map&gt;<br><wbr><wbr><wbr><wbr>&lt;entry key="java.util.Date"&gt;<br><wbr><wbr><wbr><wbr><wbr>&lt;bean class="com.bjsxt.spring.UtilDatePropertyEditor"&gt;<br><wbr><wbr><wbr><wbr><wbr><wbr>&lt;property name="format" value="yyyy-MM-dd"/&gt;<br><wbr><wbr><wbr><wbr><wbr>&lt;/bean&gt;<br><wbr><wbr><wbr><wbr>&lt;/entry&gt;<br><wbr><wbr><wbr>&lt;/map&gt;<br><wbr><wbr>&lt;/property&gt;<br><wbr>&lt;/bean&gt;<wbr><br><wbr><br><wbr>&lt;!--<br><wbr>&lt;bean id="utilDatePropertyEditor" class="com.bjsxt.spring.UtilDatePropertyEditor"&gt;&lt;/bean&gt;<br><wbr> --&gt;<br>&lt;/beans&gt;<br></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值