
本文共 2904 字,大约阅读时间需要 9 分钟。
你好啊,Spring !!!
前言
最近在想是否去写一个系列的文章,但怕被一些事给影响,就一直没有动手去执行,准备了一段时间,今天算第一篇专题文章吧。希望对大家有用。2021,一起变好!!!
初识Spring
一、Spring
什么是Spring?
“Spring是分层的JavaSE/EE full-stack 轻量级开源框架,以IoC(Inverse of Control 控制反转)和AOP(Aspect Oriented Programming 面向切面编程)为内核,使用基本的JavaBean来完成以前只可能由EJB(企业JavaBean)完成的工作,取代了EJB的臃肿、低效的开发模式。”
可能你还不完全理解这句话,但是我们可以知道的是Spring提出了使用基本JavaBean完成企业级JavaBean才能完成的工作的解决方案。那么是什么样的解决方案呢?不急,咱们慢慢来。
我们都知道,在实际开发中,通常服务器端采用三层体系架构(表示层(Web)、业务逻辑层(Service)、持久层(Dao)),而Spring通过对每一层提供相应的技术支持,从而简化了开发、降低了项目测试门槛、降低了JavaBean间的耦合性。
那么Spring为什么如此倍受Java开发人员的青睐呢?看了Spring的优点就知道了。
-
非侵入式:基于Spring开发的应用中的对象可以不依赖Spring的API
-
组件化:Spring实现了使用简单的组件配置组合成一个复杂的应用。(使用XML和Java注解组合这些对象)
-
支持AOP(面向切面编程)后面文章专门讨论。
-
Spring提供了一致的事务管理接口,可向下扩展到本地事务并扩展到全局事务
-
由于项目环境中的相关代码被移入了Spring框架,因此测试一个Spring应用程序很容易,同时通过使用JavaBean-style POJO,使得使用依赖注入测试数据时变得更容易。
-
Spring将项目中重复的模块提出来,形成独立的框架,如日志框架、ORM框架。当人们再次使用时,可直接加入即可。
-
Spring对JavaEE开发中难用的API提供了封装,使得这些API应用难度大大降低。
总结:
二、Spring的体系结构
虽然Spring框架为开发者提供了20个模块,但是开发中我们可以根据应用程序的要求来使用这些模块。
Core Container(核心容器)
-
Beans
1、提供了BeanFactory,工厂模式的微妙实现,它移除了编码式单例的需要,并且可以把配置和依赖从实际编码逻辑中解耦。
2、Spring将管理对象称为Bean -
Core:提供了框架的基本组成部分,包括 IoC 和(DI)依赖注入功能。
-
Context
1、建立在Core和Beans模块的基础之上,它是访问定义和配置的任何对象的媒介。它以一种类似于 JNDI 注册的方式访问对象
2、Context 模块继承自 Bean 模块,并且添加了国际化(比如,使用资源束)、事件传播、资源加载和透明地创建上下文(比如,通过 Servelet 容器)等功能。
3、支持 Java EE 的功能,比如 EJB、JMX 和远程调用等 -
SpEL:Spring3.0后新增的模块,是运行时查询和操作对象图的强大的表达式语言。
Data Access/Integration(数据访问/集成)
-
JDBC(Java Data Base Connectivity)
1、提供了一个JDBC的抽象层,大幅度的减少了在开发过程中的数据库操作的编码
2、消除了冗长的JDBC编码和对数据库供应商特定错误代码的解析 -
ORM(Object Relational Mapping)
1、对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配现象的技术。
2、提供了对流行的对象关系映射 API 的集成,包括 JPA、JDO 和 Hibernate 等。通过此模块可以让这些 ORM 框架和 spring的其它功能整合,比如前面提及的事务管理。 -
OXM(Object XML Mapping):提供了一个支持对象/ XML映射的抽象层实现,如JAXB、Castor、XMLBeans、JiBX和XStream。
-
JMS(Java Message Service):指Java消息传递服务,包含使用和产生信息的特性,自4.1版本后支持与Spring-message模块的集成。
-
Transactions:支持对实现特殊接口以及所有POJO类的编程和声明式的事务管理。
补充:POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。
Web
-
Web:提供了基本的Web开发集成特性,如:多文件上传、使用Servlet监听器来初始化IoC容器以及Web应用上下文。
-
Servlet:Spring-web MVC模块,包含Spring模型-视图-控制器(MVC)和REST Web Services实现的Web程序。
-
Portlet:提供了在Portlet环境中使用MVC实现,类似Servlet模块的功能。
-
WebSocket:Spring 4.0以后新增的模块,它提供了WebSocket和SocketJS的实现,以及对STOMP的支持。
其他
-
AOP:提供了面向切面的编程实现,允许你定义方法拦截器和切入点对代码进行干净地解耦,从而使实现功能的代码彻底的解耦出来。使用源码级的元数据,可以用类似于.NET属性的方式合并行为信息到代码中。
-
Aspects:模块提供了与 AspectJ 的集成,这是一个功能强大且成熟的面向切面编程(AOP)框架。
-
Instrumentation:在一定的应用服务器中提供了类 instrumentation 的支持和类加载器的实现。
-
Messaging:为 STOMP 提供了支持作为在应用程序中 WebSocket 子协议的使用。它也支持一个注解编程模型,它是为了选路和处理来自 WebSocket 客户端的 STOMP 信息。
-
Test:支持对具有 JUnit 或 TestNG 框架的 Spring 组件的测试。
三、Spring框架文件说明
文件名称 | 说明 |
---|---|
libs | 包含JAR包和源码 |
docs | 包含API文档和开发规范 |
Schema | 包含开发所需要的schema文件 |
libs目录如下:
libs目录JAR文件说明
文件名称 | 说明 |
---|---|
.RELEASE.jar | class文件JAR包 |
.RELEASE-javadoc.jar | API文档压缩包 |
.RELEASE-sources.jar | 源文件压缩包 |
第三方依赖包说明
在使用Spring开发时,除了要使用自带的JAR包外,Spring的核心容器还需要依赖commons.logging的JAR包。
链接| https://repo.spring.io/webapp/#/home
转载地址:https://blog.csdn.net/weixin_43452424/article/details/113267634 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关于作者
