Spring 参数注入

一个(类)Bean可能包含多种属性,这些属性怎么配置???  见下:

用People  Dog Cat Tiger  Panda五个类来学习一些常用的=_=

重点在XML

    <!--基本类型注入-->
    <bean id="tiger" class="party.infoo.entity.Tiger">
        <property name="name" value="Tiger_AA"/>
        <property name="age" value="3"/>
    </bean>
    <bean id="cat" class="party.infoo.entity.Cat">
        <property name="name" value="Cat_AA"/>
        <property name="age" value="2"/>
    </bean>
    <bean id="dog" class="party.infoo.entity.Dog">
        <property name="name" value="Dod_AA"/>
        <property name="age" value="5"/>
    </bean>
    <bean id="panda" class="party.infoo.entity.Panda">
        <property name="name" value="Panda_A"/>
        <property name="age" value="3"/>
    </bean>
    <!--参数注入方法介绍-->
    <bean id="people" class="party.infoo.entity.People">
        <!--基本类型注入-->
        <property name="name" value="People_AA"/>

        <!--bean注入-->
        <property name="dog" ref="dog"/>

        <!--级联属性注入《要求已经new过的》-->
        <property name="cat.name" value="Cat_BB"/>

        <!--内部bean注入-->
        <property name="tiger">
            <bean class="party.infoo.entity.Tiger">
                <property name="name" value="Tiger_BB"/>
                <property name="age" value="10"/>
            </bean>
        </property>

        <!--null值注入-->
        <property name="panda">
            <null></null>
        </property>

        <!--list-->
        <property name="books">
            <list>
                <value>JAVA</value>
                <value>ENGLISH</value>
            </list>
        </property>
        <!--set-->
        <property name="hobbies">
            <set>
                <value>唱歌</value>
                <value>玩游戏</value>
            </set>
        </property>
        <!--map-->
        <property name="works">
            <map>
                <entry>
                    <key><value>星期四</value></key>
                    <value>上班</value>
                </entry>
                <entry>
                    <key><value>星期五</value></key>
                    <value>放假</value>
                </entry>
            </map>
        </property>
        <!--proeperty-->
        <property name="address">
            <props>
                <prop key="addres1">AAAAAAAAAA</prop>
                <prop key="addres2">BBBBBBBBBB</prop>
            </props>
        </property>
    </bean>
package party.infoo.entity;

import java.util.*;

/**
 * Created by infoo on 2017/2/18.
 */
public class People {
  private String name;
  private Dog dog;
  private Cat cat=new Cat();
  private Tiger tiger;
  private Panda panda;
  private List<String> books=new ArrayList<String>();
  private Set<String> hobbies=new HashSet<String>();
  private Map<String,String> works=new HashMap<String,String>();
  private Properties address=new Properties();

    public String getName() {
        return name;
    }

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

    public Dog getDog() {
        return dog;
    }

    public void setDog(Dog dog) {
        this.dog = dog;
    }

    public Cat getCat() {
        return cat;
    }

    public void setCat(Cat cat) {
        this.cat = cat;
    }

    public Tiger getTiger() {
        return tiger;
    }

    public void setTiger(Tiger tiger) {
        this.tiger = tiger;
    }

    public Panda getPanda() {
        return panda;
    }

    public void setPanda(Panda panda) {
        this.panda = panda;
    }

    public List<String> getBooks() {
        return books;
    }

    public void setBooks(List<String> books) {
        this.books = books;
    }

    public Set<String> getHobbies() {
        return hobbies;
    }

    public void setHobbies(Set<String> hobbies) {
        this.hobbies = hobbies;
    }

    public Map<String, String> getWorks() {
        return works;
    }

    public void setWorks(Map<String, String> works) {
        this.works = works;
    }

    public Properties getAddress() {
        return address;
    }

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

    @Override
    public String toString() {
        return "People{" +
                "name=‘" + name + ‘\‘‘ +
                ", dog=" + dog +
                ", cat=" + cat +
                ", tiger=" + tiger +
                ", panda=" + panda +
                ", books=" + books +
                ", hobbies=" + hobbies +
                ", works=" + works +
                ", address=" + address +
                ‘}‘;
    }
}
package party.infoo.entity;

/**
 * Created by infoo on 2017/2/18.
 */
public class Tiger {
    private String name;
    private int age;

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

    @Override
    public String toString() {
        return "Tiger{" +
                "name=‘" + name + ‘\‘‘ +
                ", age=" + age +
                ‘}‘;
    }
}
package party.infoo.entity;

/**
 * Created by infoo on 2017/2/18.
 */
public class Panda {
    private String name;
    private int age;

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

    @Override
    public String toString() {
        return "Panda{" +
                "name=‘" + name + ‘\‘‘ +
                ", age=" + age +
                ‘}‘;
    }
}
package party.infoo.entity;

/**
 * Created by infoo on 2017/2/18.
 */
