Configuration
作用: 指定当前类是一个配置类
_ComponentScan 作用: 用于通过注解指定spring在创建容器时需要扫描的包 属性: value: 它和basePackages的作用是一样的,都是用于指定创建容器时要扫描的包。
Bean 作用: 把当前方法的返回值作为bean对象存入spring的ioc容器中 属性: name: 用于指定bean的id。不写默认值是当前方法的名称
_
Spring AOP
什么是AOP: 面向切面编程
AOP底层使用动态代理
第一种:有接口,使用JDK的动态代理
调用newProxyInstance方法
三个参数: 第一个是类加载器
第二个参数是:增强方法所在的类,这个类实现的接口,支持多个接口
第三个参数: 实现这个接口InvocationHandler,创建代理对象,写增强的方法。
第二种:没有接口, 使用CGLIB动态代理
AOP术语:
1.连接点: 类里面哪些方法可以被增强,这些方法称为连接点
2.切入点: 实际被真正增强的方法,就叫切入点
3.通知(增强): 实际增强的逻辑部分称为通知(增强)
通知有多种类型:
前置通知
后置通知
环绕通知
异常通知
最终通知 finally
4.切面(是动作): 把通知应用到切入点的过程
AOP操作:
1.Srping框架一般都是基于AspectJ实现AOP操作
AspectJ不是Spring组成部分,独立AOP框架,一般把AspectJ和Spring框架一起使用,进行AOP操作。
Spirng事务(ACID)
SpringJDBC通过TransactionManager事务管理器俩实现事务的管理控制
编程性事务:
_TransactionDefinition _definition = _new _DefaultTransactionAttribute();
//__开启一个事务
_TransactionStatus _status = transactionManager.getTransaction(definition);
//__提交事务
transactionManager.commit(status);
声明式事务
事务的传播行为:
指多个拥有事务的方法在嵌套调用时的事务控制方式
原子性
一致性
隔离性
持久性
**