你好啊,Spring !!!

  • 前言
  • 初识Spring
  • 一、Spring
  • 二、Spring的体系结构
    • Core Container(核心容器)
    • Data Access/Integration(数据访问/集成)
    • Web
    • 其他
  • 三、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

你好啊,Spring !!!相关推荐

  1. Spring MVC 入门

    这篇文章将教你快速地上手使用 Spring 框架. 如果你手上有一本<Spring in Action>, 那么你最好从第三部分"Spring 在 Web 层的应用--建立 We ...

  2. spring-mybatis.xml 访问html5,Spring mvc无xml配置及利用JdbcTemplate访问数据库

    项目结构 一.新建动态web项目取名HelloSpringMVC 二./WebContent/WEB-INF/lib下导入必要依赖库 commons-collections4-4.1.jar.comm ...

  3. Spring 的application.properties项目配置与注解

    一.项目结构介绍 如上图所示,Spring Boot的基础结构共三个文件: src/main/java  程序开发以及主程序入口 src/main/resources 配置文件 src/test/ja ...

  4. 【Spring Boot】使用Spring Boot来搭建Java web项目以及开发过程

    [Spring Boot]使用Spring Boot来搭建Java web项目以及开发过程 一.Spring Boot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来 ...

  5. 深入学习Spring框架(二)- 注解配置

    1.为什么要学习Spring的注解配置? 基于注解配置的方式也已经逐渐代替xml.所以我们必须要掌握使用注解的方式配置Spring. 关于实际的开发中到底使用xml还是注解,每家公司有着不同的使用习惯 ...

  6. SpringBoot/Spring Cloud/Docker

    第九阶段模块一 SpringBoot 1. SpringBoot基本应用 1.1 约定优于配置 ​ 官方: Spring Boot 是所有基于 Spring 开发的项目的起点.Spring Boot ...

  7. spring学习笔记(spring概述和IOC)

    spring5 1.spring的概述 1.1.spring是什么 Spring 是于 2003 年兴起的一个轻量级的 Java 开发框架,它是为了解决企业应用开发的复杂性而创建的. Spring 的 ...

  8. Spring学习笔记:1(初步认识概念)

    Spring的三大主要特征 spring主要特征有三个:控制反转(IOC),依赖注入(DI)和面向切面(AOP). IoC:Inverse of Control(控制反转) 1.对控制反转的理解 传统 ...

  9. 超详细的Spring Cloud全面总结2W字(建议收藏)

    来自:FrancisQ 原文:juejin.im/post/6844904007975043079 首先我给大家看一张图,如果大家对这张图有些地方不太理解的话,我希望你们看完我这篇文章会恍然大悟. 什 ...

最新文章

  1. 生信小白7行代码画一个高颜值的世界地图
  2. 与springcloud整合的框架源码读取入口
  3. [分享] 关于App Store下载到一半发生错误的问题 [复制链接]
  4. BZOJ 2333 【SCOI2011】 棘手的操作
  5. Dns服务器与iptables的问题【已解决】
  6. 丁腈橡胶自然老化时间_东莞元耀:解析抗UV老化试验箱正确的操作流程步骤
  7. ASP.NET Web API 接口执行时间监控
  8. 005-搭建框架-实现AOP机制【二】AOP技术
  9. Swift编程-闭包Closure
  10. c#对PL/SQL查询结果列复制的结果生成指定格式
  11. Unity zSpace 开发
  12. H3CSE路由-BGP属性
  13. Docker容器网络访问慢问题
  14. mysql查询从周一开始算本周第一天
  15. 超鸿蒙是什么意思,“志在烟霞慕隐沦,功成归看五湖春。一叶舟中吟复醉,云水。”的意思,诗词全文,作者,上一句和下一句是什么?-选自五代李珣《定风波·志在烟霞慕隐沦》-古诗词名句大全...
  16. 2021 年 MathorCup 高校数学建模挑战赛——大数据竞赛B题
  17. 【MySQL篇】第一篇——数据库基础
  18. UBT27:ubuntu安装VMware16
  19. 计算机二级vb知识点汇总,计算机等级考试二级VB考点:控件数组
  20. 检测微信号码工具|官方正式版

热门文章

  1. 【文献调研】在Pubmed上搜索特定影响因子期刊上的论文
  2. WSL安装桌面环境xfce4
  3. TestDirector的安装和使用---综合汇总
  4. 腾讯通服务器文件目录,《腾讯RTX快速部署指南》
  5. 【Vuforia AR Unity 2018.3.12f1】MikuAR安卓程序开发实践(三)代码终结篇_2019.4.24
  6. 前端图片无损压缩在线工具
  7. android ble配对绑定,Android蓝牙(一)搜索配对和绑定
  8. Everything汉化版
  9. 计算机网络学习(二)物理层
  10. 微软服务器搭建ngrok,ngrok搭建(Windows服务端+Windows客户端)