Spring教程 - 彈簧集屬性

2018-01-09 19:06 更新

Spring教程 - 彈簧集屬性


我們可以將值或值列表填充到Spring xml配置文件中定義的Java bean。

我們可以將值或值列表填充到Spring xml配置文件中定義的Java bean。...

Java Bean

為了展示如何使用xml配置文件來填充集合屬性,我們定義了一個具有四個集合屬性的Customer對象。

package com.www.o2fo.common;

import java.util.HashSet;
import java.util.Set;

public class Customer {
  private Set<Object> sets = new HashSet<Object>();

  public Set<Object> getSets() {
    return sets;
  }

  public void setSets(Set<Object> sets) {
    this.sets = sets;
  }

  public String toString() {
    return sets.toString();
  }
}

Person Java Bean

package com.www.o2fo.common;

public class Person {
  private String name;
  private int age;
  private String address;

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public int getAge() {
    return age;
  }

  public void setAge(int age) {
    this.age = age;
  }

  public String getAddress() {
    return address;
  }

  public void setAddress(String address) {
    this.address = address;
  }

  @Override
  public String toString() {
    return "Person [name=" + name + ", age=" + age + ", address=" + address
        + "]";
  }
  
}


以下代碼顯示如何將數(shù)據(jù)填充到j(luò)ava.util.Set類型化屬性。

代碼填充三個值。 第一個是硬編碼值1.第二個是一個bean參考。 我們必須在某處定義PersonBean,以便在此處使用它。 第三個是bean定義與屬性設(shè)置。

...
<property name="sets">
    <set>
      <value>1</value>
      <ref bean="PersonBean" />
      <bean class="com.www.o2fo.common.Person">
        <property name="name" value="java2sSet" />
        <property name="address" value="address" />
        <property name="age" value="28" />
      </bean>
    </set>
</property>
...


例子

Full Spring的bean配置文件。

<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="CustomerBean" class="com.www.o2fo.common.Customer">
    <!-- java.util.Set -->
    <property name="sets">
      <set>
        <value>1</value>
        <ref bean="PersonBean" />
        <bean class="com.www.o2fo.common.Person">
          <property name="name" value="java2sSet" />
          <property name="address" value="address" />
          <property name="age" value="28" />
        </bean>
      </set>
    </property>
  </bean>
  <bean id="PersonBean" class="com.www.o2fo.common.Person">
    <property name="name" value="java2s1" />
    <property name="address" value="address 1" />
    <property name="age" value="28" />
  </bean>
</beans>

下面是加載和運(yùn)行配置的代碼。

package com.www.o2fo.common;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App 
{
    public static void main( String[] args )
    {
      ApplicationContext context = new ClassPathXmlApplicationContext("SpringBeans.xml");
      Customer cust = (Customer)context.getBean("CustomerBean");
      System.out.println(cust);
    }
}

輸出

Customer [
sets=[
1, 
Person [address=address 1, age=28, name=java2s1], 
Person [address=address, age=28, name=java2sSet]]
]

Download Java2s_Spring_Set_Properties.zip

SetFactoryBean

輸出...

以下代碼顯示了如何使用SetFactoryBean。

這里是Java bean類。

package com.www.o2fo.common;
//from  w w  w.  j av  a  2  s.  co  m
import java.util.HashSet;
import java.util.Set;

public class Customer {
  private Set<Object> sets = new HashSet<Object>();

  public Set<Object> getSets() {
    return sets;
  }

  public void setSets(Set<Object> sets) {
    this.sets = sets;
  }

  public String toString() {
    return sets.toString();
  }
}

這里是Spring的bean配置文件。

<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="CustomerBean" class="com.www.o2fo.common.Customer">
    <property name="sets">
      <bean class="org.springframework.beans.factory.config.SetFactoryBean">
        <property name="targetSetClass">
          <value>java.util.HashSet</value>
        </property>
        <property name="sourceSet">
          <list>
            <value>1</value>
            <value>2</value>
            <value>3</value>
          </list>
        </property>
      </bean>
    </property>
  </bean>
</beans>

Download Java2s_Spring_SetFactoryBean.zip

util模式

我們還可以使用util模式和< util:set> 以將數(shù)據(jù)填充到j(luò)ava.util.Set。

<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xmlns:util="http://www.springframework.org/schema/util"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
  http://www.springframework.org/schema/util
  http://www.springframework.org/schema/util/spring-util-2.5.xsd">
  <bean id="CustomerBean" class="com.www.o2fo.common.Customer">
    <property name="sets">
      <util:set set-class="java.util.HashSet">
        <value>1</value>
        <value>2</value>
        <value>3</value>
      </util:set>
    </property>
  </bean>
</beans>

Download Java2s_Spring_set_util.zip

使用以下代碼運(yùn)行應(yīng)用程序。

package com.www.o2fo.common;
 
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
 
public class App 
{
    public static void main( String[] args )
    {
      ApplicationContext context = new ClassPathXmlApplicationContext("SpringBeans.xml");
 
      Customer cust = (Customer)context.getBean("CustomerBean");
      System.out.println(cust);
 
    }
}

上面的代碼生成以下結(jié)果。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號