Spring(基础)学习文档一

Spring学习文档一

必备条件:

1.       spring-framework-3.0.0.RELEASE

2.       IDE开发工具,我用的是MyEclipse6.0

首先在MyEclipse中创建一个基于Spring的工程:

a.       创建一个WEB工程:File à new à web Project

b.       在创建好工程之后 点击工程名然后右键 MyEclipse à add Spring Capabilities

c.       在弹出的框框中选择Spring的版本和编译时使用的包,然后就一直按finished

到此为止工程创建完成。

 

Spring是一个开源的为了解决企业级应用程序复杂性而开发的框架,目前已经更新到3.0版本。

Spring有几个非常实用而又非常轻量级的模块。每个模块可单独使用并且可以与其他开源框架集成。

我先介绍Spring最重要的2个思想IOC(依赖注入)和AOP(控制反转):

1.       IOC(依赖注入):

作用:协调依赖对象之间协作的责任从对象自身转移出来,把这个责任交给Spring的配置文件去管理。那么程序员就可以只考虑当前对象的操作,代码将变得更简洁明了。

 

大家可以看以下几个列子:

public class PersonSong{

           public void song(String name) {

                    System.out.println(name+“花花唱山歌…..”);

           }

}

public class Person {

           private String name;

           private PersonSong personSong;

           public Person(String name) {

                    this.name=name;

                    personSong =new PersonSong ();

           }

           public void song() {

                    personSong.song(name);

           }

}

 

在这个列子中,如果Person要执行唱歌的方法,则必须先构造出一个PersonSong的对象,大家看PersonSong对象的构造是放在Person的构造方法中,也就是说PersonSong对象的构造必须依赖于Person对象,试想一下,如果你的应用程序非常的庞大,那么这种对象与对象之间,组件和组件之间的关系必将非常的复杂。

 

这中依赖方式必将带来几个非常大的问题:

1,  由于各个组件之间的依赖性(或者说是耦合性)非常强,那么如果修改了其中任何一个组件,可能导致整个程序的不可用,那么该程序的拓展性必将大大受限。

2,  如果组件的耦合性非常强,那么对于单元测试来说也是非常麻烦的一件事,如果我只想测试Person类,那么上面程序也就顺带测试了PersonSong类,如果遇到非常大的并且里面牵扯到很多个类的时候,这种测试将是非常吃力并且没有效率的测试。

下面我们将给出Spring给我们所做的事:

改写Person类:

public class Person {

           private String name;

           private PersonSong personSong;

           public Person(String name) {

                    this.name=name;

           }

           public void song() {

                    personSong.song(name);

           }

           public void setPersonSong(PersonSong personSong) {

                    this.personSong=personSong;

           }

}

 

编写Spring代码,本质就是编写配置文件,那么上面程序的依赖关系我将通过下面的Spring配置文件进行管理

<beans

    xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

 

    <bean id="song" class=" impl.PersonSong"/>

 

    <bean id="person" class="impl.Person">

       <property name="personsong">

    //通过Person对象的setPersonSong()方法把PersonSong对象注入到Person对象中

           <ref bean="song"/>

</property>

    </bean>

 

   

</beans>

 

通过上述配置文件,即可将对象之间的依赖管理从对象自身中转移给Spring框架去管理。上面只是Spring的其中一种注入方式,其他的注入方式将在以后的篇幅中陆续介绍。

上面的代码是否还有可以改进的地方?如果你有方法,那么恭喜你,你已经有一定的面向接口的编程思想了,如何改进同样会在以后的篇幅中介绍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泡壶好茶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值