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

最新文章

  1. Android Studio使用时源码到处报红色警告,运行时又没错
  2. 用浏览器(支持WebSocket)和node-inspector 调试后端(CoffeeScript,Typescript)代码
  3. Java 枚举类
  4. DF与EF的区别
  5. AJAX 小实例(转摘)
  6. 简单的mvc之三:灵活的路由(上)
  7. Python/MySQL(一、基础)
  8. python 要掌握面向对象,你得会做这些题吗?
  9. Daily record-December
  10. 20175213《Java程序设计》实验二Java面向对象程序设计实验报告
  11. [转]WINDOWS服务器安全加固实战(WINDOWS SERVER 2008 R2和WINDOWS SERVER 2012)
  12. 【Redis】Redis的常规操作命令
  13. vortex
  14. Linux内核设计第七周学习总结 Linux内核如何装载和启动一个可执行程序
  15. 【mysql】mysql front 提示Access violation at address 010C9CD0 in module ‘mysql-front.exe’
  16. 【原】[UIImage imageWithContentsOfFile:]引发的图片无法显示的问题
  17. PHP 中提示undefined index如何解决(多种方法)
  18. Codeforces 576D. Flights for Regular Customers(倍增floyd+bitset)
  19. SICP第三章题解
  20. 一步一步部署WPF浏览器应用程序

热门文章

  1. Excel催化剂开源第44波-窗体在Show模式下受Excel操作影响变为最小化解决方式
  2. java:选择排序法对数组排序
  3. Flask项目常见面试问题
  4. MySQL 5.7和8.0性能测试
  5. 为何出现了trx_mysql_thread_id为0 的事务是什么
  6. LinkedList实现类
  7. springBoot-mongodb
  8. Java 添加、验证PDF 数字签名
  9. Docker 容器基本操作[Docker 系列-2]
  10. 为什么for循环可以遍历list:Python中迭代器与生成器