`
xuyuanshuaaa
  • 浏览: 393800 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

spring 日期类型的注入

 
阅读更多


利用属性编辑器完成Spring日期类型的注入

ApplicationContext.xml注入配置如下:



<bean id="bin" class="com.apj.client.Bin">

        <property name="strValue" value="FredKing" />

        <property name="dateValue" value="2011-01-09" />

     </bean>



下面的日期类型注入后读取出现类型转换错误,以下是jUnit的测试类:

import org.springframework.beans.factory.BeanFactory;

import org.springframework.context.support.ClassPathXmlApplicationContext;

 

import junit.framework.TestCase;

 

public class SpringUnitTest extends TestCase {

    private BeanFactory factory;

    @Override

    protected void setUp() throws Exception {

       factory = new ClassPathXmlApplicationContext("applicationContext.xml");

       super.setUp();

    }

    public void testSpring(){

       System.out.println("bin.strValue:"+((Bin)factory.getBean("bin")).getStrValue());

       System.out.println("bin.dateValue:"+((Bin)factory.getBean("bin")).getDateValue());

    }

}

下面是Bin类:

import java.util.Date;

 

public class Bin {

    private String strValue;

    private Date dateValue;

    public String getStrValue() {

       return strValue;

    }

    public void setStrValue(String strValue) {

       this.strValue = strValue;

    }

    public Date getDateValue() {

       return dateValue;

    }

    public void setDateValue(Date dateValue) {

       this.dateValue = dateValue;

    }

   

}

 


需要创建一个属性编辑器类继承PropertyEditorSupport:

import java.beans.PropertyEditorSupport;

import java.text.ParseException;

import java.text.SimpleDateFormat;

 

 

public class DatePropertyEditer extends PropertyEditorSupport {

    private String format = "yyyy-MM-dd";

    @Override

    public void setAsText(String text) throws IllegalArgumentException {

       SimpleDateFormat sdf = new SimpleDateFormat(format);

       try {

           this.setValue(sdf.parse(text));

       } catch (ParseException e) {

          

           e.printStackTrace();

       }     

    }

   

 

}


重写setAsText方法,将setValue方法设置格式化后的值。

最后配置一下ApplicationContext.xml如下

<bean id="customDateEditor" class="org.springframework.beans.factory.config.CustomEditorConfigurer">

        <property name="customEditors">

           <map>

               <entry key="java.util.Date">

                  <bean class="com.apj.client.DatePropertyEditer" />

               </entry>

           </map>

        </property>

     </bean>



如果需要把format一并注入,只需修改为以下配置即可:

<bean id="customDateEditor" class="org.springframework.beans.factory.config.CustomEditorConfigurer">

        <property name="customEditors">

           <map>

               <entry key="java.util.Date">

                  <bean class="com.apj.client.DatePropertyEditer" >

                      <property name="format" value="yyyy/MM/dd" />

                  </bean>

               </entry>

           </map>

        </property>

     </bean>


同时由于是setter注入,需要在DatePropertyEditer类中加入setFormat方法。
分享到:
评论

相关推荐

    Spring如何注入Date类型的变量

    在Spring框架中,注入Date类型的变量是一个常见的需求,特别是在处理日期和时间相关的业务逻辑时。这篇博客将探讨如何在Spring中有效地注入Date对象到bean的属性中。首先,我们需要了解Spring依赖注入的基本概念,它...

    spring各种属性的注入

    虽然这里使用的是`&lt;list&gt;`标签,但实际上Spring会自动将其转换为数组类型注入。 4. **Map** 类型注入: ```xml ``` 这里定义了一个键值对映射关系,并将其注入到了`mapValue`属性中。 5. **Date**...

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

    -- 测试Bean --&gt; &lt;bean id="datebean" class="com.springDemo1.Date类型注入.DateBean"&gt; &lt;property name="birthday" value="2015-12-31" /&gt; &lt;/bean&gt; &lt;/beans&gt; 方式3:使用SpEL表达式注入Date对象...

    Spring中属性注入详解

    1. 基本类型注入 对于像`int`和`String`这样的基本类型,Spring可以通过XML配置文件或Java配置类来直接注入。例如,对于Bean11中的intValue和strValue,我们可以在XML配置中这样设置: ```xml , Spring"/&gt; ```...

    Spring 依赖注入

    至于日期和字符串之间的转换,Spring提供了Converter和FormattingConverter接口,我们可以自定义实现这些接口,为Spring提供类型转换服务。例如,创建一个DateToStringConverter和StringToDateConverter,然后在配置...

    spring注解注入示例详解-(三)

    当Spring容器遇到一个带有`@Autowired`注解的字段或方法时,它会自动寻找类型匹配的bean进行注入。如果存在多个候选bean,可以通过指定`@Qualifier`来精确匹配。 ```java public class UserService { @Autowired ...

    Spring视频教程(1)

    此外,"009_Spring属性编辑器.avi"和"011_Spring属性编辑器_日期格式可配置_多文件读取方式.avi"将讲解Spring属性编辑器的用法,如何处理复杂类型的属性注入,如日期格式化和文件操作。 "010_上午内容回顾.avi"是对...

    spring技术

    例如,在日期类型绑定中,常见的日期格式“yyyy-MM-dd”可能无法被Spring MVC默认识别。为了处理这种情况,我们可以创建一个自定义的日期转换器,比如`MyDataBinding`类,该类实现了`WebBindingInitializer`接口。在...

    spring4.0框架demo

    3. 改进的类型安全:在Spring 4.0中,依赖注入(DI)更加类型安全,降低了因配置错误引发的问题。 4. 更强的Groovy支持:Spring 4.0增强了对Groovy的支持,允许在配置中使用Groovy脚本,提高了配置的可读性和可维护...

    spring4.2.0对应jdk1.8spring,springMVC所有依赖包以及文档

    Spring框架的核心是依赖注入(Dependency Injection,DI),它允许开发者在运行时通过容器来管理对象及其依赖关系,而不是在代码中硬编码这些依赖。这极大地提高了代码的可测试性和可维护性。在Spring 4.2.0中,这一...

    第十五章 Spring 类型转换(Type Conversion)1

    Spring 内建了一套全面的类型转换器,覆盖了许多常见的类型转换场景,例如日期、数字、枚举等。这些转换器位于 `org.springframework.core.convert.converter` 包下,可以满足大部分应用的转换需求。然而,当遇到...

    Spring-5.0.0-官方中文文档

    在Spring 5中,依赖注入得到了进一步优化,支持了更多类型的构造函数注入。 2. ** reactive programming**:Spring 5引入了对Reactive Streams的支持,这是Java 9中的一个新API,用于处理高并发、非阻塞式I/O。...

    spring framewok 4参考文档

    此外,Spring还提供了格式化功能,支持日期和时间格式化的配置,以及字段的格式化处理。 #### Spring表达式语言-SpEL SpEL是Spring Expression Language的缩写,它是用于在运行时查询和操作对象图的表达式语言。...

    Spring4.3完整官网下载的完整包

    1. 改进的类型安全的构造函数注入:Spring4.3引入了更强大的构造函数注入,允许在没有显式注解的情况下实现类型安全的自动装配。 2. `@Conditional`增强:这个注解允许你在特定条件下注册bean,增强了条件化配置的...

    spring源码阅读——1.spring-core-3.2.9

    7. **其他工具类**:除了以上主要组件,Spring Core还包含了大量实用工具类,如IO操作、字符串处理、日期时间操作等,这些都是在开发过程中经常需要用到的。 阅读Spring Core的源码可以帮助我们更深入地理解其工作...

    Spring中特殊数据类型的处理

    在Spring中,处理日期类型时,我们可能遇到字符串与日期之间的转换问题。有两种主要方法来解决这个问题: a. **自定义类型转换器**:创建一个类继承`PropertyEditorSupport`,并覆盖`setAsText`方法,例如`...

    spring4.x________

    1. 依赖注入:Spring 4.x的依赖注入特性允许开发者声明性地管理对象及其依赖关系,提高了代码的可测试性和可维护性。 2. 模块化:Spring框架由多个模块组成,如Core Container、Data Access/Integration、Web等,...

    spring 4.2.5 jar包 及 注解

    2. 更好的类型安全:在4.2.x系列版本中,Spring增强了类型安全的依赖注入,降低了因类型转换错误导致的问题。 3. 对Java 8的支持:Spring 4.2.5全面支持Java 8,包括日期和时间API,函数式编程接口等,让开发者能够...

    spring-4.1.2框架

    在4.1.2版本中,这一特性得到了进一步优化,支持更多种类型的注入方式,包括构造函数注入、setter注入和基于注解的注入。 2. **AOP(面向切面编程,Aspect-Oriented Programming)**: Spring的AOP模块允许我们在...

Global site tag (gtag.js) - Google Analytics