Spring:特殊数据类型的属性注入(基于配置文件)

Posted Wellhold

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring:特殊数据类型的属性注入(基于配置文件)相关的知识,希望对你有一定的参考价值。

该处提到的特殊数据类型指的是除了基础数据类型和String以外的其他常用的数据类型,如:List、Map、Set、以及pojo对象等。则我们创建的Person类定义为:

package bjtu.wellhold.testSpring;

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

import org.springframework.stereotype.Repository;

//@Repository("person")
public class Person {

    private String name;  
    private int age;  
    private double money;  
    private List<String> list;  
    private Set<String> set;  
    private Map<String,String> map;  
    private String[] array;  
    private Properties properties;  
    private User user;  
    
    
    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 double getMoney() {
        return money;
    }
    public void setMoney(double money) {
        this.money = money;
    }
    public List<String> getList() {
        return list;
    }
    public void setList(List<String> list) {
        this.list = list;
    }
    public Set<String> getSet() {
        return set;
    }
    public void setSet(Set<String> set) {
        this.set = set;
    }
    public Map<String, String> getMap() {
        return map;
    }
    public void setMap(Map<String, String> map) {
        this.map = map;
    }
    public String[] getArray() {
        return array;
    }
    public void setArray(String[] array) {
        this.array = array;
    }
    public Properties getProperties() {
        return properties;
    }
    public void setProperties(Properties properties) {
        this.properties = properties;
    }
    public User getUser() {
        return user;
    }
    public void setUser(User user) {
        this.user = user;
    }
    
    @Override
    public String toString() {
        return "Person [name=" + name + ", age=" + age + ", money=" + money + ", list=" + list + ", set=" + set
                + ", map=" + map + ", array=" + Arrays.toString(array) + ", properties=" + properties + ", user=" + user
                + "]";
    }

}

因为还涉及到向我们的Person当中注入一个Pojo类,所以我们再定义一个Pojo类叫User:

package bjtu.wellhold.testSpring;

public class User {

    private int age;
    private String username;
    private String password;

    public int getAge() {
        return age;
    }

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

    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;
    }

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

之后则需要到我们的配置文件当中去进行配置,配置文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:aop="http://www.springframework.org/schema/aop"  
    xmlns:context="http://www.springframework.org/schema/context"  
    xsi:schemaLocation="
       http://www.springframework.org/schema/beans  
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
       http://www.springframework.org/schema/aop  
       http://www.springframework.org/schema/aop/spring-aop-3.0.xsd  
       http://www.springframework.org/schema/context  
       http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <!-- 对要注入的User类进行注册和通过Setter进行属性注入 -->
    <bean id="user" class="bjtu.wellhold.testSpring.User">
        <property name="username" value="wellhold"></property>
    </bean>

    <!-- 可以参考各个特殊数据类型是如何进行属性注入的 -->
    <bean id="person" class="bjtu.wellhold.testSpring.Person">  
        <property name="name">  
            <value>Tom</value>  
        </property>  
        <property name="age">  
            <value>28</value>  
        </property>  
        <property name="money">  
            <value>100.9</value>  
        </property>  
        <property name="list">  
            <list>  
                <value>shandong</value>  
                <value>杭州</value>  
                <value>xihu</value>  
            </list>  
        </property>  
        <property name="set">  
            <set>  
                <value>13900</value>  
                <value>13900</value>  
                <value>13800</value>  
            </set>  
        </property>  
        <property name="map">  
            <map>  
                <entry>  
                    <key>  
                        <value>key1</value>  
                    </key>  
                    <value>value1</value>  
                </entry>  
                <entry key="key2" value="value2">  
                </entry>  
            </map>  
        </property>  
        <property name="array">  
            <list>  
                <value>xiaoh</value>  
                <value>xiaob</value>  
            </list>  
        </property>  
        <property name="properties">  
            <props>  
                <prop key="pp1">pp1Value</prop>  
                <prop key="pp2">pp2Value</prop>  
            </props>  
        </property>  
        <property name="user">  
            <ref bean="user"/>  
        </property>  
    </bean>  

</beans>

以上是通过配置文件的形式去进行特殊数据类型的属性注入的。

 

本文参考http://blog.csdn.net/niuniu20008/article/details/12559797的部分,并且通过自己尝试之后,攒写该文用于记录,以便今后使用。

以上是关于Spring:特殊数据类型的属性注入(基于配置文件)的主要内容,如果未能解决你的问题,请参考以下文章

Spring配置文件中注入复杂类型属性

Spring配置——属性注入

Spring根据XML配置文件注入对象类型属性

SPRING01_概述配置文件bean实例化依赖注入的方式依赖注入的数据类型分模块开发API使用

spring 注入属性

Spring各类集合注入