0

DateオブジェクトをDIしようとしています

これが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

あなたの春の設定ファイルにもっとありますか?<context:annotation-config />自動配線を行うポストプロセッサをアクティブにする必要があるためです。

XMLで2つの依存関係を指定してから、3番目に自動配線を使用するのは奇妙に思えます。この場合、次のようなことを行う方が一貫性があります。

<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 に答える