spring并不局限于某一层.
spring是对象的容器,帮我们"管理"项目中的所有对象
1.导包(idea直接新建Spring项目,一般的都有,除了依赖)
2.准备类
3.书写配置(src/applicationContext.xml)
4.书写代码测试
ioc: 反转控制. 创建对象的方式反转了.从我们自己创建对象,反转给spring(程序)来创建.
di: 依赖注入.将必须的属性注入到对象当中.是实现ioc思想必须条件.
applicationContext&BeanFactory
BeanFactory接口 spring原始接口.针对原始接口的实现类功能较为单一 BeanFactory接口实现类的容器.特点是每次在获得对象时才会创建对象 ApplicationContext 每次容器启动时就会创建容器中配置的所有对象.并提供更多功能 丛类路径下加载配置文件:ClassPathXmlApplicationContext 从硬盘绝对路径下加载配置文件:FileSystemXmlApplicationContext("d:/xxx/yyy/xxx") 结论:web开发中,使用applicationContext. 在资源匮乏的环境可以使用BeanFactory.
scope属性 singleton(默认值):单例对象.被标识为单例的对象在spring容器中只会存在一个实例 prototype:多例原型.被标识为多例的对象,每次再获得才会创建.每次创建都是新的对象.整合struts2时,ActionBean必须配置为多例的. request:web环境下.对象与request生命周期一致. session:web环境下,对象与session生命周期一致. 生命周期属性 配置一个方法作为生命周期初始化方法.spring会在对象创建之后立即调用. init-method 配置一个方法作为生命周期的销毁方法.spring容器在关闭并销毁所有容器中的对象之前调用. destory-method
spring创建对象的方式
1.空参构造方式
2.静态工厂(了解)
分模块开发
<import />
注入方式
set方法
构造方法
p名称空间
spEL表达式
复杂属性注入
Array
List
Map
Properties
步骤
导包
1.添加约束
2.开启使用注解代理配置文件
3.在类中使用注解完成配置
将对象注册到容器
值类型注入
1.直接赋值
通过反射的Field赋值,破坏了封装性
2.set方法赋值(推荐)
自动
手动
1.导包
2.配置注解
spring实现aop的原理
动态代理(优先)
被代理对象必须要实现接口,才能产生代理对象.如果没有接口将不能使用动态代理技术
cglib代理(没有接口)
第三方代理技术,cglib代理.可以对任何类生成代理.代理的原理是对目标对象进行继承代理. 如果目标对象被final修饰.那么该类无法被cglib代理.
步骤(xml配置)
1.导包
2.准备目标对象
3.准备通知
4.配置进行织入,将通知织入目标对象中
步骤(注解配置)
导包
2.准备目标对象
3.准备通知
4.配置进行织入,将通知织入目标对象中
spring提供了很多模板整合Dao技术
JDBCTemplate => JDBC模板对象 与DBUtils中的QueryRunner非常相似
导包
准备数据库
增删改
查询单个对象
查询值类型
查询list集合类型
spring配置
依赖关系
进阶内容
JDBCDaoSupport
读取外部的Properties配置
注意前缀
事务
事务特性:acid
事务并发问题
脏读 不可重复读 幻读
事务的隔离级别
1 读未提交 2 读已提交 3 可重复读 4 串行化
spring封装了事务管理代码
事务操作
打开事务 提交事务 回滚事务
事务操作对象
因为在不同平台,操作事务的代码各不相同.spring提供了一个接口 PlatformTransactionManager 接口 DataSourceTransactionManager HibernateTransitionmanager 注意:在spring中玩事务管理.最为核心的对象就是TransactionManager对象
spring管理事务的属性介绍
事务的隔离级别 1 读未提交 2 读已提交 3 可重复读 4 串行化 是否只读 true 只读 false 可操作 事务的传播行为
spring管理事务方式
编码式
1.将核心事务管理器配置到spring容器
2.配置TransactionTemplate模板
3.将事务模板注入Service
4.在Service中调用模板
xml配置(aop)
1.导包 2.导入新的约束(tx) 3.配置通知
4.配置将通知织入对象
注解配置(aop)
1.导包 2.导入新的约束(tx) 3.开启注解管理事务
4.使用注解
若方法中需要的不同