Spring概述
Spring 是最受欢迎的企业级 Java 利用程序开发框架,数以百万的来自世界各地的开发人员应用 Spring 框架来创立性能好、易于测试、可重用的代码。
Spring 框架是一个开源的 Java 平台,它最后是由 Rod Johnson 编写的,并且于 2003 年 6 月首次在 Apache 2.0 许可下公布。
Spring 是轻量级的框架,其根底版本只有 2 MB 左右的大小。
Spring 框架的外围个性是能够用于开发任何 Java 应用程序,然而在 Java EE 平台上构建 web 应用程序是须要扩大的。 Spring 框架的指标是使 J2EE 开发变得更容易应用,通过启用基于 POJO 编程模型来促成良好的编程实际。
三层架构
- A 体现层 web层 MVC是体现层的一个设计模型
- B 业务层 service层
- C 长久层 dao层
Spring 的低劣个性
- 非侵入式:基于Spring开发的利用中的对象能够不依赖于Spring的API
- 管制反转:IOC——Inversion of Control,指的是将对象的创立权交给 Spring 去创立。应用 Spring 之前,对象的创立都是由咱们本人在代码中new创立。而应用 Spring 之后。对象的创立都是给了 Spring 框架。
- 依赖注入:DI——Dependency Injection,是指依赖的对象不须要手动调用 setXX 办法去设置,而是通过配置赋值。
- 面向切面编程:Aspect Oriented Programming——AOP
- 容器:Spring 是一个容器,因为它蕴含并且治理利用对象的生命周期
- 组件化:Spring 实现了应用简略的组件配置组合成一个简单的利用。在 Spring 中能够应用XML和Java注解组合这些对象。
- 一站式:在 IOC 和 AOP 的根底上能够整合各种企业应用的开源框架和优良的第三方类库(实际上 Spring 本身也提供了体现层的 SpringMVC 和长久层的 Spring JDBC)
应用 Spring 框架的益处
上面列出的是应用 Spring 框架次要的益处:
Spring 能够使开发人员应用 POJOs 开发企业级的应用程序。只应用 POJOs 的益处是你不须要一个 EJB 容器产品,比方一个应用程序服务器,然而你能够抉择应用一个强壮的 servlet 容器,比方 Tomcat 或者一些商业产品。
Spring 在一个单元模式中是有组织的。即便包和类的数量十分大,你只有放心你须要的,而其它的就能够疏忽了。
Spring 不会让你白费力气做反复工作,它真正的利用了一些现有的技术,像 ORM 框架、日志框架、JEE、Quartz 和 JDK 计时器,其余视图技术。
测试一个用 Spring 编写的应用程序很容易,因为环境相干的代码被挪动到这个框架中。此外,通过应用 JavaBean-style POJOs,它在应用依赖注入注入测试数据时变得更容易。
Spring 的 web 框架是一个设计良好的 web MVC 框架,它为比方 Structs 或者其余工程上的或者不怎么受欢迎的 web 框架提供了一个很好的供代替的抉择。MVC 模式导致应用程序的不同方面(输出逻辑,业务逻辑和UI逻辑)拆散,同时提供这些元素之间的涣散耦合。模型(Model)封装了应用程序数据,通常它们将由 POJO 类组成。视图(View)负责渲染模型数据,一般来说它生成客户端浏览器能够解释 HTML 输入。控制器(Controller)负责解决用户申请并构建适当的模型,并将其传递给视图进行渲染。
Spring 对 JavaEE 开发中十分难用的一些 API(JDBC、JavaMail、近程调用等),都提供了封装,使这些API利用难度大大降低。
轻量级的 IOC 容器往往是轻量级的,例如,特地是当与 EJB 容器相比的时候。这有利于在内存和 CPU 资源无限的计算机上开发和部署应用程序。
Spring 提供了统一的事务管理接口,可向下扩大到(应用一个繁多的数据库,例如)本地事务并扩大到全局事务(例如,应用 JTA)。
依赖注入(DI)
Spring 最认同的技术是管制反转的依赖注入(DI)模式。管制反转(IoC)是一个通用的概念,它能够用许多不同的形式去表白,依赖注入仅仅是管制反转的一个具体的例子。
当编写一个简单的 Java 应用程序时,应用程序类应该尽可能的独立于其余的 Java 类来减少这些类可重用可能性,当进行单元测试时,能够使它们独立于其余类进行测试。依赖注入(或者有时被称为配线)有助于将这些类粘合在一起,并且在同一时间让它们放弃独立。
到底什么是依赖注入?
让咱们将这两个词离开来看一看。这里将依赖关系局部转化为两个类之间的关联。例如,类 A 依赖于类 B。当初,让咱们看一看第二局部,注入。所有这所有都意味着类 B 将通过 IoC 被注入到类 A 中。
依赖注入能够以向构造函数传递参数的形式产生,或者通过应用 setter 办法 post-construction。因为依赖注入是 Spring 框架的外围局部,所以我将在一个独自的章节中利用很好的例子去解释这一概念。
面向切面的程序设计(AOP):
Spring 框架的一个要害组件是面向切面的程序设计(AOP)框架。一个程序中逾越多个点的性能被称为横切关注点,这些横切关注点在概念上独立于应用程序的业务逻辑。有各种各样常见的很好的对于方面的例子,比方日志记录、申明性事务、安全性,和缓存等等。
在 OOP 中模块化的要害单元是类,而在 AOP 中模块化的要害单元是方面。AOP 帮忙你将横切关注点从它们所影响的对象中分离出来,然而依赖注入帮忙你将你的应用程序对象从彼此中分离出来。
Spring 框架的 AOP 模块
提供了面向方面的程序设计实现,能够定义诸如办法拦截器和切入点等,从而使实现性能的代码彻底的解耦进去。应用源码级的元数据,能够用相似于 .Net 属性的形式合并行为信息到代码中。我将在一个独立的章节中探讨更多对于 Spring AOP 的概念。
以上就是Spring框架的内容,心愿对大家有帮忙,初学者学spring我更倡议视频学习,举荐能源节点的spring教程。