public class Dog {
    private String name;
    private int age;

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

    @Override
    public String toString() {
        return "Dog{" +
                "name=‘" + name + ‘\‘‘ +
                ", age=" + age +
                ‘}‘;
    }
}
package party.infoo.entity;

/**
 * Created by infoo on 2017/2/18.
 */
public class Cat {
    private String name;
    private int age;

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

    @Override
    public String toString() {
        return "Cat{" +
                "name=‘" + name + ‘\‘‘ +
                ", age=" + age +
                ‘}‘;
    }
}
时间: 2024-07-29 00:09:00

Spring 参数注入的相关文章

Spring 构造注入 传参数

1.        提供对应的构造方法 //构造器注入 public class Bean6 { private String name; private Integer age; // 服务于构造器注入使用 public Bean6(String name, Integer age) { super(); this.name = name; this.age = age; } public void show() { System.out.println("bean6:" + nam

Spring依赖注入

Spring依赖注入基础 一.Spring简介 1.Spring简化Java开发 Spring Framework是一个应用框架,框架一般是半成品,我们在框架的基础上可以不用每个项目自己实现架构.基础设施和常用功能性组件,而是可以专注业务逻辑.因此学习Spring Framework在架构和模式方面的结构和原理,对我们在架构和模块级别的理解帮助极大.Spring Framework(参考1)的宗旨是简化Java开发,主要的手段如下: (1)在架构上解耦:通过DI(依赖注入)管理类型依赖,通过AO

Spring学习(二)spring ioc注入的三种方式

一.spring ioc注入有哪三种方式: a setter 原理 : 在目标对象中,定义需要注入的依赖对象对应的属性和setter方法:"让ioc容器调用该setter方法",将ioc容器实例化的依赖对象通过setter注入给目标对象,封装在目标对象的属性中. b 构造器 原理 : 为目标对象提供一个构造方法,在构造方法中添加一个依赖对象对应的参数.ioc容器解析时,实例化目标对象时会自动调用构造方法,ioc只需要为构造器中的参数进行赋值:将ioc实例化的依赖对象作为构造器的参数传入

SSH深度历险(八) 剖析SSH核心原理+Spring依赖注入的三种方式

在java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中.依赖注入的另一种说法是"控制反转",通俗的理解是:平常我们new一个实例,这个实例的控制权是我们程序员,而控制反转是指new实例工作不由我们程序员来做而是交给spring容器来做. Spring依赖注入(

(转)Java Web系列:Spring依赖注入基础

一.Spring简介 1.Spring简化Java开发 Spring Framework是一个应用框架,框架一般是半成品,我们在框架的基础上可以不用每个项目自己实现架构.基础设施和常用功能性组件,而是可以专注业务逻辑.因此学习Spring Framework在架构和模式方面的结构和原理,对我们在架构和模块级别的理解帮助极大.Spring Framework(参考1)的宗旨是简化Java开发,主要的手段如下: (1)在架构上解耦:通过DI(依赖注入)管理类型依赖,通过AOP分离关注点,减少重复代码

java框架篇---spring 依赖注入

spring依赖注入的方式有4种 构造方法注入 属性注入 工厂注入 注解注入 下面通过一个实例统一讲解: User.java package com.bjsxt.model; public class User { private String username; private String password; public User(){} public User(String username, String password) { super(); this.username = use

Java Web系列:Spring依赖注入基础

一.Spring简介 1.Spring简化Java开发 Spring Framework是一个应用框架,框架一般是半成品,我们在框架的基础上可以不用每个项目自己实现架构.基础设施和常用功能性组件,而是可以专注业务逻辑.因此学习Spring Framework在架构和模式方面的结构和原理,对我们在架构和模块级别的理解帮助极大.Spring Framework(参考1)的宗旨是简化Java开发,主要的手段如下: (1)在架构上解耦:通过DI(依赖注入)管理类型依赖,通过AOP分离关注点,减少重复代码

Spring学习笔记——Spring依赖注入原理分析

我们知道Spring的依赖注入有四种方式,分别是get/set方法注入.构造器注入.静态工厂方法注入.实例工厂方法注入 下面我们先分析下这几种注入方式 1.get/set方法注入 public class SpringAction { //注入对象springDao private SpringDao springDao; //一定要写被注入对象的set方法 public void setSpringDao(SpringDao springDao) { this.springDao = spri

spring 多线程 注入 服务层 问题

在用多线程的时候,里面要用到Spring注入服务层,或者是逻辑层的时候,一般是注入不进去的.具体原因应该是线程启动时没有用到Spring实例不池.所以注入的变量值都为null. 详细:http://hi.baidu.com/adrianbutler/item/800218d90f23b0e53dc2cb95 因为我用的是@Autowired注入,不知道为什么 解决不了我的问题,继续查找资料,好在柳暗花明 详细: http://blog.csdn.net/majian_1987/article/d