Spring 6 第1章——概述

一.Spring是什么

  1. Spring是一款主流的Java EE轻量级(体积小、不需要依赖其它组件)开源框架
  2. Spring的目的是用于简化Java企业级应用的开发难度和开发周期
  3. Spring的用途不仅限于服务端的开发,从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益
  4. Spring框架除了自己提供功能外,还提供整合其它技术和框架的能力

二、Spring的狭义和广义

  1. 广义上的Spring:Spring技术栈
    1. 广义上的Spring,泛指以Spring Framework为核心的Spring技术栈
    2. 经过十多年的发展,Spring已经不再是一个单纯的应用框架,而是逐渐发展成为一个由多个不同的子项目(模块)组成的成熟技术,例如,Spring Framework、Spring MVC、Spring Boot、Spring Cloud、Spring Data、Spring Security等,其中Spring Framework是其他子项目的基础
  2. 狭义上的Spring:Spring Framework
    1. 狭义的Spring特指Spring Framework,通常我们将它称为Spring框架
    2. Spring有两个最核心模块:(1)IoC:Inverse if Control,翻译为“控制反转”,指把创建对象过程交给Spring进行管理(2)AOP:Aspect Oriented Programming的简写,翻译为“面向切面编程”。AOP用来封装多个类的公共行为,将那些与业务无关,却为业务模块所共用的逻辑封装起来,减少系统的重复代码,降低模块间的耦合度。另外,AOP还解决一些系统层面上的问题,比如:日志、事务、权限等

三、Spring Framework特点

  1. 非侵入式:使用 Spring Framework 开发应用程序时,Spring 对应用程序本身的结构影响非常小。对领域模型可以做到零污染;对功能性组件也只需要使用几个简单的注解进行标记,完全不会破坏原有结构,反而能将组件结构进一步简化。这就使得基于 Spring Framework 开发应用程序时结构清晰、简洁优雅
  2. 控制反转:IoC——Inversion of Control,翻转资源获取方向。把自己创建资源、向环境索取资源变成环境将资源准备好,我们享受资源注入
  3. 面向切面编程:AOP——Aspect Oriented Programming,在不修改源代码的基础上增强代码功能
  4. 容器:Spring IoC是一个容器,因为它包含并且管理组件对象的生命周期。组件享受到了容器化的管理,替程序员屏蔽了组件创建过程中的大量细节,极大的降低了使用门槛,大幅度提高了开发效率
  5. 组件化:Spring实现了使用简单的组件配置组合成一个复杂的应用。在Spring中可以使用XML和Java注解组合这些对象。这使得我们可以基于一个个功能明确、边界清晰的组件有条不紊的搭建超大型复杂应用系统
  6. 一站式:在IoC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方类库。而且 Spring 旗下的项目已经覆盖了广泛领域,很多方面的功能性需求可以在 Spring Framework 的基础上全部使用 Spring 来实现

四、Spring模块组成

  1. 该图中包含了Spring框架的所有模块,这些模块可以满足一切企业级应用开发的需求,在开发过程中可以根据需要有选择性地使用所需要的模块
  2. Spring Core(核心容器):spring core提供了IOC,DI,Bean配置装载创建的核心实现。核心概念: Beans、BeanFactory、BeanDefinitions、ApplicationContext
    1. spring-core :IOC和DI的基本实现

    2. spring-beans:BeanFactory和Bean的装配管理(BeanFactory)

    3. spring-context:Spring context上下文,即IOC容器(AppliactionContext)

    4. spring-expression:spring表达式语言

  3. Spring AOP(面向切面编程)
    1. spring-aop:面向切面编程的应用模块,整合ASM,CGLib,JDK Proxy
    2. spring-aspects:集成AspectJ,AOP应用框架
    3. spring-instrument:动态Class Loading模块
  4. Spring Data Access(数据访问)
    1. spring-jdbc:spring对JDBC的封装,用于简化jdbc操作
    2. spring-orm:java对象与数据库数据的映射框架
    3. spring-oxm:对象与xml文件的映射框架
    4. spring-jms: Spring对Java Message Service(java消息服务)的封装,用于服务之间相互通信
    5. spring-tx:spring jdbc事务管理
  5. Spring Web(应用程序)
    1. spring-web:最基础的web支持,建立于spring-context之上,通过servlet或listener来初始化IOC容器
    2. spring-webmvc:实现web mvc
    3. spring-websocket:与前端的全双工通信协议
    4. spring-webflux:Spring 5.0提供的,用于取代传统java servlet,非阻塞式Reactive Web框架,异步,非阻塞,事件驱动的服务
  6. Spring Message(消息传递)
    1. Spring-messaging:spring 4.0提供的,为Spring集成一些基础的报文传送服务
  7. Spring test(测试)
    1. spring-test:集成测试支持,主要是对junit的封装

