news 2026/9/25 10:06:23

(17)注入自定义Date

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
(17)注入自定义Date

我们前面说过,java.util.Date在Spring中被当做简单类型,简单类型在注入的时候可以直接使用value属性或value标签来完成。但我们之前已经测试过了,对于Date类型来说,采用value属性或value标签赋值的时候,对日期字符串的格式要求非常严格,必须是这种格式的:Mon Oct 10 14:30:26 CST 2022。其他格式是不会被识别的。如以下代码:

packagecom.powernode.spring6.bean;importjava.util.Date;/** * @author 动力节点 * @version 1.0 * @className Student * @since 1.0 **/publicclassStudent{privateDatebirth;publicvoidsetBirth(Datebirth){this.birth=birth;}@OverridepublicStringtoString(){return"Student{"+"birth="+birth+'}';}}
<beanid="studentBean"class="com.powernode.spring6.bean.Student"><propertyname="birth"value="Mon Oct 10 14:30:26 CST 2002"/></bean>
@TestpublicvoidtestDate(){ApplicationContextapplicationContext=newClassPathXmlApplicationContext("spring.xml");StudentstudentBean=applicationContext.getBean("studentBean",Student.class);System.out.println(studentBean);}

如果把日期格式修改一下:

<beanid="studentBean"class="com.powernode.spring6.bean.Student"><propertyname="birth"value="2002-10-10"/></bean>

这种情况下,我们就可以使用FactoryBean来完成这个骚操作。
编写DateFactoryBean实现FactoryBean接口:

packagecom.powernode.spring6.bean;importorg.springframework.beans.factory.FactoryBean;importjava.text.SimpleDateFormat;importjava.util.Date;/** * @author 动力节点 * @version 1.0 * @className DateFactoryBean * @since 1.0 **/publicclassDateFactoryBeanimplementsFactoryBean<Date>{// 定义属性接收日期字符串privateStringdate;// 通过构造方法给日期字符串属性赋值publicDateFactoryBean(Stringdate){this.date=date;}@OverridepublicDategetObject()throwsException{SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");returnsdf.parse(this.date);}@OverridepublicClass<?>getObjectType(){returnnull;}}

编写spring配置文件:

<beanid="dateBean"class="com.powernode.spring6.bean.DateFactoryBean"><constructor-argname="date"value="1999-10-11"/></bean><beanid="studentBean"class="com.powernode.spring6.bean.Student"><propertyname="birth"ref="dateBean"/></bean>
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/24 20:19:13

半吊子投标人太让人崩溃了

公司新来的投标专员&#xff0c;一个月了连份像样的标书都写不好&#xff0c;整理了些实用干货&#xff0c;建议萌新直接收藏&#xff01;一、什么是标书标书就是想承接项目&#xff08;比如工程、采购&#xff09;的单位&#xff0c;给招标方提交的 “实力 承诺” 文件。核心…

作者头像 李华
网站建设 2026/9/24 23:27:19

一文带你了解华为云认证详情

&#x1f4a5;什么是华为职业认证&#xff1f;华为职业认证覆盖ICT全领域&#xff0c;致力于提供领先的人才培养体系和认证标准&#xff0c;培养数字化时代的新型ICT人才&#xff0c;构建良性的ICT人才生态报名预约&#xff1a;用华为账号登录Pearson VUE官网/ 线下考试中心预约…

作者头像 李华
网站建设 2026/9/25 7:20:10

[鸿蒙2025领航者闯关]HarmonyOS应用启动慢优化实战

问题描述 应用启动慢影响用户体验: 冷启动时间 >3 秒白屏时间过长首屏渲染慢 关键字:启动优化、性能优化、冷启动、白屏优化 解决方案 1. 启动性能优化策略 /*** EntryAbility优化*/ export default class EntryAbility extends UIAbility {onCreate(want: Want, launchPara…

作者头像 李华
网站建设 2026/9/25 3:08:32

图灵机:一台“想象中的机器”,如何定义了计算的边界?

图灵机&#xff1a;一台“想象中的机器”&#xff0c;如何定义了计算的边界&#xff1f;在计算机科学的世界里&#xff0c;有一台从未被真正建造出来的机器&#xff0c;却被誉为“所有现代计算机的理论祖先”。它没有芯片、没有屏幕&#xff0c;甚至不需要电力——它只存在于纸…

作者头像 李华