一.Spring介绍
一站式框架
1. 正是因为spring框架性质是属于容器性质的:容器中装什么对象就有什么功能.所以可以一站式。
2. 不仅不排斥其他框架,还能帮其他框架管理对象.
3. 重点:aop支持、ioc思想、spring jdbc、aop 事务、junit 测试支持
二.Spring搭建(IDEA)
1.导包
2.创建一个对象
3.书写配置注册对象到容器
导入约束
4.代码测试
三.Spring核心思想
**IOC(控制反转)?*将创建对象的权利交给spring容器
DI(依赖注入)
四.Spring配置
Spring属性介绍:
- Bean标签:指定要创建的对象
- id属性:唯一标识 整个xml文件中必须唯一
- class属性:类的全限定名
- scope属性:singleton 和 prototype
singleton 单例(默认) 对象随着spring容器的创建而创建 销毁而销毁;
prototype 多例 调用getbean()方法的时候创建 调用一次创建一次 和spring容器无关了了解的属性。(了解)
- 生命周期属性
- init-method属性:配置初始化方法; 对象创建后立即执行的方法init-method属性:配置初始化方法 对象创建后立即执行的方法
- destory-method属性:配置销毁方法; 容器关闭对象销毁时会要执行的方法(只有scope=singleton)
3.spring创建对象的三种方式
(1.)反射调用构造方法(重要)为了适配老的代码 没有spring的时候 老的代码都要用工厂方式解耦合
(2.)静态工厂: 该工厂中获取对象的方法是静态的 可以类名直接调用
(3.)实例化工厂:该工厂中获取对象的方法是非静态的 必须得有工厂对象才能调用方法
五.Spring属性注入(重点)
简单注入方式
1. 构造函数注入<constructor-arg>
********以下三个属性是用来定位参数的
index:根据参数的索引定位,
name:根据参数的名称定位,
type:根据参数的全限定类名定位(不用)
*******以下两个属性是用来赋值的
value:给简单属性赋值,
ref:给spring管理的对象属性赋值
2. set方法注入<property>
name:根据参数的名称定位,
value:给简单属性赋值,
ref:给spring管理的对象属性赋值
3. p名称空间注入
复杂类型注入
通过二级标签来注入复杂属性
数组 List set
组合任意搭配:
array==value
list==value
set==value
map(key:value) propertie(key:value)
组合任意搭配:
map==entry
props==prop
Properties