spring实战 梳理

spring 梳理

依赖装配

基于xml

  • 构造器
  • 使用传统的property元素
  • 使用p命名空间
  • 装配集合类型:list, set, map, property
  • 装配null值
  • 使用SpEL表达式

减少xml

基于注解的装配

  • @AutoWired
  • @Inject
  • @Named
  • @Value 可以与SpEL结合起来用

基于注解的bean定义

AOP

切面:一个POJO,里面的某些方法将会被切入(调用)
pointcut(切点):实际上就是一个匹配器,用于指定是否进行切入,同时也可以用来进行参数绑定

声明式事务

原理

通过AOP,将一个切面切入到需要事务的方法的开始和结束处,这个切面就是所谓的事务管理器

对于jdbc事务来说,我们要使用的是事务处理器是org.springframework.jdbc.datasource.DataSourceTransactionManager

<bean id="transcationManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" p:dataSource-ref="dataSource" />

这个事务管理器的作用是:

  • 方法执行之前切入:通过dataSource获取一个connection,并且将这个connection跟当前线程绑定在一起(通过使用ThreadLocal),并且setAutoCommit为false,
  • 方法执行之后切入:获取当前前程的connection,用它进行commit

定义注解驱动事务

  1. xml配置: <tx:annotation-driven />
    也可以指定事务管理器(默认是transactionManager) <tx:annotation-driven transaction-manager="myTxManager"/>
  2. 在java源码里,在要使用事务的类或者方法上,使用@Transactional,同时可以设置事务属性

你可能感兴趣的:(spring)