目录
什么是spring?
spring是为了解决什么问题而衍生的?(历史)Spring解决了实际生产中的什么问题?
spring包含了哪些部分?(组成)
Spring的特点是什么?
spring框架中用到了哪些设计模式?
Spring相关依赖(此处只列举了一部分)
jar包下载
Spring系列文章
框架: Spring作为Java企业级应用的开发框架,在spring衍生出来之前,struts、Herbert作为当时强大的框架,对于我们熟悉的三层它们分别作为了表现层和DAO层的角色,而spring出现之后解决了逻辑层和数据层的耦合问题,spring成为用来连接表现层和多层的一个身份,整合了当时主流的第三方框架,使软件变成了一个整体。并且衍生出了现在的springboot、springcloud框架,他们的底层都是以spring作为基础框架
容器:原来我们创建对象是通过new的方式去进行创建,比方说new people( ),如果要给对象的属性赋值和读取的话是通过set或者get方式,而现在使用了spring之后,用户不用在自己手动的去进行new的操作。
内部的IOC(控制反转): 将对象的创建的权利交给第三方Spring容器进行统一管理(不把对象的创建写死在类里面)。
DI(依赖注入): 为Spring容器中对象的属性赋值, 一般对象中的属性以接口最为常见 注入方式: a.set注入 b.构造注入
spring的底层使用了反射技术,通过反射这样的技术可以帮助在运行过程中动态地去获取类的属性和方法
通过AOP切面去完成,对业务方法进行扩展(松耦合)。常见应用:
生态: Spring帮助去满足不同的需求,在spring内部也搭建了很多的框架类,这些框架类(并post Processor,并factory post processor)可以让用户自定义的去扩展,让用户按照自己的需求去搭建。正是因为底层使用了模板方法模式来帮助达到了这样一种扩展性,才能满足不同场景的一个需要
补充知识:视频:Spring的发展历史
①、解决Java EE开发过程中的效率低问题。我们知道J2EE是为企业级的应用开发提供了一套严格的规范,这样一套规范在初期学习和使用的时候比较困难,对于大多数学习者来说内容不能一下子就理解,所以出现学习代价较高、开发效率较低等问题,Spring的出现就是帮助解决了这些问题使开发者开发更容易,J2EE在1999年和2000年开始的,Spring2002年紧接着就出现了。
②、我认为使用Spring框架的最大一个目的就是简化我们的开发(如何简化开发的?Spring提供了7大模块,每个模块可以相互组合应用)

轻量级,不依赖其他组件,可以单独使用
可以解决企业应用开发的复杂性(???)
核心:IOC、AOP
此处列举框架中个别地方用到的设计模式,不代表全面!!
单例模式:bean默认都是单例的
原型模式:指定作用域为prototype
工厂模式:BeanFactory
模板方法:postProcessBeanFactory,onRefresh,initPropertyValue
策略模式:XmlBeanDefinitionReader,PropertiesBeanDefinitionReader
观察者模式:listener,event,multicast
适配器模式:Adapter
装饰者模式:BeanWrapper
责任链模式:使用aop的时候会先生成一个拦截器链
代理模式:动态代理
委托者模式:delegate
org.springframework spring-context 6.0.3 org.springframework spring-jdbc 6.0.4 mysql mysql-connector-java 8.0.30 com.alibaba druid 1.1.20 jakarta.annotation jakarta.annotation-api 2.1.1 junit junit 4.13.2 test
下载地址:
JFrog
https://repo.spring.io/ui/native/release/org/springframework/spring/
里面包含了很多版本,大家可以结合自己的需求进行下载:

下载之后结果如下:
里面包含了我们常需要使用的aop、core、beans等等jar包,我们在项目中使用的时候直接引入即可。

此图为idea引入结果:

Spring——Bean管理-xml方式进行属性注入
Spring——Bean管理-注解方式进行属性注入
Spring——什么是IOC?
Spring——AOP是什么?如何使用?
Spring——什么是事务?传播行为?事务隔离级别有哪些?
Spring——整合junit4、junit5使用方法