10

この簡単な例を考えてみましょう-

public class Person
 {
    private String name;
    private Date dateOfBirth;

    // getters and setters here...
 }

PersonをSpringBeanとして初期化するために、次のように書くことができます。

<bean id = "Michael" class = "com.sampleDomainName.Person">
<property name = "name" value = "Michael" />
</bean>

しかし、上記のBean定義では、dateOfBirthをどのように設定できますか?

たとえば。dateOfBirthを次のように設定したい

1998-05-07
4

4 に答える 4

7

他のPOJOと同じように扱います(つまり)

<property name="dateOfBirth">
  <bean class="java.util.Date" />
</property>

明示的な値(1975-04-10など)を使用する必要がある場合は、他のコンストラクターの1つを呼び出すだけです(ただし、year-month-dayを使用するコンストラクターは非推奨です)。また、 Springがすでにロールしている明示的なものを使用することもできますjava.beans.PropertyEditor(セクション6.4.2を参照してください。独自のエディターを作成し、独自のタイプに登録できることに注意してください)。構成にCustomEditorConfigurerを登録する必要があります。

<bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
  <property name="customEditors">
    <map>
      <entry key="java.util.Date" 
             value="org.springframework.beans.propertyeditors.CustomDateEditor"/>
    </map>
  </property> 
</bean>

次に、データは次のようになります。

<property name="dateOfBirth" value="1975-04-10" />

これは実際には瞬間的なものであるため、生年月日を格納するのに適切なデータ型Dateではないことを付け加えるかもしれません。Jodaを見て、クラスを使用することをお勧めします。DateLocalDate

于 2012-06-25T22:36:41.653 に答える
3

ここに記載されている回答の1つは便利ですが、追加情報が必要です。CustomDateEditorのコンストラクター引数を指定する必要があります。

<bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
  <property name="customEditors">
    <map>
      <entry key="java.util.Date"> <ref local = "customDateEditor" /> 
      </entry> 
    </map>
  </property> 
</bean>

<bean id = "customDateEditor" class="org.springframework.beans.propertyeditors.CustomDateEditor">
    <constructor-arg>
      <bean class="java.text.SimpleDateFormat">
          <constructor-arg value="yyyy-MM-dd" />
       </bean>
    </constructor-arg>
    <constructor-arg value="true" /> 
</bean>

今、私たちはできる

<property name="dateOfBirth" value="1998-05-07" />
于 2012-06-28T17:07:17.303 に答える
1

SpringがBeanプロパティに日付を注入– CustomDateEditor

このペーパーでは、2つの提案をします。

  1. ファクトリービーン
  2. CustomDateEditor

CustomDateEditorはSpring4.0以降ではサポートされておらず、Factory Beanは使いやすいため、「FactoryBean」をお勧めします。

<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>
于 2015-09-14T02:39:44.990 に答える
0

CustomDateEditorを使用します。春の頃から春になりました。

于 2012-06-25T22:37:42.723 に答える