zoukankan      html  css  js  c++  java
  • spring总结

    spring好处:
    1、降低组件之间的耦合度,实现软件各层之间的解耦。
    Controller --> Service --> Dao
    2、可以使用容器提供众多服务:如事务管理服务,消息服务等。当我们使用容器管理事务时,开发人员不再需要手工控制事务,也不需要处理复杂的事务传播。
    3、容器提供单例模式支持。开发人员不再需要自己编写实现代码。
    4、容器提供了AOP技术。利用它很容易实现如权限拦截、运行期监控等功能。
    5、容器提供了众多辅佐类,使用这些类能够加快应用的开发,如:Jdbc Template、Hibernate Template
    6、对于主流的应用框架提供了集成支持,如:集成Hibernate、JPA、Struts等,这样更便于应用的开发。

    依赖注入:对象不是从容器中查找他的依赖类,而是容器在实例化对象的时候主动将它的依赖类注入给他
    面向切面:通过将业务逻辑从应用服务(如监控和事务管理)中分离出来,实现了内聚开发。应用对象只做它们该做的——业务逻辑,他们不负责(或关心)其他系统的问题(如日志和事务支持)。

    BeanFactory、ApplicationContext 和 WebApplicationContext 是 Spring 框架三个最核心 的接口,框架中其他大部分的类都围绕它们展开、为它们提供支持和服务。在这些支持类 中,Resource 是一个不可忽视的重要接口,框架通过 Resource 实现了和具体资源的解耦, 不论它们位于何种存储介质中,都可以通过相同的实例返回。与 Resource 配合的另一个接 口是 ResourceLoader,ResourceLoader 采用了策略模式,可以通过传入资源地址的信息, 自动选择适合的底层资源实现类,为上层对资源的引用提供了极大的便利。


    private PersonDao personDao = new PersonDaoBean();
    public void save(Person person) {
      personDao.save(person);
    }
    所谓控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转。
    那么以上的写法可以改为:
    public class PersonServiceBean{
    private PersonDao personDao;
    // 通过构造器参数,让容器把建好的依赖对象注入进PersonServiceBean,当然也可以用setter注入
    public PersonServiceBean(PersonDao personDao) {
      this.personDao = personDao;
    }
    public void save(Person person) {
      personDao.save(person);
    }
    }

    所谓依赖注入就是:在运行期,由外部容器动态地将依赖对象注入到组件中。

  • 相关阅读:
    遗传算法求函数最值(C语言实现)
    AjaxUploader使用
    AjaxUploader使用:FileUploaded及UploadCompleted
    AutoIt
    网站盗链问题及解决方案
    input不保留历史记录
    必备知识:消息处理
    AjaxUploader使用:文件保存到数据库
    AjaxUploader使用:JavaScript APIs
    页面定时跳转
  • 原文地址:https://www.cnblogs.com/mabiao008/p/6138459.html
Copyright © 2011-2022 走看看