Spring自定义属性编辑器及原理解释.md

简介: Spring自定义属性编辑器及原理解释.md

bean的自动装配解释


  • 之前有构造注入和设值注入,但是也是手动的
  • autowire =”byname”
  • 这里要注意自动装配的话,不能装配特殊类型,比如日期类型(要用自定义属性编辑器


手动解决方式


我们知道的普通是这样解决的:

<bean id="myBean" class="com.bean.myBean">
        <property name="date" ref="date"/>
    </bean>
    <bean id="date" class="java.util.Date">
    </bean>  


自动注入解决方式


但是要自动注入要用自定义属性编辑器

         

原理:类似于拦截器,当遇到map中需要过滤的类型时,就按照所配置的属性编辑器处理注入的值,这个值的类型是String类型的,由属性编辑器来决定转换类型。


    <!--自定义属性编辑    -->
    <bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">   <!--配置一个自定义编辑器-->  
        <property name="customEditors">
            <map>  
                <entry key="java.util.Date">  
                    <bean class="com.bean.DateTest">  
                        <property name="date" value="yyyy-mm-dd" />  <!--注入需要转换的格式,注入到DateTest 中-->  
                    </bean>  
                </entry>  
            </map>  
        </property>  
    </bean>  
    <bean id="md" class="com.bean.myBean">  
        <property name="date">  
            <value>2011-1-1</value>  
        </property>  
    </bean>  
package com.bean;
import java.beans.PropertyEditorSupport;
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class DateTest extends PropertyEditorSupport{
    private String date;//表示格式,是自动注入的
    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }
    @Override
    public void setAsText(String text) throws IllegalArgumentException {
        System.out.println("text:"+text);
         SimpleDateFormat sdf = new SimpleDateFormat(date);
        Date date = null;
        try {
            date = sdf.parse(text);//传的是字符串,解析为Date数据
            this.setValue(date);  
            } catch (ParseException e) {  
                e.printStackTrace();  
            }  
    }
}


相关文章
|
11天前
|
安全 Java 数据安全/隐私保护
Spring Security 6.x 一文快速搞懂配置原理
本文主要对整个Spring Security配置过程做一定的剖析,希望可以对学习Spring Sercurity框架的同学所有帮助。
44 5
Spring Security 6.x 一文快速搞懂配置原理
|
1天前
|
消息中间件 Java Maven
深入理解Spring Boot Starter:概念、特点、场景、原理及自定义starter
深入理解Spring Boot Starter:概念、特点、场景、原理及自定义starter
10 1
|
4天前
|
运维 Java 测试技术
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
9 3
|
4天前
|
运维 Java 关系型数据库
Spring运维之boot项目bean属性的绑定读取与校验
Spring运维之boot项目bean属性的绑定读取与校验
13 2
|
4天前
|
XML 运维 Java
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
11 1
|
9天前
|
Java 应用服务中间件 Spring
解析Spring Boot自动装配的原理与机制
解析Spring Boot自动装配的原理与机制
19 4
|
6天前
|
前端开发 Java 数据库连接
Spring的工作原理(一)简介
Spring的工作原理(一)简介
8 1
|
11天前
|
设计模式 网络安全 开发工具
|
15小时前
|
Java 机器人 测试技术
Spring Boot中的自定义注解应用
Spring Boot中的自定义注解应用
|
15小时前
|
安全 Java 机器人
Spring Boot中的自定义过滤器
Spring Boot中的自定义过滤器