Spring v3.0.2 Learning Note 1 - Introduction to Spring Framework

  • 官网地址 

           http://www.springsource.org/

  • 控制反转 Inversion of Control

          public class PersonManager {
                 IPersonDao personDao = new PersonDao();

                 public void save(Person person) {
                       personDao.save(person);

                 }
         }

         类PersonManager依赖于类PersonDao,传统做法PersonDao是在应用内部创建和维护 。控制反转就是应用本身不负责倚赖对象的创建和维护 ,而是将创建和维护交给外部容器负责,比如spring. 这样控制权就从应用本身转移到了外部容器,控制权的转移就是反转。

  • 依赖注入 Dependency Injection

          依赖注入指在运行期 间,由外部容器动态地 将依赖对象注入到组件中。

          public class PersonManager {
                 IPersonDao personDao; // 是用接口定义依赖类


                 // 本例采用构造器的方式让容器将依赖对象注入到PersonManager类中
                 // 当然sping还提供了其他的注入方式,比如setter的方式

                 public PersonManager(IPersonDao personDao) {
                       this.personDao = personDao;
                 }
                 public void save(Person person) {
                       personDao.save(person);

                 }

         }

  • Spring好处
  1. 降低组件之间耦合度,进而实现软件各层之间的解耦。
  2. 容器本身提供了众多服务,如事务管理,消息服务等。
  3. 提供了AOP技术,很容易实现如权限拦截、运行期监控等功能。
  4. 提供众多辅助类,简化开发,比如JdbcTemplate、HibernateTemplate等
  5. 对主流应用框架的支持,比如Hibernate、Struts等。
  6. ......
  • 轻量级与重量级

划分一个应用为轻量级或重量级,主要看其使用了多少服务,使用的服务越多,容器要为Java对象做的工作越多,必然会影响部署复杂程度和运行效率。
对于spring容器,它提供了很多服务,但这些服务在默认状态下并不是打开的,需要应用需要某种服务,则需指明要使用该服务,如果使用的服务很少,比如 spring core服务,可认为是轻量级服务。如果应用使用了spring 提供的大部分服务,这时应用就属于重量级。目前EJB容器就因为它默认为应用提供了EJB规范的所有服务,所以它属于重量级。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值