在我们注入属性时,遇到是日期类型,如果按普通属性去注入,则会报错,那我们该怎么解决?解决办法:自定义属性编辑器。
什么是属性编辑器,作用?
自定义属性编辑器,spring配置文件中的字符串转换成相应的对象进行注入spring已经有内置的属性编辑器,我们可以根据需求自己定义属性编辑器。
步骤:
1、 定义一个属性编辑器必须继承java.beans.PropertyEditorSupport
2、 在配置文件配置上我们定义的属性编辑器
下面我们来做一个java.util.Date属性编辑器,代码如下:
定义一个属性编辑器UtilDatePropertyEditor:
/**
* java.util.Date属性编辑器
*/
public class UtilDatePropertyEditor extends PropertyEditorSupport {
private String format="yyyy-MM-dd";
@Override
public void setAsText(String text)
throws IllegalArgumentException {
SimpleDateFormat sdf = new SimpleDateFormat(format);
try {
Date d = sdf.parse(text);
this.setValue(d);
} catch (ParseException e) {
e.printStackTrace();
}
}
public void setFormat(String format) {
this.format = format;
}
}
配置文件applicationContext.xml
<!-- 定义属性编辑器 -->
<bean id="customEditorConfigurer"
class="org.springframework.beans.factory.config.CustomEditorConfigurer">
<property name="customEditors">
<map>
<entry key="java.util.Date">
<bean class="spring.UtilDatePropertyEditor">
<property name="format" value="yyyy-MM-dd"/>
</bean>
</entry>
</map>
</property>
</bean>
以后我们就可以为java.util.Date进行注入,和普通属性一样使用,测试代码(略)
分享到:
相关推荐
Spring MVC--自定义拦截器Spring MVC--13.自定义拦截器Spring MVC--13.自定义拦截器Spring MVC--13.自定义拦截器Spring MVC--13.自定义拦截器Spring MVC--13.自定义拦截器Spring MVC--13.自定义拦截器
NULL 博文链接:https://coolszy.iteye.com/blog/522095
Spring MVC--9.自定义拦截器、异常处理
spring-cloud-gateway-自定义限流DEMO,自己编写的限流DEMO,实际生产用的很好。
spring中的自定义属性编辑器,是我博客中的源代码,spring中的自定义属性编辑器,是我博客中的源代码
NULL 博文链接:https://wooden-baby.iteye.com/blog/506838
spring源码缺失jar。spring-cglib-repack-3.2.5.jar,spring-objenesis-repack-2.6.jar
参照阿里druid个人整理druid-spring-boot-starter可运行demo,细节方面自己完善
spring源码导入SpringObjenesis类报错解决,缺少jar包spring-cglib-repack-3.2.0.jar和spring-objenesis-repack-2.1.jar
自定义的spring-boot的hbase starter,为hbase的query和更新等操作提供简易的api并集成spring-boot的auto configuration
NULL 博文链接:https://yxwang0615.iteye.com/blog/969360
spring security的学习-3. 自定义数据库表结构
spring-aop-4.1.6.RELEASE.jar spring-aspects-4.1.6.RELEASE.jar spring-beans-4.1.6.RELEASE.jar spring-context-4.1.6.RELEASE.jar spring-context-support-4.1.6.RELEASE.jar spring-core-4.1.6.RELEASE.jar ...
Spring-Security3.0自定义表结构
包含2个idea类型的java项目,spring-boot-08-starter是starter的定义,spring-boot-08-starter-test是新starter的应用
Spring-data-redis 1.7.6 & source源码
spring-context-3.2.4.RELEASE.jar spring-core-3.2.4.RELEASE.jar spring-beans-3.2.4.RELEASE.jar spring-test-3.2.4.RELEASE.jar spring-web-3.2.4.RELEASE.jar spring-aop-3.2.4.RELEASE.jar spring-webmvc-...
主要介绍了spring-redis-session 自定义 key 和过期时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2018-02-08从git_hub上拉取的Spring源码打成的jar,构建Spring-beans5.0以上源码所缺失的两个jar包spring-cglib-repack-3.2.6.jar,spring-objenesis-repack-2.6.jar
spring data jpa的包。spring-data-commons-1.8.0.RELEASE.jar