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的部分,并且通过自己尝试之后,攒写该文用于记录,以便今后使用。

时间: 2024-11-03 22:17:55

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

spring学习之集合属性注入

spring中对象之间的相互依赖关系是通过applicationContext.xml来管理的,因此集合属性注入的重点也放在applicationContext.xml的配置之中. 下面是一个完整的各种集合属性注入的例子 目录结构: 实体类 public class Students { private String sid; private String sname; private int age; public Students() { super(); } public Students

Spring boot将配置属性注入到bean类中

一.@ConfigurationProperties注解的使用 看配置文件,我的是yaml格式的配置: // file application.yml my: servers: - dev.bar.com - foo.bar.com - jiaobuchong.com 1 2 3 4 5 6 下面我要将上面的配置属性注入到一个Java Bean类中,看码: import org.springframework.boot.context.properties.ConfigurationProper

spring IOC快速入门,属性注入,注解开发

我们使用spring框架也会使用到配置文件,我们需要在src下创建一个关于spring的配置文件,一般情况名称叫applicationContext.xml 基本约束: <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"> IOC快速入门 inversion of Controller

Spring中集合类型属性注入

我们都知道如何去注入普通属性的值,非常简单,那么我们如何去注入开发中常见的集合类型的属性了,别急,往下看. 这里将介绍如何给Map list set Array Properties 这些属性注入值. 1.创建一个类:员工类Employee package cn.entity; /** * 员工类 * * @author hyj * */ public class Employee { //员工年龄 private Integer age; //员工姓名 private String name;

六 Spring的配置:属性注入

Spring的属性注入: 构造方法的属性注入 set方法的属性注入 构造方法的属性注入: set方法的属性注入: set方法注入对象: 1 package com.itheima.spring.demo4; 2 3 public class Employee { 4 private String name; 5 private Car2 car2; 6 7 public void setName(String name) { 8 this.name = name; 9 } 10 public v

spring各种类型的属性注入

spring test + Junit方式: pox.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"          xsi:schemaLoc

spring的两种属性注入方式setter注入和构造器注入或者自动注入

1.这里的属性自动注入,与注解配置bean是两回事.这里的自动注入,指的是bean属性的自动注入. bean属性自动注入,包括byNAme和ByType两码事. 2.所有的applicationContext都实现了resourceLoader接口,通过resourceLoader可以获得resource实例,进而可以访问资源文件. 所以要在类中获得resource实例,必须实现applicationContextAware接口.

Spring属性注入的注解

使用@Autowired进行自动注入 @Autowired默认按照类型进行注入 -如果存在两个相同Bean类型相同,则按照名称注入 @Autowired注入时可以针对成员变量或者set方法 通过@Autowired的required属性,设置一定要找到匹配的Bean 使用@Qualifier指定注入Bean的名称 使用Qualifier指定Bean名称后,注解Bean必须指定相同名称 Spring提供对JSR-250中定义@Resource标准注解的支持 普通数据类型的属性注入 @Value("

Spring笔记②--各种属性注入

Ioc 反转控制 反转资源获取的方向 分离接口与实现 采用工厂模式 采用反转控制 ? Di 依赖注入 依赖容器把资源注入 ? 配置bean 通过全类名(反射) 配置形式:基于xml方式 Ioc容器的beanFactory&ApplicationContext 依赖注入的方式:属性注入,构造器注入 ? ? Bean必须要有一个无参的构造函数 Class:bean的全类名,通过反射的方式在IOC容器中创建bean,所以要求bean中必须有无参的构造函数 id :bean 的标示,id唯一 ? app