一,spring是什么
Spring是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的容器框架
理念:使现有的技术更加容易使用,本身是一个大杂烩,整合了现有的技术框架
优点:
弊端:违背了原有的技术理念:配置太过繁琐,被称为“配置地狱”
二,Spring框架由七个定义明确的模块组成
三,现代化的开发就是基于spring容器的开发,
1.springboot :一个快速开发的脚手架
约定大于配置
2.springcloud:
springCloud是基于SpringBoot实现的
四,控制反转和面向切面
IOC:(获得依赖对象的方式反转了,对象由spring来创建,管理和装配)
1.控制反转:从本质上解决了问题,使我们程序员不用再去管理对象的创建了
系统的耦合性大大降低,可以更专注于业务的实现(IOC的原型)
1)以前:程序是需要程序员主动创建对象,控制权在开发人员手上
2)使用了set方法,程序不再具有主动性,而是变成了被动的接受对象,主动权在用户手上
3)配置:
ref: 引用Spring容器中创建好的对象
value:具体的值,基本数据类型
4)IOC创建对象的方法:
1.默认使用无参构造创建对象
2. 手动配置有参构造:constructor
1)下标赋值:index
2)通过类型创建(不建议)
3)通过参数名:name
5)在配置文件加载的时候,容器中管理的对象就已经初始化了,(容器类似于婚介所,只有对象注册到了婚介所,当容器applicationcontext被创建,被管理的对象也就存在,也就是被初始化了)
五,spring的配置
1.别名:
alias:----->如果添加了别名,我们也可以通过别名获取对象
2.Bean的配置:
id:bean的唯一标识符,也就是相当于我们的对象名
class:bean的全限定名“包名+类名”(bean对象所对应的全限定名)
name: 也是别名:而且name比alias更高级,可以同时取多个别名(逗号或空格或分号分割)
ref:引用Spring容器中创建好的对象
value:具体的值,基本数据类型
3.import:
1)这个import,一般用于团队开发,可以将多个配置文件,导入合并为一个
2)假设项目中有多个人开发,这三个人负责不同类的开发,不同类需要注册到不同的bean中,我们可以利用import将所有人的beans.xml合并为一个总的
张三:beans
李四:beans2
王五:beans3
applicationContext.xml:
使用的时候,直接使用总的配置就好了
六,DI依赖注入
1.构造器注入:
2.通过set方式注入
依赖注入:set注入
依赖:bean对象的创建依赖于容器
注入:bean对象中的所有属性,由容器来注入
环境搭建:
1.复杂类型
2.真实测试对象
红楼梦 西游记 水浒传 三国演义 听歌 王者 跳舞
LOL COC BoB 190970070 男 小俊
3.其他方式注入
注意:这两种不能直接使用,需要去导入约束,从官方文档去拿
1)p命名注入 xmlns:p="http://www.springframework.org/schema/p"
2)c命名注入 xmlns:c="http://www.springframework.org/schema/c"
4.bean的作用域:

1)单例模式:singleton:
spring 默认机制
2)原型模式:prototype:
每次从容器中get的时候,都会产生一个新对象
3)其他的在web中才用到
七.Bean的自动装配
自动装配是spring满足bean依赖的一种方式
spring会在上下文中自动寻找,并自动给bean装配属性
三种装配在方式:
1)在xml中显示的配置
2)在java中显示的配置
3)隐式的自动装配bean(重要)
1.byName自动装配
byName会自动在容器上下文中查找,和自己对象set方法后面的值对应的beanID
2.byType自动装配
byName会自动在容器上下文中查找,和自己对象属性类型相同的beanID
小结: