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();  
            }  
    }
}


相关文章
|
2月前
|
XML Java 开发者
Spring Boot开箱即用可插拔实现过程演练与原理剖析
【11月更文挑战第20天】Spring Boot是一个基于Spring框架的项目,其设计目的是简化Spring应用的初始搭建以及开发过程。Spring Boot通过提供约定优于配置的理念,减少了大量的XML配置和手动设置,使得开发者能够更专注于业务逻辑的实现。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,为开发者提供一个全面的理解。
40 0
|
13天前
|
XML Java 数据格式
使用idea中的Live Templates自定义自动生成Spring所需的XML配置文件格式
本文介绍了在使用Spring框架时,如何通过创建`applicationContext.xml`配置文件来管理对象。首先,在resources目录下新建XML配置文件,并通过IDEA自动生成部分配置。为完善配置,特别是添加AOP支持,可以通过IDEA的Live Templates功能自定义XML模板。具体步骤包括:连续按两次Shift搜索Live Templates,配置模板内容,输入特定前缀(如spring)并按Tab键即可快速生成完整的Spring配置文件。这样可以大大提高开发效率,减少重复工作。
使用idea中的Live Templates自定义自动生成Spring所需的XML配置文件格式
|
13天前
|
设计模式 XML Java
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
本文详细介绍了Spring框架的核心功能,并通过手写自定义Spring框架的方式,深入理解了Spring的IOC(控制反转)和DI(依赖注入)功能,并且学会实际运用设计模式到真实开发中。
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
|
20天前
|
NoSQL Java Redis
Spring Boot 自动配置机制:从原理到自定义
Spring Boot 的自动配置机制通过 `spring.factories` 文件和 `@EnableAutoConfiguration` 注解,根据类路径中的依赖和条件注解自动配置所需的 Bean,大大简化了开发过程。本文深入探讨了自动配置的原理、条件化配置、自定义自动配置以及实际应用案例,帮助开发者更好地理解和利用这一强大特性。
73 14
|
2月前
|
Java 开发者 Spring
Spring AOP 底层原理技术分享
Spring AOP(面向切面编程)是Spring框架中一个强大的功能,它允许开发者在不修改业务逻辑代码的情况下,增加额外的功能,如日志记录、事务管理等。本文将深入探讨Spring AOP的底层原理,包括其核心概念、实现方式以及如何与Spring框架协同工作。
|
2月前
|
安全 Java 应用服务中间件
如何将Spring Boot应用程序运行到自定义端口
如何将Spring Boot应用程序运行到自定义端口
65 0
|
3月前
|
Java Spring 容器
Spring底层原理大致脉络
Spring底层原理大致脉络
|
3月前
|
Java Spring 容器
Spring IOC、AOP与事务管理底层原理及源码解析
【10月更文挑战第1天】Spring框架以其强大的控制反转(IOC)和面向切面编程(AOP)功能,成为Java企业级开发中的首选框架。本文将深入探讨Spring IOC和AOP的底层原理,并通过源码解析来揭示其实现机制。同时,我们还将探讨Spring事务管理的核心原理,并给出相应的源码示例。
153 9
|
3月前
|
XML 前端开发 Java
拼多多1面:聊聊Spring MVC的工作原理!
本文详细剖析了Spring MVC的工作原理,涵盖其架构、工作流程及核心组件。Spring MVC采用MVC设计模式,通过DispatcherServlet、HandlerMapping、Controller和ViewResolver等组件高效处理Web请求。文章还探讨了DispatcherServlet的初始化和请求处理流程,以及HandlerMapping和Controller的角色。通过理解这些核心概念,开发者能更好地构建可维护、可扩展的Web应用。适合面试准备和技术深挖
52 0
|
3月前
|
负载均衡 Java API
Spring Cloud原理详解
Spring Cloud原理详解
84 0