文章目录
- 第一章、spring框架的概述
- 第二章、IoC控制反转
- 第三章、AOP面向切面编程
-
- 1.AOP概述
- 2.AOP编程术语
- 3.AspectJ对AOP的实现
- 第四章、Spring集成MyBatis
- 第五章、Spring事务
- 第六章、Spring与Web
第一章、spring框架的概述
1.Spring框架是什么
2.Spring的优点
3.Spring的体系结构
第二章、IoC控制反转
1.IoC的概述
2.Spring的第一个程序
1.实现步骤
1.创建maven项目
2.在pom.xml中加入spring的依赖
3.创建接口和他的实现类
4.创建Spring需要使用的配置文件
在resources包下面创建
Beans.xml(实际项目开发中应该叫applicationContext.xml)
5.测试Spring,通过spring创建对象
不用Spring框架之前我们需要自己手动创建对象
通过spring创建对象
Spring创建对象默认调用的是无参构造
底层是个map集合,get从map中拿数据
Map<String,Object>
String就是id
Object就是对象
2.获取容器中对象的数量和id值
3.applicationContext.xml中定义bean的scope属性
4.Spring能创建一个非自定义的类的对象
如:创建java自带的Date类的对象
先加入bean
3.基于XML的DI
1.构造分类
1.set注入(设置注入)(掌握)
1.简单类型的set注入(设置注入)
1.创建一个Student类
2.在applicationContext.xml中声明对象并对属性赋值
3.创建对象调用无参构造方法,调用对象中的setXXX()方法,对象类中只要有set方法就会调用
4.Spring也能给非自定义类赋值,比如,日期类
2.引用类型的set注入(设置注入)
1.创建一个School类
2.在之前Student类中声明一个School类型
3.在applicationContext.xml中声明一个School对象,然后把School赋值Student中,这就是赋值一个对象
4.创建Student对象,即可
原始我们手动创建对象和赋值,现在是Spring帮我们创建和赋值
2.构造注入(理解)
1.创建Student类,里面写一个带参构造
2.在applicationContext.xml中
Index属性和写名字一样,推荐使用名字赋值
3.Spring通过带参构造创建对象并赋值
2.例子:实际项目中使用的好处
如果有很多的对象,传统的方法service层和dao层都是通过new对象来实现,这样两者之间的耦合性很高,如果我们要改一个对象,那么要改动的地方就很多,如果使用Spring,只需要在配置文件中改动即可
1.创建一个Student类
2.dao层添加接口并实现
3.service层要调用dao层,为了减少代码的改动,我们用set注入
4.applicationContext.xml中,声明对象,service对象需要调用哪个dao层的实现类,就使用哪个
5.使用对象
3.引用类型属性自动注入
1.byName方式自动注入
1.创建Student和School对象
2.applicationContext.xml中,不用给引用类型赋值了
3.执行结果
2.byType方式自动注入
1.创建School、Studet 和School的子类PrimarySchool
2.applicationContext.xml中
3.执行代码
4.多个配置文件的优势
原本我们都是把bean写在一个xml文件下面,现在使用的是包含关系的配置文件
spring-student.xml中声明Student对象
Spring-school.xml中声明School对象
主配置文件中,指定其他文件的位置
4.基于注解的DI(掌握)
1.定义Bean的注解@Component
1.添加Spring依赖
2.创建Student类,在类上面添加注解
3.在applicationContext.xml中声明组件扫描器
1.Spring中和@Component功能一致,创建对象的注解还有:
2.指定多个包的方式
2.简单类型属性注入@Value
3.引用类型赋值
1.byType自动注入@Autowired
1.创建引用类型的对象
2.在引用类型属性上加注解
3.在applicationContext.xml中
4.结果
2.byName自动注入@Autowired与@Qualifier
3.引用类型Autowired的required属性
推荐使用true,因为这样报错我们就能及时解决