spring学习笔记(一)
spring笔记
1.spring介绍
1.三层架构中spring位置

2.spring一站式框架
容器中装什么对象就有什么功能.所以可以一站式.
不仅不排斥其他框架,还能帮其他框架管理对象.
aop支持
IOC思想
spring jdbc
aop事务
Junit测试支持
2.spring搭建
1.导包(4+2)
- 基础包(4)

- 日志包(2)

- Junit和jdk

2.创建一个对象

3.书写配置注册对象到容器(spring配置文件)
- 位置
位置任意(建议放到src下)
配置文件名任意(建议applicationContext.xml)
- 创建

- 代码测试

3.spring概念
1.思想
1.ioc
IOC: Inverse Of Control 控制反转
通俗的讲,即将我们创建对象的方式反转了
以前对象的创建是由开发人员自己维护,包括依赖关系也是自己注入,
使用了spring之后,对象的创建以及依赖关系可以由spring完成创建以及注入,
控制反转就是反转了对象创建方式,从我们自己创建反转给程序(spring)。
2.DI
DI:Dependency Injection 依赖注入
实现IOC思想需要DI做支持
注入方式:
set方法注入
构造方法注入
字段注入
注入类型:
值类型注入——8大基本数据类型
引用类型注入——将依赖对象注入
2.applicationContext&BeanFactory
1.BeanFactory接口
spring原始接口.针对原始接口的实现类功能较为单一;
BeanFactory接口实现类的容器.特点是每次在获得对象时才会创建对象。
2.ApplicationContext
每次容器启动时就会创建容器中配置的所有对象.并提供更多功能
从类路径下加载配置文件:ClassPathXmlApplicationContext

从硬盘绝对路径下加载配置文件:FileSystemXmlApplicationContext("d:/xxx/yyy/xxx")

3.结论
web开发中,使用applicationContext. 在资源匮乏的环境可以使用BeanFactory.
4.spring配置详解
1.Bean元素

2.Bean元素进阶
1.scope属性
singleton(默认值):单例对象.被标识为单例的对象在spring容器中只会存在一个实例



prototype:多例原型.被标识为多例的对象,每次再获得才会创建.每次创建都是新的对象.


2.生命周期
配置一个方法作为生命周期初始化方法.spring会在对象创建之后立即调用:init-method
配置一个方法作为生命周期的销毁方法.spring容器在关闭并销毁所有容器中的对象之前调用:destory-method



调用close方法是,用ClassPathXmlApplicationContext

3.spring创建对象的方式
1.空参构造方式

2.静态工厂(了解)


3.实例工厂(了解)


4.spring的分模块配置

5.spring属性注入
1.注入方式
1.set方法注入

2.构造函数注入

3.p名称空间注入

4.spel注入

2.复杂类型注入

1.数组

2.List

3.Map

4.Properties

5.效果
CollectionBean(arr=[tom, asjdkfdh, User(name=Tom, age=3423, car=Car(name=lafjdla汽车, color=red))],
list=[gonchen, dfafadlkga, User(name=Tom, age=3423, car=Car(name=lafjdla汽车, color=red))],
map={url=jdbc:mysql:////cadjskf, user=User(name=Tom, age=3423, car=Car(name=lafjdla汽车, color=red)), User(name=jadsfa, age=3423, car=Car(name=lafjdla汽车, color=red))=User(name=999, age=null, car=Car(name=lafjdla汽车, color=red))},
prop={password=123144, driverClass=com.jdbc.mysql.Driver, userName=root})
浙公网安备 33010602011771号