0

我正在尝试 DI 一个 Date 对象

这是xml文件的代码

<bean id="date" class="java.util.Date"/>
<bean id="obj"   class="com.Person.Implementor" autowire="byName">
    <property name="username"><value>Abc</value></property>
    <property name="password"><value>password</value></property>
</bean>

这是课程:

package com.Person;
import java.util.Date;
import org.springframework.beans.factory.annotation.Autowired;
public class Implementor {

String username;
String password;

Date date;

public Date getDate() {
    return date;
}

@Autowired
public void setDate(Date date) {
    this.date = date;
}

@Override
public String toString() {
    return "Implementor [username=" + username + ", password=" + password
            + ", date=" + date + "]";
}


public String getUsername() {
    return username;
}
public void setUsername(String username) {
    this.username = username;
}
public String getPassword() {
    return password;
}
public void setPassword(String password) {
    this.password = password;
}

}

但它似乎不起作用,日期参考在打印时似乎有 NULL 值,它适用于自定义创建的类,很难

更新:得到 Spring 支持表单的回复:http: //forum.springsource.org/showthread.php?127017-Dependancy-Injection- for-Date-Object&p=414519#post414519

“这是由 Spring 设计的。Spring 不会为“简单”属性(例如原语、字符串和日期)进行自动装配。但我认为您没有充分的理由使用 Date 类型自动装配 bean。“

4

2 回答 2

2

更新:得到 Spring 支持表单的回复:http: //forum.springsource.org/showthread.php?127017-Dependancy-Injection- for-Date-Object&p=414519#post414519

“这是由 Spring 设计的。Spring 不会为“简单”属性(例如原语、字符串和日期)进行自动装配。但我认为您没有充分的理由使用 Date 类型自动装配 bean。“

于 2012-06-01T17:43:36.750 回答
0

您的 spring 配置文件还有更多内容吗?因为您需要<context:annotation-config />激活执行自动装配的后处理器。

在 XML 中指定两个依赖项然后对第三个使用自动装配似乎很奇怪。在这种情况下,执行以下操作会更加一致:

<bean id="obj"   class="com.Person.Implementor" autowire="byName">
    <property name="username"><value>Abc</value></property>
    <property name="password"><value>password</value></property>
    <property name="date"><ref bean = "date"/></property>
</bean>
于 2012-05-31T17:14:57.527 回答