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的声明事务配置方式

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

  • 相关阅读:
    【uva 1515】Pool construction(图论--网络流最小割 模型题)
    【uva 1617】Laptop(算法效率--贪心,2种理解)
    【uva 10570】Meeting with Aliens(算法效率--暴力+贪心)
    【uva 1153】Keep the Customer Satisfied(算法效率--贪心+优先队列)
    【uva 1615】Highway(算法效率--贪心 区间选点问题)
    Sublime PlantUML环境配置
    [转] 基于TINY4412的Andorid开发-------简单的LED灯控制
    洛谷P2606 [ZJOI2010]排列计数 组合数学+DP
    洛谷P3158 [CQOI2011]放棋子 组合数学+DP
    BZOJ2440/洛谷P4318 [中山市选2011]完全平方数 莫比乌斯函数
  • 原文地址:https://www.cnblogs.com/cheungchein/p/8625396.html
Copyright © 2011-2022 走看看