您好:欢迎光临现金网-澳门现金网主页!

现金网

产品列表
联系我们contact us
现金网-澳门现金网主页
地 址:山东省济宁市历城区化纤厂路6号2楼
电 话:0531-881232334
如何理解spring中的切面和过滤
发布时间:2019-10-31 19:46

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  切面这个我的理解就是:以前开发都是从前台到service层再到domain层,spring中的切面就不再是一条线的开发方式,而是面向一个层,比如在配置事务的时候配置到service层,这就是切面的一个应用。过滤就是把提交的东西和展示到前台的东西筛选一遍,例如写一个编码的过滤器,在从前台想后台提交东西的时候,在到action之前,spring会把编码设置成你想设置的编码格式。

  面向方面/切面的编程:将程序中的交叉业务逻辑(公用代码)提取出来,称为切面,

  面向方面/切面编程:将业务分解成切面与具体的业务逻辑模块,将切面透明的接入到业务逻辑模块中,形成一个完整的程序。比如:字符编码;日志;事务等等

  1)切面(Aspect): 指交叉业务逻辑的统称, 比如日志,事务,安全;

  3)连接点(Joinpoint):指切面可以织入到(应用到)目标对象的位置(级别), 两个: 方法/属性

  4)切入点(Pointcut):指通知(切面的具体实现)应用到哪些目标对象的哪些方法或者哪些属性上;

  Spring根据类名称及方法名称定义Pointcut,表示Advice织入至应用程序的时机;

  5)引入(introduction):指动态的给一个对象增加方法或者属性的过程;是一种特殊的通知;

  6)织入(weaving):将切面(通知)应用到目标对象生成代理的过程;

  7)代理对象(Proxy): 目标对象应用切面以后生成的代理(切面织入之后生成的新的代理对象);

  8)目标对象(Target): 具体业务逻辑的实现(需要织入切面的对象);

  IRegister ir; 调用代理的方法, 代理再去调用目标对象的方法;

  1,将切面使用动态代理的方式动态地织入到目标对象(被代理对象)生成新的代理对象;

  2,目标对象如果没有实现代理接口,spring采用CGLIB来生成代理对象,

  3,目标对象如果是final类,并且没有实现代理接口,就不能运用AOP了;

  目标对象如果没有实现接口, spring采用CGLIB库来动态生成一个代理,

  Spring采用动态代理来实现AOP, 在运行时,spring将切面应用到目标对象生成动态代理,

  (3)利用ProxyFactoryBean将切面织入到目标对象,生成动态代理对象;

Copyright©2015-2019现金网版权所有; 电话:0531-881232334
备案/许可证编号为: 地址:山东省济宁市历城区化纤厂路6号2楼