Spring学习笔记(一)

来源:互联网 发布:黑龙江网络作家协会 编辑:程序博客网 时间:2024/06/08 00:55

由于公司项目的原因,开始接触到sprin,从一脸懵逼开始,于是一边请教同学,一边买了本Spring实战开始看起来,现在简单记录下,加深记忆.
在我目前学习过程而言,对spring的认识还在于通过xml配置文件的依赖注入实现对象之间的松耦合。依赖注入主要有三种形式:构造器注入,setter注入和p注入,其中p注入是setter注入的简化形式。


举个栗子

有如下代码块:

package mawu.com;class Performer{    String song;    Instrument ins;    Performer(){}    Performer(String song, Instrument ins){        this.song = song;        this.ins = ins;    }    public String getSong(){        return this.song;    }    public Instrument getInstrument(){        return this.ins;    }    public void setSong(String song){        this.song = song;    }    public void setInstrument(Instrument ins){        this.ins = ins;    }    //其他method    ...}
package mawu.com;public interface Instruments{    public void perform();}
package mawu.com.Instruments;public class Guitar implements Instrument{    @overwrite    public void perform(){        System.out.println("guitar, guitar, guitar");    }}

对于以上一个类的初始化,采用依赖注入的方式下,xml文件有三种配置方式。
对于spring的XML文件而言,每个对象都是配置在spring容器的bean中的。
既然已经声明了Performer类,则我们可以配置我们第一个Performer对象,假设叫Jack。

1、 构造器注入:
1)默认构造器

<bean id = "Jack" class = "mawu.com.Performer" />// 相当于 Jack = new mawu.com.Performer();

2)指定构造器

<bean id = "Jack"       class = mawu.com.Performer>    <constructor-arg song = "see you again" />    <constructor-arg ref = "guitar" /></bean>----------<bean id = "guitar" class = "mawu.com.Instruments.Guitar" />// //相当于Jack = new mawu.com.Performer("see you again",guitar);

2、setter注入
对于类Performer而言,每个成员变量还有自己的set方法,除了通过构造器构造外,也可以通过set方法对每个成员变量注入。通过setter注入的bean如下所示:

<bean id = "Jack", class= mawu.com.Performer>    <property name = "song" value = "see you again"/>    <property name = "ins" ref = "guitar" />    <!--注入内部bean-->    <!-- <property name = "ins">  <bean class = "mawu.com.Instruments.Guitar" / --></bean>----------<bean id = "guitar" class = "mawu.com.Instruments.Guitar" />

通过setter注入,spring会自动去找对应对象的setter方法,完成成员变量的初始化。

3、p注入
property注入写起来比较麻烦,简化形式即为p注入。要想使用p注入,在spring 的XML配置文件中需要加一段p的声明。在完成声明的前提下,p注入的写法如下:

<bean id = "Jack", class= mawu.com.Performer    p:song = "see you again"    p:ins-ref = "guitar" />----------<bean id = "guitar" class = "mawu.com.Instruments.Guitar" />

小结

spring有三种配置方式:构造器注入,关键词位constructor-arg;setter注入,关键词位property;p注入关键词为p

0 0
原创粉丝点击