1 Spring
1.1 简介
- 杂货铺,很多零散的都放其中
- 一个bean是一个对象
1.2 优点
1.3 组成
- 弊端:发展了太久之后,违背了原来的理念,配置十分繁琐,人称“配置地狱”
IOC
2 IOC
2.1 理论推导
2.2 IOC本质
2.3 Hello Spring
- beans.xml文件:从官网找框架CV
- 使用spring创建对象,在spring里这些都称bean。
- 控制反转IOC:编程思想,由主动编程变为被动接收即对象由spring创建、管理、装配
- 控制:传统是程序员创建对象,而使用spring则是由spring创建对象
- 反转:程序本身不创建而变成被动的接收对象
- 依赖注入:用set方法
- 要实现不同操作,只需在xml配置文件中进行
(通过newClassPathXmlApplicationContext去浏览底层源码)
2.4 IOC创建对象的方式
- 含构造器注入
- 总结:在配置文件加载的时候,容器中管理的对象就已经初始化了
- 容器:spring容器,即bean内
3 Spring配置
- 别名:可以通过另一个指定的名字获取数据库对应的数据
3.1 bean配置
- name:很强大的属性
3.2 import
- bean的class可以配置all对象
4 依赖注入(DI)
- 两种注入
4.1 构造器注入
- 2.2 IOC创建对象方式有
4. 2 set注入
4.2.1 环境搭建
- 完善注入信息
-straight values普通值注入
4.3 拓展方式注入
- P注入对应set注入,C注入对应构造器注入
4.3.1 P命名空间注入
-记得在pom.xml内插入 junit
4.3.2 C命名空间注入
- 配置之前需要有对应的构造器(即有参和无参构造都要创建)
- 测试:@test
4.4 Bean的作用域
-23种设计模式之2
- 单线程一般用单例,多线程一般用原型模式(单例模式可能出现并发问题,原型模式每次都创建新对象太麻烦)
(狂神30mines的单例模式视频待看)
5 自动装配Bean
-Autowired
5.1 测试-手动
-
1.环境搭建
-
一个人有2个宠物
-
手动
5.2 byname和bytype自动装配
- byname时:bean里必须要有id=“”
- bytype:狗的类型唯一,若获取两只狗,那么识别出错
5.3 使用注解实现自动装配
5.3.1 @Autowired
5.3.2 @Qualifier
5.3.3 @Resource
- 在idea里建立markdown文件:做笔记/存放常用依赖,便于CV大法
- maven依赖
6 Spring 注解开发
-在spring之后,要使用注解开发,必须要保证aop的包导入了(右侧maven处查看导入的依赖包)
- 使用注解需要导入context约束,增加注解的支持!
6.1 bean(Component:组件,放在类上,说明这个类被Spring管理了,就是bean)
6.2 属性如何注入
6.3 @Component衍生的注解
-其衍生的注解,在web开发中会按照mvc三层架构分层
6.4 自动装配
6.5 作用域-@Scope
这里是引用
6.6 小结
7 使用JavaConfig实现配置
这里是引用
7.1 实体类
7.2 测试类
7.3 配置文件 类
- import合并不同配置文件类
这种纯Java的配置方式,在Spring Boot中随处可见
学习注解视频-常看源码
8 总结
AOP
9 代理模式
9.1 静态代理模式及再理解
9.1.1 静态代理
- 3.代理角色
9.1.2 静态代理再理解
9.2 动态代理详解
待学习:opp原则+反射机制+设计模式+oop+事务管理
10 AOP实现-主要是动态代理
10.1 AOP在spring中的作用
10.2 实现方式1-使用Spring实现Aop
- 使用Spring的API接口实现
10.3 实现2-使用自定义类实现【主要是切面定义】
- 使用标签
10.4 注解实现AOP
- 比较推荐第二种,实现切面复用
11 声明式事务
这里是引用