Spring资料辅导(3)

动态代理:


 在测试类中来指定
   DaoIf target=new Dao()
 DaoIf prox=(DaoIf)  Proxy.newProxyInstance(target.getClass().getClassLocader(),)构造一个对象,
三个参数分别是:加载器,代理接口,代理做什么的封装类
但是我们还自己写封装类实现InvocationHandler接口,它作用是为代理要做什么进行一个封装。
  method.invoke(target,args); 返回让拦截器做处理


拦截器:在invoke()中写我们的代理处理过程
我们用拦截器作用就是把对常规的操作,比如,事务开始,提交等,抽象出来,把它单独处理。

概念:concern 关注点---应用要达到的目标 分集中化和分散化两种类型
     在分散化类型中是针对Aspect  横切面

过滤器
  实现pointcut接口


 其中方法分配器 MethodMatcher
   isRuntime() 是否在运行时类型判断 也就是我们对过滤方法的规则要求,
如果设置返回true,表示要对过滤方法的参数有要求,这时则调用三个参数的方法matches(xxx,xxx,xxx)
如果设置返回为假,表示要对过滤方法的参数没有有要求,只对过滤方法名字即可,则调用两个参数的方法matches(xxx,xxx)
 而matches方法也分真假,如果返回真,则对这个方法提供过滤,如果为假,则对这个方法不提供过滤功能
在xml中提供我们写的过滤器类的配置声明,还要对容器中提供的bean声明
<bean id="daoPointcut" class="org.sprng"
  <property name="

NameMatcheMethodPointcutAdvisor  在xml中提供方法名字的匹配就可以了。

持久化的事务的处理自己写的模式:
我们自己写这些事务的处理,为了理解spring自带的类的工具是如何实现的。其实spring会自带这些类实现事务管理工具的

你可能感兴趣的:(DAO,spring,bean,xml,配置管理)