Spring自定义属性编辑器及原理解释.md
- 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相关推荐
- Spring——自定义属性编辑器+Bean的生存范围+Bean的生命周期
一.自定义属性编辑器(一个类): 步骤: 1.写一个类,这个类继承PropertyEditorSupport. 2.重写setAsText()方法. 3.在bean.xml文件中添加属性编辑器的bea ...
- Spring自定义属性编辑器PropertyEditorSupport + 使用CustomEditorConfigurer注册属性编辑器...
1.通过继承JDK 中的 java.beans.PropertyEditorSupport 类来实现自己的编辑器类 ,该类用于实现将String 类型转换成您需要的数据类型.然后我们只需要在Sprin ...
- spring中自定义属性编辑器CustomEditorConfigurer
http://gundumw100.iteye.com/blog/574440 什么是属性编辑器,作用? * 自定义属性编辑器,spring配置文件中的字符串转换成相应的对象进行注入 spring已经 ...
- Spring Boot进阶:原理、实战与面试题分析
在当下的互联网应用中,业务体系日益复杂,业务功能也在不断地变化.以典型的电商类应用为例,其背后的业务功能复杂度以及快速迭代要求的开发速度,与5年前的同类业务系统相比,面临着诸多新的挑战. 这些挑战中核 ...
- 学习第三篇:【SpringBoot-Labs】芋道 Spring Boot 自动配置原理
本周(8.21-8.27)将学习芋道 Spring Boot的以下文章: 8.21: 快速入门 8.22:Spring Boot 自动配置原理 .Jar 启动原理 8.23:调试环境. 热部署入门.消 ...
- Spring 实现Aop的原理与示例
Spring 实现Aop的原理 Spring Aop AOP(Aspect Oriented Programming),意思为:面向切面编程,是一种通过预编译方式和运行期间动态代理实现程序功能的统一维 ...
- RxJava RxPermissions 动态权限 简介 原理 案例 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- Spring Boot自动配置原理、实战
Spring Boot自动配置原理 Spring Boot的自动配置注解是@EnableAutoConfiguration, 从上面的@Import的类可以找到下面自动加载自动配置的映射. org.s ...
- spring security加载原理(基于springboot)
一.基本架构 二.自动配置原理 依据 Spring Boot 自动配置原理,其会自动加载spring-boot-autoconfigure.jar中/META-INF/spring.factories ...
最新文章
- 浅谈sql中的in与not in,exists与not exists的区别以及性能分析
- svm预测结果为同一个值_实战:用SVM算法进行乳腺癌预测
- vue 脚手架测试环境_关于单元测试脚手架的几点思考
- SpringBoot 手动配置 @Enable 的秘密
- OpenXava 4.5支持JPA继承映射和自动化业务逻辑
- mysql 主备心跳监测配置_mysql主备配置
- AndroidStudio遇到的问题
- 让自己的软件出现在选择打开列表的软件中
- 暴雨公式 matlab,对雨水暴雨强度公式中降雨历时分解.pdf
- 数字频率系数测试软件,sia smaartlive7
- python打开已有docx文档_python-docx读取doc,docx文档
- 阿里云服务器使用步骤详解
- 云服务器申请退款,腾讯云服务器申请自助退款的操作流程及图文教程
- 计算机专业考研410分,从一个中专生到考研410分的历程
- 嵌入式编程 while(1)的妙用!
- html虚线垂直居中,css-虚线边框滚动效果
- Playbooks 简介
- C#程序设计之windows应用程序设计基础
- 微软“黑屏血案”的真相
- 您如何用leetcode进行面试很不好
热门文章
- php表单验证代码实例,PHP表单验证实例代码-三体教程在线编辑器
- java的连接 初始化_java类从加载、连接到初始化过程详解
- easypoi 大数据 百万_scrapy 解决爬虫IP代理池,百万大数据轻松爬取。
- java中typeof_深入剖析JavaScript中的数据类型判断(typeof instanceof prototype.constructor)...
- mysql最大字段数_mysql最大字段数量及 varchar类型总结
- 因果推断笔记——python 倾向性匹配PSM实现示例(三)
- Jupyter notebook最简原型界面设计 - ipywidgets与lineup_widget
- mapxtreme java 版本分布式部署。自己的应用和mapxtreme渲染器不在同一台机器上
- React Native在Android当中实践(一)——背景介绍
- saltstack系列~第四篇