Spring学习笔记(一)

来源:互联网 发布:上海网络代运营公司 编辑:程序博客网 时间:2024/05/16 06:46

Spring学习笔记

Spring实战第三版第二章

  • 声明Bean
  • 构造器注入和setter注入
  • 装配Bean

声明Bean
创建Spring配置

-Spring核心框架自带了10个命名空间配

1、aop:为声明切面及将@AspectJ注解的类代理为Spring切面提供配置元素
2、beans:支持声明Bean和装配Bean
3、context:为配置应用上下文提供了配置元素,如自动检测和自动装配Bean、注入非Spring直接管理的对象
4、jee
5、jms
6、lang
7、oxm
8、tx
9、util
声明一个简单的Bean

package com.springinaction.springidol; public class Juggle implements Performer{    private int beanBags=3;    public Juggle(){    }    public Juggle(int beanBags){        this.beanBags = beanBags;    }    public void perform(){        System.out.println("Juggle throws "+beanBags+"beanBags");    }}定义一个Juggle

杂技师类,实现了Performer表演者接口,perform方法输出抛出了几个豆子,可通过构造器设置豆子个数
请出第一位选手Duke表演,它被定义为一个Spring Bean

<bean id="duke"  class="com.springinaction.springidol.Juggler" />

是Spring中最基本的配置单元,通过其创建一个对象。这里创建了一个由Spring容器管理的名字为dule的Bean。id 定义Bean的名字,也是其在容器中的应用。class属性定义了duke的实现类。
可以使用上下文加载Bean来给duke一个排练的机会

ApplicationContext ctx = new ClassPathXmlApplicationContext("com/springinaction/springidol/spring-idol.xml")Performer performer = (Performer)ctx.getBean("duke");performer.perform();

-通过构造器注入
为了让Duke成为可以抛15个豆子的杂技师,可由下面的xml声明

<bean id="duke"  class="com.springinaction.springidol.Juggler"><constructor-arg value="15" /></bean>

-通过构造器注入对象引用
如果Duke还会朗诵诗歌,则需要一个新的Juggler类型

public class PoeticJuggler extends Juggler{    private  Poem  poem;    public PoeticJuggler(Poem poem){    super();    this.poem = poem    }    public PoeticJuggle(int beanBags, Poem poem){        super(beanBags);        this.poem = poem;    }    public void perforem() throws PerformanceException{    super.perform();    System.out.println("While reciting...");    poem.recite();    }    }

这个新的Juggler不但可以可以玩杂技,还可以朗诵诗歌,因此还有一个诗歌接口

public interface Poem{    void recite();}

定义一个实现类来实现Poem接口

public Sonner implements Poem{      void recite(){    System.out.println("aaaaa");}}

使用下面的定义文件

<bean  id="sonner"  class = "com.springinaction.springidol.Sonner" />

需要将poem赋值给Duke,修改<bean>shengming

<bean id="poeticJuggler" class="com.springinaction.springidol.PoeticJuggler"><constructor-arg value="15" /><constructor-arg ref="sonner" /> </bean>
0 0
原创粉丝点击