Spring学习笔记(一)

由于公司项目的原因,开始接触到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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值