商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Spring注入Date类型的三种方法总结

Spring注入Date类型的三种方法总结

  发布于2026-07-22 阅读(0)

扫一扫,手机访问

Spring注入Date类型的三种方法总结

先说说问题:Spring容器在处理依赖注入时,对于基本类型和String类型都能自动转换,但遇到ja va.util.Date就得手动搭把手了。下面整理了三种常见的实现方式,代码和配置直接可用。

测试Bean:

public class DateBean {   private Date birthday;    public Date getBirthday() {     return birthday;   }    public void setBirthday(Date birthday) {     this.birthday = birthday;   } } 

方式1:利用SimpleDateFormat的构造方法注入

第一种方法,利用SimpleDateFormat,直接在构造方法层面上做文章。通过配置一个日期格式bean,再调用它的parse方法,把字符串转成Date。看配置文件:

                                                       

方式2:纯配置,先自定义CustomDateEditor,再转换类型

第二种方法,走的是纯配置路线,得先自定义一个CustomDateEditor,然后再让Spring来帮忙转换。这里要注意,CustomEditorConfigurer是全局配置,之后所有Date类型的属性都会自动走这个转换规则。

                                                                                                                    

方式3:先用一个类重写PropertyEditorSupport的setAsText方法,再在配置文件中配置转换类型

第三种方法,本质上跟第二种差不多,但更灵活一些:自己写一个转换器类,继承PropertyEditorSupport,重写setAsText方法。这样一来,转换逻辑完全可控,比如可以自定义格式,甚至做更复杂的校验。

public class MyDatePropertyEditor extends PropertyEditorSupport {   private String format;    public String getFormat() {     return format;   }    public void setFormat(String format) {     this.format = format;   }    // text为需要转换的值,当为bean注入的类型与编辑器转换的类型匹配时就会交给setAsText方法处理   public void setAsText(String text) throws IllegalArgumentException {     SimpleDateFormat sdf = new SimpleDateFormat(format);     try {       this.setValue(sdf.parse(text));     } catch (ParseException e) {       e.printStackTrace();     }   } } 
                                                                                               

测试代码:

public class DateTest {   @Test   public void testName() throws Exception {          ApplicationContext context = new ClassPathXmlApplicationContext(         "applicationContext.xml");          DateBean bean = (DateBean) context.getBean("datebean");     System.out.println(bean.getBirthday());   } } 

以上就是三种常用的Spring注入Date类型的方法,从简单的工厂方法到全局的自定义编辑器,再到灵活的自实现转换器,可以根据实际场景选择。希望这个整理对你有帮助。

本文转载于:https://www.jb51.net/article/125812.htm 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注