zoukankan      html  css  js  c++  java
  • 《Spring技术内幕》读书笔记

    IOC与AOP原理

    IOC容器的初始化过程

    BeanDefinition的Resource定位

    BeanDefinition的载入与解析

    BeanDefinition在IOC容器中的注册

    IOC容器的依赖注入

    lazy-init

    FactoryBean

    BeanPostProcessor: init-method, destory-method

    autowiring: autowire_by_name  autowire_by_type

    Bean的依赖检查: dependency-check(可选值none,simple,object,all)

    Spring AOP的设计与实现

    应用场景:  设计应用的横切关注点,把跨越应用程序多个模块的功能抽象出来,比如日志;Spring内部的一些模块也使用AOP实现,比如事务处理.

    JDK的Proxy生成代理对象--设置InvokeHandler来设置拦截器完成回调.

    CGLIB生成代理对象--通过AdvisedInterceptor来完成回调.

    Spring AOP拦截器的设计与实现

    待填坑...

    Spring事务管理的实现

    1-3节介绍Spring事务管理实现的几个重要接口或类,之后介绍事务管理的使用注意

    1. TransactionDefinition 指定事务属性

    编程式事务:

    TransactionDefinition -> DefaultTransactionDefinition -> TransactionTemplate

    声明式事务: 

    TransactionDefinition -> TransactionAttribute -> DefaultTransactionAttribute -> RuleBasedTransactionAttribute/ DelegatingTransactionAttribute

    2. TransactionStatus 整个事务处理过程中的事务状态

    SavepointManager -> TransactionStatus -> AbstractTransactionStatus -> DefaultTransactionStatus/ SimpleTransactionStatus

    TransactionStatus拥有管理Savepoint的能力,从而支持创建内部嵌套事务.

    3. PlatformTransactionManager 开启事务等(Strategy模式)

    3.1 面向局部事务的实现类

    JDBC/iBATIS  DataSourceTransactionManager

    Hibernate  HibernateTransactionManager

    3.2 面向全局事务的实现类

    JtaTransactionManager

    3.3 DataSourceTransactionManager的实现

    几个概念:

    transaction object

    TransactionSynchronization

    TransactionSynchronizationManager

    4. Spring事务管理的使用

    4.1 编程式事务

    两种使用方法: 直接使用PlatformTransactionManager以及使用TransactionTemplate

    两种在TransactionCallback或者TransactionCallbackWithoutResult的操作过程中回滚的方式: 抛出unchecked exception或者将TransactionStatus标记为rollBackOnly.

    4.2 声明式事务

    使用ProxyFactory(ProxyFactoryBean) + TransactionInterceptor

    使用一站式的TransactionProxyFactoryBean

    使用BeanNameAutoProxyCreator

    使用Spring 2.x的声明事务配置方式

    注解元数据驱动的声明式事务

  • 相关阅读:
    Eclipse使用jre的原理与配置
    [笔记]Android开发环境配置及HelloWorld程序
    【足迹C++primer】38、关联容器操作(2)
    Linux ls 命令实现(简化版)
    POJ1149_PIGS(网络流/EK)
    调用存储过程取到数据通过NPOI存到Excel中
    python get post模拟请求
    常见软件应用
    Docker 镜像的导入和导出
    Linux 编译安装R语言
  • 原文地址:https://www.cnblogs.com/cheungchein/p/8625396.html
Copyright © 2011-2022 走看看