Spring框架:概述

作者: Arvin Chen 分类: Java 来源: Break易站(www.breakyizhan.com)

Spring是企业Java最流行的应用程序开发框架。全球数以百万计的开发人员使用Spring Framework创建高性能,易于测试和可重用的代码。

Spring框架是一个开源的Java平台。它最初由Rod Johnson编写,并于2003年6月首次在Apache 2.0许可下发布。

当涉及到大小和透明度时,Spring是轻量级的。Spring框架的基本版本大约为2MB。

Spring框架的核心功能可以用于开发任何Java应用程序,但是在Java EE平台之上还可以扩展构建Web应用程序。Spring框架的目标是通过启用基于POJO的编程模型来使J2EE开发更易于使用并促进良好的编程实践。

使用Spring框架的好处

以下是使用Spring Framework的很多好处的列表 -

  • Spring使开发人员能够使用POJO开发企业级应用程序。仅使用POJO的好处在于,您不需要诸如应用程序服务器之类的EJB容器产品,但可以选择仅使用强大的servlet容器(如Tomcat或某些商业产品)。
  • Spring以模块化方式组织。尽管包和类的数量很大,但你只需要担心你需要的,而忽略其余的。
  • Spring并没有重新发明,而是真正使用了一些现有技术,如几个ORM框架,日志框架,JEE,Quartz和JDK定时器以及其他视图技术。
  • 测试用Spring编写的应用程序很简单,因为依赖于环境的代码被移入此框架。而且,通过使用JavaBeanstyle POJO,使用依赖注入来注入测试数据变得更加容易。
  • Spring的Web框架是一个设计良好的Web MVC框架,它为Web框架(如Struts或其他过度设计或不太流行的Web框架)提供了一个很好的选择。
  • Spring提供了一个方便的API来将特定于技术的异常(例如JDBC,Hibernate或JDO)转换为一致的未经检查的异常。
  • 例如,轻量级IoC容器往往是轻量级的,尤其是与EJB容器相比时。这对于在内存和CPU资源有限的计算机上开发和部署应用程序很有帮助。
  • Spring提供了一个一致的事务管理接口,可以缩减为本地事务(例如使用单个数据库)并扩展到全局事务(例如使用JTA)。

依赖注入(DI)

Spring最认同的技术是控制反转的依赖注入(DI)。该控制反转(IOC)是一个笼统的概念,它可以在许多不同的方式来表达。依赖注入仅仅是控制反转的一个具体例子。

在编写复杂的Java应用程序时,应用程序类应尽可能独立于其他Java类,以增加重用这些类的可能性,并在单元测试时独立于其他类测试它们。依赖注入有助于将这些类粘合在一起,同时保持它们独立。

完全依赖注入是什么?我们分别看这两个词。这里依赖部分转化为两个类之间的关联。例如,A类依赖于B类。现在,我们来看第二部分,注入。所有这些意思是,B类将被IoC注入A类。

依赖注入可以通过将参数传递给构造函数或通过使用setter方法进行后置构造来实现。由于依赖注入是Spring框架的核心,我们将在相关示例的单独章节中解释这个概念。

面向方面编程(AOP)

Spring的关键组件之一是面向方面编程(AOP)框架。跨越应用程序多个点的功能称为横切关注点,这些横切关注点在概念上与应用程序的业务逻辑分离。有各种常见的很好的例子,包括日志记录,声明式事务,安全性,缓存等等。

OOP中模块化的关键单元是类,而在AOP中,模块化的单元是方面。DI可帮助您将应用程序对象彼此分离,而AOP可帮助您将交叉关注与其影响的对象分离开来。

Spring框架的AOP模块提供了一种面向方面的编程实现,允许您定义方法拦截器和切入点,以干净地分离实现应该分离的功能的代码。我们将在单独的章节中更多地讨论Spring AOP概念。

