Spring 构造注入简单实例

来源:互联网 发布:android wear源码下载 编辑:程序博客网 时间:2024/05/16 08:27

如果想要使用spring来实现依赖注入,需要几个重要的步骤:
  1 定义主要的类和需要分离的属性。
  2 配置bean.xml。通过配置文件,确定主要的类和属性之间的关系,以及实现类。
  3 通过应用上下文,获取bean,并进行使用。

项目结构如下所示

这里写图片描述
注入对象/注入属性

//Juggler.javapackage com.spring.test.action1;public class Juggler implements Performer{    private int beanBags = 3;    public Juggler(){    }    public Juggler(int beanBags){        this.beanBags = beanBags;    }    public void perform()  {        System.out.println("Juggler "+ beanBags +" beanBags");    }}
//Performer.javapackage com.spring.test.action1;public interface Performer {    void perform() ;}
//Poem.javapackage com.spring.test.action1;public interface Poem {    void recite();}
//PoeticJuggler.javapackage com.spring.test.action1;public class PoeticJuggler extends Juggler {     private Poem poem;        public PoeticJuggler(Poem poem){            super();            this.poem = poem;        }        public PoeticJuggler(int beanBags,Poem poem){            super(beanBags);            this.poem = poem;        }        public void perform() {            super.perform();            System.out.println("While reciting...");            poem.recite();        }}
// Sonnet29.javapackage com.spring.test.action1;public class Sonnet29 implements Poem{    private static String lines = "嘛咪嘛咪哄";    public Sonnet29() {    }    public void recite() {        System.out.println(lines);    }}
//test.javapackage com.spring.test.action1;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class test {    public static void main(String[] args) {        ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");      //  Performer performer = (Performer)ctx.getBean("duke");      //  performer.perform();//Juggler 15 beanBags        Performer performer1 = (Performer)ctx.getBean("poeticDuke");        performer1.perform();    }}
//bean.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns="http://www.springframework.org/schema/beans"    xsi:schemaLocation="http://www.springframework.org/schema/beans    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">     <bean id="duke" class="com.spring.test.action1.Juggler">         <constructor-arg value="15"/>     </bean>     <bean id="sonnet29" class="com.spring.test.action1.Sonnet29"/>     <bean id="poeticDuke" class="com.spring.test.action1.PoeticJuggler">         <constructor-arg value="15"/>         <constructor-arg ref="sonnet29"/>     </bean></beans>
//输出结果Juggler 15 beanBagsWhile reciting...嘛咪嘛咪哄