2023.02.16
spring是一大套技术集,包括:
- Spring Framework:举足轻重,底层框架,被其他所有技术所依赖。
- Spring Boot:加速开发。
- Spring Cloud:分布式开发。
spring5.0全面支持jdk8(想做spring开发,jdk必须在8以上)。
Spring Framework系统架构
系统架构图中上层依赖于下层
Data Integration:spring内部不仅提供了访问数据集的技术 而且允许spring技术与其他的技术整合使用 集成即包容其他技术
Transactions:spring在事务上做了很大突破 提供了一种效率很高的事务开发方案
AOP:和面向对象编程一样 也是一种编程思想 增强原始程序的功能
Core Container:容器用来装对象(spring是用来管对象的架构)
IoC(Inversion of Control)控制反转和DI(Dependency Injection)依赖注入
使用对象时,由主动new产生对象转换为由外部提供对象,此过程中对象创建控制权由程序转移到外部,此思想称为控制反转。
Spring技术对IoC思想进行了实现
Spring提供了一个容器,称为IoC容器,用来充当ToC思想中的外部
IoC容器负责对象的创建、初始化等一系列工作,被创建或被管理的对象在IoC容器中统称为 在容器中建立bean与bean之间的依赖关系的整个过程,称为DI(Dependency Injection)依赖注入
目标:充分解耦
·使用IoC容器管理bean (IoC)
·在IoC容器内将有依赖关系的bean进行关系绑定(DI)
最终效果
·使用对象时不仅可以直接从IoC容器中获取,并且获取到的bean已经绑定了所有的依赖关系
Ioc入门案例(XML版)
DI入门案例(XML版)
(这个setter方法是容器在执行)
Bean
bean基本配置
bean别名配置
bean的别名,可以在getBean()里被使用,也可以在ref里被使用。
bean作用范围
若spring造出的bean不是非单例的,那么bean的数量会很多。spring管理的对象是可以复用的对象(所以就默认用单例模式创造)。
实例化bean的三种方法——构造方法(常用)
spring创造bean的时候调的是无参的构造方法(使用对象时传参会报错)。
看spring的报错:拉下去看最后一行,大概率能解决,不行就再看倒数第二个。
实例化bean的三种方法——静态工厂(了解)
实例化bean的三种方法——实例工厂(了解)
实例化bean的四种方法——FactoryBean
bean生命周期控制——两种方法
bean生命周期
bean销毁时机
依赖注入
四种注入方式
引用类型就是对象之类的,简单类型就是数字,字符串之类的。
setter注入——引用类型
可以在一个bean标签下面写多个property标签以注入多个引用类型对象。
setter注入——简单类型
引用数据类型用rel,基本数据类型用value。
构造器注入——引用类型(了解)
构造器注入——简单类型(了解)
构造器注入相比setter注入,只是方法从setter方法换成了构造方法,都是在这两种方法内传值。还有就是xml配置文件的标签与格式有所不同。
使用构造器注入时,标签<constructor-arg>中的属性name是对应类的构造函数中形参的名字,故而这种方法耦合度比较高。
构造器注入——参数适配(了解)
依赖注入方法选择
依赖自动装配
依赖自动装配方式
集合注入
spring加载properties文件
在spring中开辟了一个新的命名空间context。(把beans改成context)
有个系统环境变量名也叫username,优先级高于properties里的username,所以properties里的命名为username时会出现错误。把context标签里的system-properties-mode设置成NEVER后就不会加载系统变量,也就不会出现这个问题。
最规范的格式:
表示可以读取多个properties文件,而且不仅可以从当前工程里读,还可以从jar包里读。
容器
创建容器
获取bean
容器类层次结构图
BeanFactory
BeanFactory是所有容器类的顶层接口
总结
标签:容器,spring,笔记,bean,Spring,IoC,注入 From: https://www.cnblogs.com/ban-boi-making-dinner/p/17126815.html