# springexecute **Repository Path**: sheeperzhang/springexecute ## Basic Information - **Project Name**: springexecute - **Description**: 学习尚硅谷spring6教程的学习笔记和实践代码。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-11-10 - **Last Updated**: 2025-01-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring基础学习笔记 > Author:SheepRunner ## 一、前言和总结 **2024-11-8** 这是学习尚硅谷spring6视频的学习笔记以及自己动手的实践代码,这里没有创新只有亦步亦趋的模仿,是每一个新生儿需要走的第一步。 我从2024年9月分开始到10月中旬,已经将spring6的教学视频全部看完了,前面跟着做了,但是后面只看没有跟着编码。 之前很多次学习没有成系统,所以我希望这一次可以有始有终,能够对我接下来的学习有正面的影响,所以虽然时间上有点紧迫,但还是希望能坚持下去。 这次的计划我想分为宏观和微观两个方面来考虑: 宏观上:学习完spring基础知识后,继续通过改造本人的第一个个人承接项目——keylink企业门户及后台管理页面,来深化对spring和maven的理解和掌握。 微观上:学习spring的所有知识点,包括引入、配置、注解、IOC、DI、AOP、事务、资源、国际化、即时编译AOT等等,不一而足。 ## 二、Spring基础 ### 1)Spring简述 1. Spring是一款主流的JavaEE轻量级开源框架(企业级JavaEE应用开发框架) 2. Spring之父: Rod Johnson 3. Spring于2002年在Rod Johnson的著作《Expert One-on-One J2EE Development without EJB》中首次被介绍, 2003年2月发布0.9版本,2004年4月发布1.0版本,截止目前(2024-11-8)最新版6.0.x 4. 目标:简化Java企业级项目开发,取代EJB的另一种简化的一站式轻量级解决方案。 5. 广义的Spring:Spring技术栈(全家桶),包括:Spring Framework、Spring MVC、Spring Boot、Spring Cloud、Spring Data、Spring Security等 6. 狭义的Spring:Spring FrameWork,它是所有Spring技术栈的基础与核心(==本次学习重点在这里==) 7. Spring FrameWork的量大核心模块:Ioc/DI(控制反转Inverse of Control/依赖注入Dependency Injection) 和 AOP(面向切面编程Aspect Oriented Programming) 8. Spring FrameWork的特点: 1. 非侵入式:Spring只对被Spring容器管理(xml或注解)的类有影响,不会影响应用程序结构,反而能将组件结构进一步简化,结构清晰、简洁优雅。 2. 控制反转:IOC(Inverse of Control),对程序员而言,原来需要向环境获取对象(new)的方式,转变为环境主动准备对象(注入,容器初始化)的方式。 3. 面向切面编程:AOP(Aspect Oriented Programming),将遍布应用程序的所有关注点(比如日志、事务、安全性)抽取出来, 以代码的方式管理,形成可重用的模块,减少重复代码,提高开发效率。(可以在不修改源代码的基础上增强功能)。 4. 容器:Spring IoC容器,管理对象生命周期,注入对象依赖,组装对象等,屏蔽了组件创建的细节,降低使用门槛,提高开发效率。 5. 组件化:Spring实现了使用简单组件组很撑一个复杂应用。基于XML和注解组合对象,使得我们可以基于一个个功能明确、边界清晰的组件搭建大型复杂应用系统。 6. 一站式:在IoC和AOP基础上,可以整合各种开源框架和第三方类库,并且Spring自身也提供了很多常用功能的实现。 9. Spring官网:https://spring.io/ 10. Spring组成: ![img-1](mdpictures\Spring FrameWork.png) ![img-2](mdpictures\Spring.png) **①Spring Core(核心容器)** spring core提供了IOC,DI,Bean配置装载创建的核心实现。核心概念: Beans、BeanFactory、BeanDefinitions、ApplicationContext。 - spring-core :IOC和DI的基本实现 - spring-beans:BeanFactory和Bean的装配管理(BeanFactory) - spring-context:Spring context上下文,即IOC容器(AppliactionContext) - spring-expression:spring表达式语言 **②Spring AOP** - spring-aop:面向切面编程的应用模块,整合ASM,CGLib,JDK Proxy - spring-aspects:集成AspectJ,AOP应用框架 - spring-instrument:动态Class Loading模块 **③Spring Data Access** - spring-jdbc:spring对JDBC的封装,用于简化jdbc操作 - spring-orm:java对象与数据库数据的映射框架 - spring-oxm:对象与xml文件的映射框架 - spring-jms: Spring对Java Message Service(java消息服务)的封装,用于服务之间相互通信 - spring-tx:spring jdbc事务管理 **④Spring Web** - spring-web:最基础的web支持,建立于spring-context之上,通过servlet或listener来初始化IOC容器 - spring-webmvc:实现web mvc - spring-websocket:与前端的全双工通信协议 - spring-webflux:Spring 5.0提供的,用于取代传统java servlet,非阻塞式Reactive Web框架,异步,非阻塞,事件驱动的服务 **⑤Spring Message** - Spring-messaging:spring 4.0提供的,为Spring集成一些基础的报文传送服务 **⑥Spring test** - spring-test:集成测试支持,主要是对junit的封装