Spring——框架概述(概念理解)

news/2025/2/23 22:51:02

文章目录:

1.什么是Spring框架?

2.Spring的优点

2.1 轻量

2.2 针对接口编程,解耦合 

2.3 AOP编程的支持

2.4 方便集成各种优秀框架 

3.Spring的体系结构


1.什么是Spring框架?

Spring 是于 2003 年兴起的一个轻量级的 Java 开发框架,它是为了解决企业应用开发的复杂性而创建的。Spring 的核心是控制反转(IoC)面向切面编程(AOP)。Spring 是可以在 Java SE/EE 中使用的轻量级开源框架。

Spring 的主要作用就是为代码“解耦”,降低代码间的耦合度。就是让对象和对象(模块和模块)之间关系不是使用代码关联,而是通过配置来说明。即在 Spring 中说明对象(模块)的关系。

Spring 根据代码的功能特点,使用 Ioc 降低业务对象之间耦合度。IoC 使得主业务在相互调用过程中,不用再自己维护关系了,即不用再自己创建要使用的对象了。而是由 Spring 容器统一管理,自动“注入”,注入即赋值。 而AOP 使得系统级服务得到了最大复用,且不用再由程序员手工将系统级服务“混杂”到主业务逻辑中了,而是由 Spring 容器统一完成“织入”。

Spring的核心技术:IoC、AOP。

Spring又叫做 容器,里面装的是 Java 对象,可以让Spring创建Java对象,同时给对象属性赋值。

Spring可以实现解耦合,解决Java对象之间的耦合、解决模块之间的耦合。

Spring的官网:https://spring.io/


2.Spring的优点

Spring 是一个框架,是一个半成品的软件。有 20 个模块组成。它是一个容器管理对象,容器是装东西的,Spring 容器不装文本,数字。装的是对象。Spring 是存储对象的容器。

2.1 轻量

Spring 框架使用的 jar 都比较小,一般在 1M 以下或者几百 kb。Spring核心功能的所需的 jar 总共在 3M 左右。

Spring 框架运行占用的资源少,运行效率高。不依赖其他 jar。

2.2 针对接口编程,解耦合 

Spring 提供了 IoC 控制反转,由容器管理对象,对象的依赖关系。原来在程序代码中的对象创建方式,现在由容器完成。对象之间的依赖解耦合。

2.3 AOP编程的支持

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

在 Spring 中,开发人员可以从繁杂的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。

2.4 方便集成各种优秀框架 

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

Spring 像插线板一样,其他框架是插头,可以容易的组合到一起。需要使用哪个框架,就把这个插头放入插线板。不需要可以轻易的移除。


3.Spring的体系结构

Spring 由 20 多个模块组成,它们可以分为数据访问/集成(Data Access/Integration)、Web、面向切面编程(AOP, Aspects)、提供 JVM的代理(Instrumentation)、消息发送(Messaging)、核心容器(CoreContainer)和测试(Test)。


http://www.niftyadmin.cn/n/712021.html

相关文章

linux命令设计,设计模式学习之——命令模式

定义:命令模式:将一个请求封装为一个对象,从而使你可用冉的请求对客户进行参数化;对请求排队或记录请求日志,以及支持课撤销的操作。UML:命令模式涉及到五个角色,它们分别是:客户端(…

Android Studio断点调试

Android Studio断点调试 Android Studio包含一个debugger程序,可以帮助你在模拟器和真机上调试你的android应用.通过Android Studio的debugger,你可以: 选择你想调试的设备.在代码上设置断点.在运行时去检查变量和表达式的值.可能平时大家调试代码都是通过打印log的形式,今天带…

python第四十二天 mysql数据库查找数据的方法。

今日内容 1.外键的变种 唯一索引:关键字 unique(num) 作用:使指定的列,中的属性不能重复,并且加速查找案例:create table t5(id int,num int,unique(num))engineInnodb charsetutf8;上述案例num列的属性就不能再重复了&#xff0c…

c语言开发物业收费程序,C语言程序的设计_物业管理系统方案

《C语言程序的设计_物业管理系统方案》由会员分享,可在线阅读,更多相关《C语言程序的设计_物业管理系统方案(10页珍藏版)》请在人人文库网上搜索。1、i nclude stdio.h#i nclude stdlib.h#include string.h#defi ne M 5 struct Peopleint a;char min g30…

bzoj3531【SDOI2014】旅行

3531: [Sdoi2014]旅行 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 850 Solved: 433[Submit][Status][Discuss]Description S国有N个城市,编号从1到N。城市间用N-1条双向道路连接,满足 从一个城市出发能够到达其他全部城市。每一个城市信仰不同的…

macfee怎么生成释放代码_设计稿生成代码与 Serverless 的前世今生和未来!

前端智能化方向一被提及,就不免有人好奇:前端结合机器学习能做些什么,怎么做,未来会不会对前端产生很大的冲击等等。本文以「设计稿自动生成代码」场景为例,细述我们的思考及过程实践。前端智能化与云 IDE 的结合&…

Spring——IoC基本概念的理解,IDEA中使用Maven搭建Spring框架、运行第一个Spring程序

文章目录: 1.Spring IoC的基本概念 1.1 IoC中的控制和反转 1.2 IoC的技术实现 1.3 Spring框架使用DI实现IoC 2.搭建Spring框架 2.1 创建Maven项目 2.2 对项目中的某些特定内容进行修改 2.3 在pom.xml文件中加入相关依赖 2.4 定义相关的接口和实现类 2.…

c语言中怎么在文本查找数据类型,【单选题】在C语言中,现在要记录货币数据,请您选择____________数据类型。 A. 货币类型 B. 整数类型 C. 浮点数类型 D. 文本类型...

【单选题】在C语言中,现在要记录货币数据,请您选择____________数据类型。A. 货币类型 B. 整数类型 C. 浮点数类型 D. 文本类型更多相关问题【判断题】The suffix \"-ent\" also can combine with verbs to form nouns, for example, correspondent(通讯员).【多选题…