spring知识回顾-spring简介

1.Spring是什么?

Spring是一个开源的控制反转(Inversion of Control,IoC)和面向切面(AOP)编程的容器框架,它主要的目的是简化企业应用的开发。

 

2.IoC

所谓的控制反转,就是应用程序本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的,这样控制权就由应用程序转移到了外部容器,控制权的转移就是所谓的反转。

举个例子:

通常我们service类需要依赖dao类,没使用spring前是以下这种写法

public class PersonService{

   private PersonDao personDao = new PersonDaoImpl();

   public void save(){

     personDao.save();

  }

}

控制反转也可以理解为依赖注入(Dependency Injection),指的是在程序运行期间,由外部容器动态的将依赖对象注入到组件中。

当我们使用了spring的依赖注入后,上面的代码可以改写为以下这种写法:

public class PersonService{

   private PersonDao personDao;

   //由spring容器来动态注入,这边是用setter注入方式,还可以采用构造方法注入

   public void setPersonDao(PersonDao personDao){

      this.personDao = personDao;

   }

   public void save(){

     personDao.save();

  }

}

这里省略了sping配置文件的编写。

 

3.使用spring有什么好处?

①降低组件之间的耦合度,实现软件各层之间的解耦

②可以使用容器提供的众多服务。如事务管理服务,消息服务等等。当我们使用了事务管理服务后,开发人员就不用再手工控制事务,也不需要处理复杂的事务传播

③容器提供单例模式支持,开发人员不再需要自己编写实现代码

④容器提供了AOP技术,使用它可以很容易实现如权限拦截,运行期间的监控等功能

⑤容器提供众多的辅助类,使用这些类能够加快应用的开发。如jdbcTemplate,HibernateTemplate等

⑥Spring对于主流的应用框架提供了很好的集成支持。如Struts,Hibernate,JPA,这样更便于应用的开发

 

4.轻量级与重量级概念的划分

划分一个应用是属于重量级还是轻量级,主要是看它使用了多少服务,使用的服务越多,容器要为普通的java类做的工作就越多,必然会影响到应用的发布时间或者是运行性能。

对于Spring容器,它提供了很多服务,但这些服务并不是默认打开的,应用需要某种服务,还需要指明使用该服务。如果应用使用的服务很少,如:只使用了spring的核心服务,那么此时我们可以认为应用属于轻量级的,如果应用使用了spring提供的大部分服务,这时应用就属于重量级的。

目前EJB容器就因为它默认为应用提供了EJB规范中所有的功能服务,所以它属于重量级。

 

posted on 2012-06-26 23:21  郑志伟  阅读(442)  评论(0编辑  收藏  举报

导航