• bean的自动装配解释
  • 手动解决方式
  • 自动注入解决方式

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

转载于:https://www.cnblogs.com/pzqu/p/9457635.html

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

  1. Spring——自定义属性编辑器+Bean的生存范围+Bean的生命周期

    一.自定义属性编辑器(一个类): 步骤: 1.写一个类,这个类继承PropertyEditorSupport. 2.重写setAsText()方法. 3.在bean.xml文件中添加属性编辑器的bea ...

  2. Spring自定义属性编辑器PropertyEditorSupport + 使用CustomEditorConfigurer注册属性编辑器...

    1.通过继承JDK 中的 java.beans.PropertyEditorSupport 类来实现自己的编辑器类 ,该类用于实现将String 类型转换成您需要的数据类型.然后我们只需要在Sprin ...

  3. spring中自定义属性编辑器CustomEditorConfigurer

    http://gundumw100.iteye.com/blog/574440 什么是属性编辑器,作用? * 自定义属性编辑器,spring配置文件中的字符串转换成相应的对象进行注入 spring已经 ...

  4. Spring Boot进阶:原理、实战与面试题分析

    在当下的互联网应用中,业务体系日益复杂,业务功能也在不断地变化.以典型的电商类应用为例,其背后的业务功能复杂度以及快速迭代要求的开发速度,与5年前的同类业务系统相比,面临着诸多新的挑战. 这些挑战中核 ...

  5. 学习第三篇:【SpringBoot-Labs】芋道 Spring Boot 自动配置原理

    本周(8.21-8.27)将学习芋道 Spring Boot的以下文章: 8.21: 快速入门 8.22:Spring Boot 自动配置原理 .Jar 启动原理 8.23:调试环境. 热部署入门.消 ...

  6. Spring 实现Aop的原理与示例

    Spring 实现Aop的原理 Spring Aop AOP(Aspect Oriented Programming),意思为:面向切面编程,是一种通过预编译方式和运行期间动态代理实现程序功能的统一维 ...

  7. RxJava RxPermissions 动态权限 简介 原理 案例 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  8. Spring Boot自动配置原理、实战

    Spring Boot自动配置原理 Spring Boot的自动配置注解是@EnableAutoConfiguration, 从上面的@Import的类可以找到下面自动加载自动配置的映射. org.s ...

  9. spring security加载原理(基于springboot)

    一.基本架构 二.自动配置原理 依据 Spring Boot 自动配置原理,其会自动加载spring-boot-autoconfigure.jar中/META-INF/spring.factories ...

最新文章

  1. 浅谈sql中的in与not in,exists与not exists的区别以及性能分析
  2. svm预测结果为同一个值_实战:用SVM算法进行乳腺癌预测
  3. vue 脚手架测试环境_关于单元测试脚手架的几点思考
  4. SpringBoot 手动配置 @Enable 的秘密
  5. OpenXava 4.5支持JPA继承映射和自动化业务逻辑
  6. mysql 主备心跳监测配置_mysql主备配置
  7. AndroidStudio遇到的问题
  8. 让自己的软件出现在选择打开列表的软件中
  9. 暴雨公式 matlab,对雨水暴雨强度公式中降雨历时分解.pdf
  10. 数字频率系数测试软件,sia smaartlive7
  11. python打开已有docx文档_python-docx读取doc,docx文档
  12. 阿里云服务器使用步骤详解
  13. 云服务器申请退款,腾讯云服务器申请自助退款的操作流程及图文教程
  14. 计算机专业考研410分,从一个中专生到考研410分的历程
  15. 嵌入式编程 while(1)的妙用!
  16. html虚线垂直居中,css-虚线边框滚动效果
  17. Playbooks 简介
  18. C#程序设计之windows应用程序设计基础
  19. 微软“黑屏血案”的真相
  20. 您如何用leetcode进行面试很不好

热门文章

  1. php表单验证代码实例,PHP表单验证实例代码-三体教程在线编辑器
  2. java的连接 初始化_java类从加载、连接到初始化过程详解
  3. easypoi 大数据 百万_scrapy 解决爬虫IP代理池,百万大数据轻松爬取。
  4. java中typeof_深入剖析JavaScript中的数据类型判断(typeof instanceof prototype.constructor)...
  5. mysql最大字段数_mysql最大字段数量及 varchar类型总结
  6. 因果推断笔记——python 倾向性匹配PSM实现示例(三)
  7. Jupyter notebook最简原型界面设计 - ipywidgets与lineup_widget
  8. mapxtreme java 版本分布式部署。自己的应用和mapxtreme渲染器不在同一台机器上
  9. React Native在Android当中实践(一)——背景介绍
  10. saltstack系列~第四篇