百度:Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。
一站式实际上是在夸Spring很全面,因为它对各种主流技术和框架都进行了整合,外面很多技术都可以跟spring完美整合进行工作。
轻量级和重量级的划分主要依据以看它使用了多少服务,启动时需要加载的资源以及耦合度等因素
首先,轻量级是比较出来的,如和EJB比较。
Spring容器本身提供了很多服务,但是这些服务并不是默认打开的,我们可以根据需求去指明需要某些服务,我们只需要打开使用的一些服务即可。从大小上来说,Spring的核心包容量大小不到1MB,使用Spring核心包的资源负担也小。
EJB来源于官方,设计目标与核心应用是部署分布式应用程序。目前EJB容器就默认为应用提供了EJB规范中所有的功能,它属于重量级框架。但是软件发展到目前为止,大多数应用不需要采用分布式的解决方案,因此用EJB显得太臃肿了。
举个例子:你家闯入一匹狼,警察要来帮你清理。EJB就相当于坦克,Spring就相当于步枪,你说你用哪个。
Spring就是一个容器,可以将所有对象创建和关系维护交给Spring管理
什么是耦合度?对象之间的关系,通常说当一个模块(对象)更改时也需要更改其他模块(对象),这就是耦合,耦合度过高会使代码的维护成本增加。要尽量解耦
Spring提供面向切面编程,方便实现程序进行权限拦截,运行监控等功能。
通过配置完成事务的管理,无需手动编程
Spring对Junit4支持,可以使用注解测试
不排除各种优秀的开源框架,内部提供了对各种优秀框架的直接支持
就知道有些同学看不懂,不要急,后面会一一解释
Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式如下图:
Spring 是模块化的,允许你挑选和选择适用于你的模块,不必要把剩余部分也引入。下面大致介绍各大模块的内容:
包含了Spring框架基本的核心工具类,Core模块是其他组件的基本核心。
core部分包含4个模块:
1、spring-core:依赖注入IoC与DI的最基本实现
2、spring-beans:Bean工厂与bean的装配
3、spring-context:spring的context上下文即IoC容器
4、spring-expression:spring表达式语言
数据访问/集成层包括 JDBC,ORM,OXM,JMS 和事务处理模块(简)
Web 层由 Web,Web-MVC,Web-Socket 和 Web-Portlet 组成 (简)
AOP:提供了面向切面编程的实现,让你可以定义方法拦截器和切点,从而将逻辑代码分开,降低代码间的耦合性。
Aspects:提供了对AspectJ的集成支持,这是一个功能强大且成熟的面向方面编程(AOP)框架。
WebSocket:提供了一个在Web应用中高效、双向的通信工具。
Instrumentation:提供了在特定的应用服务器中使用类工具的支持和类加载器实现。
支持使用JUnit和TestNG对Spring组件进行测试。
Spring体系简写了一部分,有需要的朋友可以取查阅其他笔记
本文以Spring初学开篇为主,下一章:配置Spring开发环境https://blog.csdn.net/qq_34598667/article/details/83184940