本文来自:Spring框架:概述

  •   本文标题:Spring框架:概述 - Break易站
    转载请保留页面地址:https://www.breakyizhan.com/java/3100.html

    "Spring框架:概述"的笔记

    • 认识 Spring 框架

      Spring 框架是 Java 应用最广的框架,它的成功来源于理念,而不是技术本身,它的理念包括 IoC (Inversion of Control,控制反转) 和 AOP(Aspect Oriented Programming,面向切面编程)

      什么是 Spring:

      • Spring 是一个轻量级的 DI / IoC 和 AOP 容器的开源框架,来源于 Rod Johnson 在其著作《Expert one on one J2EE design and development》中阐述的部分理念和原型衍生而来。
      • Spring 提倡以“最少侵入”的方式来管理应用中的代码,这意味着我们可以随时安装或者卸载 Spring
      1. 适用范围:任何 Java 应用
      2. Spring 的根本使命:简化 Java 开发

      尽管 J2EE 能够赶上 Spring 的步伐,但 Spring 并没有停止前进, Spring 继续在其他领域发展,而 J2EE 则刚刚开始涉及这些领域,或者还没有完全开始在这些领域的创新。移动开发、社交 API 集成、NoSQL 数据库、云计算以及大数据都是 Spring 正在涉足和创新的领域。Spring 的前景依然会很美好。

      Spring 中常用术语:

      • 框架:是能完成一定功能半成品
        框架能够帮助我们完成的是:项目的整体框架、一些基础功能、规定了类和对象如何创建,如何协作等,当我们开发一个项目时,框架帮助我们完成了一部分功能,我们自己再完成一部分,那这个项目就完成了。
      • 非侵入式设计:
        从框架的角度可以理解为:无需继承框架提供的任何类
        这样我们在更换框架时,之前写过的代码几乎可以继续使用。
      • 轻量级和重量级:
        轻量级是相对于重量级而言的,轻量级一般就是非入侵性的、所依赖的东西非常少、资源占用非常少、部署简单等等,其实就是比较容易使用,而重量级正好相反
      • JavaBean:
        符合 JavaBean 规范的 Java 类
      • POJO:即 Plain Old Java Objects,简单老式 Java 对象
        它可以包含业务逻辑或持久化逻辑,但不担当任何特殊角色不继承或不实现任何其它Java框架的类或接口。

      注意:bean 的各种名称——虽然 Spring 用 bean 或者 JavaBean 来表示应用组件,但并不意味着 Spring 组件必须遵循 JavaBean 规范,一个 Spring 组件可以是任意形式的 POJO。

      • 容器:
        在日常生活中容器就是一种盛放东西的器具,从程序设计角度看就是装对象的的对象,因为存在放入、拿出等操作,所以容器还要管理对象的生命周期

      Spring 的优势

      • 低侵入 / 低耦合 (降低组件之间的耦合度,实现软件各层之间的解耦)
      • 声明式事务管理(基于切面和惯例)
      • 方便集成其他框架(如MyBatis、Hibernate)
      • 降低 Java 开发难度
      • Spring 框架中包括了 J2EE 三层的每一层的解决方案(一站式)

      Spring 能帮我们做什么

      ①.Spring 能帮我们根据配置文件创建及组装对象之间的依赖关系
      ②.Spring 面向切面编程能帮助我们无耦合的实现日志记录,性能统计,安全控制。
      ③.Spring 能非常简单的帮我们管理数据库事务
      ④.Spring 还提供了与第三方数据访问框架(如Hibernate、JPA)无缝集成,而且自己也提供了一套JDBC访问模板来方便数据库访问。
      ⑤.Spring 还提供与第三方Web(如Struts1/2、JSF)框架无缝集成,而且自己也提供了一套Spring MVC框架,来方便web层搭建。
      ⑥.Spring 能方便的与Java EE(如Java Mail、任务调度)整合,与更多技术整合(比如缓存框架)

      Arvin Chen 2019年4月19日 下午3:58
      微信返利机器人
      免费:淘宝,京东,拼多多优惠券
      腾讯,爱奇艺,优酷的VIP视频免费解析,免费看
      即刻扫描二维码,添加微信机器人!

    发表笔记

    电子邮件地址不会被公开。 必填项已用*标注