五、Spring6特点

(1)版本要求

  1. Spring6要求JDK最低版本是JDK17

(2)本课程软件版本

  1. IDEA开发工具:2022.1.2
  2. JDK:java17
  3. Spring:6.0.2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/954956.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

git管理源码之git安装和使用

git是什么? git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理,也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。git与常用的版本控制工具SVN等不同,它采用…

大疆最新款无人机发布,可照亮百米之外目标

近日,DJI 大疆发布全新小型智能多光旗舰 DJI Matrice 4 系列,包含 Matrice 4T 和 Matrice 4E 两款机型。DJI Matrice 4E 价格为27888 元起,DJI Matrice 4T价格为38888元起。 图片来源:大疆官网 DJI Matrice 4E DJI Matrice 4T D…

基于Java的语音陪聊软件——支持聊天私聊-礼物系统-直播系统-缘分匹配-游戏陪玩

丰富的经验、成熟的技术,打造适合当下市场发展的语音交友软件源码。Java 语言凭借其独特的优势,为这款语音陪聊软件的稳健运行和持续发展奠定了坚实基础。它不仅融合了聊天私聊、礼物系统和直播系统等实用且有趣的功能,还创新性地引入了缘分匹…

npm发布工具包+使用

1.初始化package包 npm init -y {"name": "common-cjs-tools","version": "1.0.0","main": "index.js","scripts": {"test": "echo \"Error: no test specified\" &&…

WXML模版语法-事件绑定

知识点1:什么是事件 事件是渲染层到逻辑层的通讯方式。通过事件可以将用户在渲染层产生的行为,反馈到逻辑层进行业务的处理。 知识点2:小程序中常用的事件 类型绑定方式事件描述tapbindtap或bind:tap手指触摸后马上离开,类似于…

Uniapp-运行到手机安卓基座报错

1、运行报错 2、解决adb冲突,显示设备列表,说明手机与电脑连接成功 3、重新运行,还是找不到,就多刷新几下即可。

ESP8266固件烧录

一、烧录原理 1、引脚布局 2、引脚定义 3、尺寸封装 4、环境要求 5、接线方式 ESP8266系列模块集成了高速GPI0和外围接口,这可能会导致严重的开关噪声。如果某些应用需要高功率和EMI特性,建议在数字I/0线上串联10到100欧姆。这可以在切换电源时抑制过冲…

紫光无人机AI飞控平台介绍

随着无人机技术的迅猛发展,无人机飞控平台的智能化需求不断提升。紫光无人机AI飞控平台作为一款创新型产品,为用户提供了从飞行控制到任务管理的一站式解决方案,尤其在AI实时识别和事件分析方面具有显著优势。本文将介绍平台的核心功能、技术…

【SpringBoot】Spring 一站式解决方案:融合统一返回结果、异常处理与适配器模式

前言 🌟🌟本期讲解关于统一功能处理的详细介绍~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🔥 你的点赞就是小编不断更新的最大动力 🎆那么废话…

回归预测 | MATLAB实RVM相关向量机多输入单输出回归预测

回归预测 | MATLAB实RVM相关向量机多输入单输出回归预测 目录 回归预测 | MATLAB实RVM相关向量机多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 RVM-Adaboost相关向量机集成学习多输入单输出回归预测是一种先进的机器学习方法,用于处理…

【C语言】内存函数详解与模拟实现

文章目录 拓展:Ⅰ. memcpy -- 内存拷贝1、函数介绍与使用2、模拟实现 Ⅱ. memmove -- 内存拷贝1、函数介绍与使用(与memcpy函数的区别)2、模拟实现 Ⅲ. memcmp -- 内存比较1、函数介绍与使用2、模拟实现 Ⅳ. memset -- 内存设置1、函数介绍与…

解析OVN架构及其在OpenStack中的集成

引言 随着云计算技术的发展,虚拟化网络成为云平台不可或缺的一部分。为了更好地管理和控制虚拟网络,Open Virtual Network (OVN) 应运而生。作为Open vSwitch (OVS) 的扩展,OVN 提供了对虚拟网络抽象的支持,使得大规模部署和管理…

解密AIGC三大核心算法:GAN、Transformer、Diffusion Models原理与应用

在当今数字化时代,人工智能生成内容(AIGC)技术正以前所未有的速度改变着我们的生活和工作方式。从创意无限的文本生成,到栩栩如生的图像创作,再到动听的音乐旋律,AIGC的魔力无处不在。而这一切的背后&#…

艾体宝干货丨网络故障排除基本指南

一、确保网络可视性以有效排除故障 有效的网络故障排除要求对穿越网络的数据具有完全的可见性,以便迅速识别和解决潜在问题。本指南深入探讨了一种结构化的网络分析方法,旨在提高故障排除的效率。首先,提出正确的问题至关重要,它…

汽车免拆诊断案例 | 2007 款法拉利 599 GTB 车发动机故障灯异常点亮

故障现象  一辆2007款法拉利599 GTB车,搭载6.0 L V12自然吸气发动机(图1),累计行驶里程约为6万km。该车因发动机故障灯异常点亮进厂检修。 图1 发动机的布置 故障诊断 接车后试车,发动机怠速轻微抖动,…

浪潮海岳 UploadListFile文件上传致RCE漏洞

一、漏洞简介 浪潮云财务系统的/cwbase/EP/ListContent/UploadListFile.ashx接口存在任意文件上传漏洞,未经身份验证的攻击者可以通过该漏洞上传恶意脚本文件,从而控制目标服务器。 二、漏洞影响 三、网络测绘: fofa: body"/cwbase/w…

高等数学学习笔记 ☞ 不定积分的积分法

1. 第一换元积分法 1. 基础概念:形如的过程,称为第一换元积分法。 2. 核心思想:通过对被积函数的观察(把被积函数的形式与积分表的积分公式进行比较),把外部的部分项拿到的内部(求原函数), 然后进行拼凑,…

Spring Boot 整合 Shiro详解

文章目录 Spring Boot 整合 Shiro详解一、引言二、整合步骤1、创建项目并引入依赖2、配置Shiro2.1、自定义Realm2.2、配置SecurityManager和ShiroFilterFactoryBean 三、使用示例四、总结 Spring Boot 整合 Shiro详解 一、引言 在现代的Web应用开发中,用户认证和授…

win10 Outlook(new) 企业邮箱登录 登录失败。请在几分钟后重试。附移除办法

windows系统经常弹出使用Outlook(new),自动切过去。 但是登录企业的内网邮箱,折腾了好几次都使用不了。排查网络等问题,在社区找到了答案。 推出一年多不支持企业账户,所以之前的折腾都是浪费时间。 因为这个答案不太…

tomcat状态一直是Exited (1)

docker run -di -p 80:8080 --nametomcat001 你的仓库地址/tomcat:9执行此命令后tomcat一直是Exited(1)状态 解决办法: 用以下命令创建运行 docker run -it --name tomcat001 -p 80:8080 -d 你的仓库地址/tomcat:9 /bin/bash最终结果 tomcat成功启动