【spring】spring是什么?详解它的特点与模块

news/2024/10/30 9:22:29/

作者:Insist--

个人主页:insist--个人主页

作者会持续更新网络知识和python基础知识,期待你的关注

目录

一、spring介绍

二、spring的特点(七点)

1、简化开发

2、AOP的支持

3、声明式事务的支持

4、方便测试

5、方便集成各种优秀框架

6、降低Java EE API的使用难度

7、Java 源码是经典学习范例

三、Spring框架的七大模块

 1、Spring Core

2、Spring Context

3、Spring DAO

4、Spring ORM

5、Spring AOP

6、Spring Web

7、Spring Web MVC


前言

本文将详细介绍spring是什么、它的特点(七点)与框架的七总模块。

fa37a3ca292340dbbc5df6b7ea4145be.WEBP

一、spring介绍

Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器。

Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大的IOC、AOP及Web MVC等功能。Spring不仅仅能应用于JEE应用程序之中,也可以应用于桌面应用程序小应用程序之中。

简单的来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。

二、spring的特点(七点)

1、简化开发

通过Spring提供的IOC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为很底层的需求编写代码,可以更专注于上层的应用。

2、AOP的支持

通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。

3、声明式事务的支持

在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。

4、方便测试

可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的操作,而是随手可做的事情

5、方便集成各种优秀框架

Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring提供了对各种优秀框架(Hessian、Quartz)等的直接支持。

6、降低Java EE API的使用难度

Spring对很多难用的Java EE API(如JDBC,JavaMail,远程调用等)提供了一个薄薄的封装层,通过Spring的简易封装,这些Java EE API的使用难度大为降低。

7、Java 源码是经典学习范例

Spring的源码设计精妙、结构清晰、匠心独运,处处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣。Spring框架源码无疑是Java技术的最佳实践范例。如果想在短时间内迅速提高自己的Java技术水平和应用开发水平,学习和研究Spring源码将会使你收到意想不到的效果。

三、Spring框架的七大模块

 1、Spring Core

Core封装包是框架的最基础部分,提供IOC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。

2、Spring Context

构建于Core封装包基础上的 Context封装包,提供了一种框架式的对象访问方法,有些象JNDI注册器。Context封装包的特性得自于Beans封装包

3、Spring DAO

DAO 提供了JDBC的抽象层,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。 并且,JDBC封装包还提供了一种比编程性更好的声明性事务管理方法。

4、Spring ORM

ORM 封装包提供了常用的“对象/关系”映射APIs的集成层。 包括JPA、JDO、Hibernate 和 iBatis 。利用ORM封装包,可以混合使用所有Spring提供的特性进行“对象/关系”映射,如前边提到的简单声明性事务管理。

5、Spring AOP

Spring的 AOP 封装包提供了符合AOP Alliance规范的面向方面的编程实现,让你可以定义,例如方法拦截器和切点,从逻辑上讲,从而减弱代码的功能耦合,清晰的被分离开。而且,利用source-level的元数据功能,还可以将各种行为信息合并到你的代码中。

6、Spring Web

Spring中的 Web 包提供了基础的针对Web开发的集成特性,例如多方文件上传,利用Servlet listeners进行IOC容器初始化和针对Web的ApplicationContext。当与WebWork或Struts一起使用Spring时,这个包使Spring可与其他框架结合。

7、Spring Web MVC

Spring中的MVC封装包提供了Web应用的Model-View-Controller(MVC)实现。Spring的MVC框架并不是仅仅提供一种传统的实现,它提供了一种清晰的分离模型,在领域模型代码和Web Form之间。并且,还可以借助Spring框架的其他特性。


http://www.ppmy.cn/news/368716.html

相关文章

LVS负载均衡与DR模式

LVS负载均衡与DR模式 一、DR模式的特点二、LVS-DR中的ARP问题1.VIP地址相同导致响应冲突2.返回报文时源地址使用VIP,导致网关设备的ARP缓存表紊乱 三、DR模式 LVS负载均衡群集部署实验准备实验部署实验步骤1.配置负载调度器(192.168.30.10)2.…

【数据库原理与实践】知识点归纳(上)

第1章 数据库系统概述 (数据处理技术的发展 数据库的基本概念和特点) 一:数据、信息、知识、决策 对应:Data、Information、Knowledge、Decision 二:数据库技术的产生与发展 产生原因:数据管理任务的…

3068说明书

首发本人小站 (https://c.undf.top) AKKO3068说明书 thumbnail: >- date: 2021-06-10 21:20:55 updated: categories: keywords: description: [外链图片转存中…(img-914mL0at-1665060648308)]

有用的

动态导航 CPND车友在线实时路况诞生 实时路况在国内其实并不算新鲜事物。众多国际GPS品牌都试水过实时路况,但在中国大陆都没有取得好的效果。中国实时路况目前最普遍的形式还是基于FM的信息播报,内容无外乎1039路况信息和地图拥堵路段标识。用户对两种方…

StringEscapeUtils.unescapeHtml的使用

富文本提交数据到后台后&#xff0c;保存到数据库的格式可能是这样的&#xff1a; <p>【产品名称】艾酷维多种维生素锌软糖</p> 我们有时候需要的是&#xff1a; <p>【产品名称】艾酷维多种维生素锌软糖</p> 所以就需要用到 StringEscapeUtils 类…

富文本提交数据到后台防止xss攻击

StringEscapeUtils.unescapeHtml的使用 富文本提交数据到后台后&#xff0c;保存到数据库的格式可能是这样的&#xff1a; <p>打发 发顺丰</p> 我们有时候需要的是&#xff1a; <p>打发 发顺丰</p> public static void main(String[] args) { //方式一…

vivo冯宇飞:iQOO不请代言人 品牌更亲近互联网用户

iQOO品牌负责人冯宇飞 新浪手机讯 2月21日下午消息&#xff0c;中国手机厂商vivo旗下子品牌iQOO&#xff08;中文发音艾酷&#xff09;在北京举办了一场小型媒体沟通会&#xff0c;会上vivo副总裁、iQOO品牌负责人冯宇飞与新浪手机在内的几家媒体聊了聊iQOO品牌的规划。 iQOO是…

【记录点滴】StringEscapeUtils.unescapeHtml与StringEscapeUtils.escapeHtml4使用

StringEscapeUtils.unescapeHtml的使用 富文本提交数据到后台后&#xff0c;保存到数据库的格式可能是这样的&#xff1a; <p>【产品名称】艾酷维多种维生素锌软糖</p> 我们有时候需要的是&#xff1a; <p>【产品名称】艾酷维多种维生素锌软糖</p>…