将java.sql.Time对象注入bean - spring xml依赖注入

时间:2017-06-22 16:46:03

标签: java xml spring dependency-injection

我需要使用基于xml的依赖注入将java.sql.Time对象注入Subject bean。

这是我的Subject类定义。

public class Subject{
    private java.sql.Time startedTime;
}

在Java代码中,这将是实现它的方法。

Subject subject = new Subject();
Time startedTime = Time.valueOf("HH:MM:SS");
subject.setStartedTime(startedTime);

但是现在我需要通过xml对Time bean中的Subject对象进行相同的注入

<bean id="startedTime" class="mx.com.project.Subject">
<property name="startedTime">
<!-- java.sql.Time injection-->
</property>
</bean>

我一直在网上寻找一段时间,但没有找到任何关于此的例子。通过使用Date

将格式化字符串Customer转换为"yyyy-MM-dd"对象,只需一个Date属性注入SimpleDateFormat.parse("yyyy-MM-dd")对象

这让我觉得应该有类似的方法将String转换为Time对象。这是我找到的例子。

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

    <bean id="dateFormat" class="java.text.SimpleDateFormat">
        <constructor-arg value="yyyy-MM-dd" />
    </bean>

    <bean id="customer" class="com.mkyong.common.Customer">
        <property name="date">
            <bean factory-bean="dateFormat" factory-method="parse">
                <constructor-arg value="2010-01-31" />
            </bean>
        </property>
    </bean>

</beans>

顺便说一句,the link to the above example

2 个答案:

答案 0 :(得分:1)

在对象中执行从String到Time的转换。

public class Subject
{
  private java.sql.Time startedTime;
  // blah.  your stuff.

  public void setStartedTimeValue(final String startedTimeValue)
  {
     startedTime = Time.valueof(startedTimeValue);
  }
}


<bean id="startedTime" class="mx.com.project.Subject">
  <property name="startedTimeValue" value="20:14:37"/>
</bean>

答案 1 :(得分:0)

这个问题的第一个正确答案。

    <property name="startedTime">
        <bean factory-method="valueOf" class="java.sql.Time">
            <constructor-arg value="16:00:00" />
        </bean>
    </property>