spring学习笔记

IOC(控制反转)

削减代码间的耦合
控制对象的创建和销毁;将对象的控制权交给IOC容器

底层原理

  1. xml解析、工厂模式、反射
  2. IOC容器底层就是对象工厂,反射机制实例化对象
  3. IOC实现的两个接口
    • BeanFactory:spring内部使用的接口,在加载配置文件的时候,不会创建对象;使用的时候才去创建对象
    • ApplicationContext:BeanFactory接口的子接口,面向开发使用,功能更多,在加载配置文件的时候,就已经创建对象了。通过classPathXmlApplicationContext加载xml,用getBean()方法去获取实例化对象。

Bean标签详解

bean的作用:用于配置对象让spring来创建,默认情况是调用类的无参构造

  • id bean的唯一标志名称
  • class 实现类的全限定名称
  • name bean的名称
  • scope 指定对象的作用范围
    • 单例 所有请求都用同一个对象来处理,内存地址相同
    • 多例 每个请求用一个新的对象来处理,内存地址不同
    • request/response 将对象存到request/response
    • session

bean的生命周期

  • 被创建 执行一次init()
  • 提供服务,servlet的doGet()、doPost()方法,执行多次
  • 被销毁 当servlet服务器正常关闭时,执行一次destory方法(单例)

AOP 面向切面

spring提供面向切面的编程,可以方便的实现对程序进行权限拦截、运行监控等功能
动态代理
JDK动态代理:基于接口的动态代理技术;
cglib代理:基于父类的动态代理技术;

aop相关概念

  • target(目标对象):代理的目标对象
  • proxy(代理):一个类被aop织入增强后,就产生一个结果代理类
  • joinpoint(连接点):那些被拦截的点
  • pointcut(切入点):我们要对哪些连接点进行拦截的定义
  • advice(增强/通知):拦截到连接到之后要做的事情就是通知
  • aspect(切面):切入点和通知的结合
  • 织入:就是讲切点和通知加入代理对象,给aop配置的过程就是织入的过程

@Aspect //注解是一个切面
消息通知:

  • before(""),前置通知
  • afterReturning,后置通知
  • around,环绕通知
  • afterThrowing,异常抛出表达式
  • after,最终表达式

事务

编程式事务管理

  • platformTransactionManager:spring的事务管理器,接口,不同的dao技术使用不同的事务管理类
  • TransactionDefinition:事务的定义对象
    • 事务的隔离级别 isolation(默认级别、读未提交、读已提交、可重复读、串行读)

    • 事务的传播行为 propagation

      • required 默认值,要是调用的方法有事务,加入当前事务,要是没有就新建一个事务
      • supports 要是调用的方法有事务,就使用,没有的话就开始无事务模式
      • mandatory 要是调用的方法没有事务就报错
      • required_new 新建事务,要是存在旧的事务,就挂起旧的
      • not_supports:使用无事务模式,挂起存在的事务
      • never,无事务模式,要是有事务,就报错
      • nested 如果当前存在事务,在嵌套事务中执行,要是没有就执行required操作
    • 获得超时时间

    • 获得是否可读

  • transactionStatus 事务状态

声明式事务

声明式事务的底层就是aop
@Transactional

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值