当前位置: 首页 > news >正文 论论坛坛网网站站建建设设网站建设最好的书籍是 news 2025/11/3 11:25:05 论论坛坛网网站站建建设设,网站建设最好的书籍是,国之珍微站个人网站,wordpress360收录插件AOP AOP全称是Aspect Oriented Programming 即面向切面编程#xff0c;是对一类统一事务的集中处理 例如#xff0c;我们的网页许多地方都需要进行登陆验证#xff0c;这时就需要在很多地方添加重复的验证代码#xff0c;而AOP可以集中配置需要登陆验证的地方#xff0c;…AOP AOP全称是Aspect Oriented Programming 即面向切面编程是对一类统一事务的集中处理 例如我们的网页许多地方都需要进行登陆验证这时就需要在很多地方添加重复的验证代码而AOP可以集中配置需要登陆验证的地方就可以简化我们的代码 除此以外还可以实现 统一日志的记录统一方法执行的时间记录统一返回格式的设置统一异常的处理事务的开启和提交 springAOP 就像IoC是思想而DI是实现SpringAOP也是对AOP这种思想的实现 基本组成 切面用来处理问题的一个类包含切点和通知的相关方法切点用来设置拦截的规则通知程序拦截后进行的具体操作连接点触发AOP相关规则的点 其中对于通知还有下面几种不同的分类 前置通知 使用Before注解在目标方法执行前执行后置通知使用After注解在目标方法返回或抛出异常后执行返回通知使用AfterRetruning注解在目标方法返回后执行异常通知使用AfterThrowing注解在目标方法抛出异常后执行环绕通知使用Around注解在包裹的方法执行前后执行后执行 也就是说page123是需要验证是否登陆的页面也就是连接点 验证是否登陆的这个方法就是切点 处理用户登陆问题是通知 而整个验证用户登陆的这个行为称为切面 实现 首先在程序中加入SpringAOP的相关依赖 !-- https://mvnrepository.com/artifact/org.springframework.boot/spring-bo ot-starter-aop -- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-aop/artifactId /dependency在程序中专门建一个类用来存储切面 Aspect Component public class 切面方法名{Poiontcut(execution(修饰符 返回类型 包名.类名.方法名(参数) 异常))public void 切点方法名(){} }其中Aspect注解代表此类是切面 而Component注解使该类在运行时启动 这里的切点方法并没有具体的实现只是用来为通知方法标明执行的是那个切点 而Pointcut注解后面的表达式则是标明拦截的规则 并且表达式中还支持通配符 *匹配任意字符只匹配一个元素…匹配任意字符匹配多个元素匹配指定类及其子类 也就是说 修饰符 例子表达public匹配所有公共方法*匹配所有方法 返回值不能省略 例子表达String匹配所有返回String的方法*匹配所有方法 包名 例子表达com.example.demo匹配com.exaple.demo这个包com.*.demo匹配前面是com结尾是demo的包com.demo…匹配com下面的所有子包 类名 例子表达User匹配User类User*匹配以User开头的类*匹配所有类 方法名不能省略 例子表达getUser匹配getUser这个方法*getUser匹配以getUser结尾的方法*匹配所有方法 参数 例子表达()匹配没有参数的方法(int, float)匹配一个int一个float参数的方法(…)匹配任意类型的参数 例如 定义一个匹配com.example.demo.controller包下UserController的任意方法 Component //随框架启动而启动 Aspect //切面类 public class UserAspect {/*** 定义切点*/Pointcut(execution(* com.example.demo.controller.UserController.*(..)))public void pointcut(){} }实现通知 前置通知 /*** 前置通知*/ Before(pointcut()) public void beforeAdvice(){System.out.println(执行前置通知); }后置通知 /*** 后置通知*/ After(pointcut()) public void afterAdvice(){System.out.println(执行后置通知); } 环绕通知 /*** 环绕通知*/ Around(pointcut()) public Object aroundAdvice(ProceedingJoinPoint joinPoint){System.out.println(进入环绕通知);Object object null;try{//执行拦截方法object joinPoint.proceed();} catch (Throwable e) {e.printStackTrace();}System.out.println(结束环绕通知);return object; }返回通知 AfterReturning(pointcut()) public void returnAdvice(){System.out.println(执行返回通知); }异常通知 AfterThrowing(pointcut()) public void throwAdvice(){System.out.println(执行抛出异常通知); }把UserController类定义出来验证一下这些通知是否执行 RequestMapping(/user) RestController public class UserController {RequestMapping(/hi)public String sayHi(String name){System.out.println(执行sayHi方法);return hi name;}RequestMapping(/hello)public String sayHello(){System.out.println(执行sayHello方法);return hello world;} }在访问127.0.0.1:8080/user/hi页面时程序台就会打印如下信息 实现原理 springAOP只支持方法级别的拦截这是因为其基于动态代理实现 其中分别用JDK Proxy实现接口的类生成代理类和CGLIB没实现接口的类生产代理类 把切面连接到目标对象的相关位置连接点的行为叫织入 其中一般在目标对象的这几个时期织入 编译器类加载期代码运行期SpringAOP实现方式 文章转载自: http://www.morning.pcbfl.cn.gov.cn.pcbfl.cn http://www.morning.wpwyx.cn.gov.cn.wpwyx.cn http://www.morning.nzwp.cn.gov.cn.nzwp.cn http://www.morning.rbknf.cn.gov.cn.rbknf.cn http://www.morning.lxfyn.cn.gov.cn.lxfyn.cn http://www.morning.shyqcgw.cn.gov.cn.shyqcgw.cn http://www.morning.bwjgb.cn.gov.cn.bwjgb.cn http://www.morning.mqtzd.cn.gov.cn.mqtzd.cn http://www.morning.gjssk.cn.gov.cn.gjssk.cn http://www.morning.fkwp.cn.gov.cn.fkwp.cn http://www.morning.yprjy.cn.gov.cn.yprjy.cn http://www.morning.fqqcn.cn.gov.cn.fqqcn.cn http://www.morning.lkthj.cn.gov.cn.lkthj.cn http://www.morning.kqcqr.cn.gov.cn.kqcqr.cn http://www.morning.rlhgx.cn.gov.cn.rlhgx.cn http://www.morning.tmzlt.cn.gov.cn.tmzlt.cn http://www.morning.fchkc.cn.gov.cn.fchkc.cn http://www.morning.sqnxk.cn.gov.cn.sqnxk.cn http://www.morning.rgzc.cn.gov.cn.rgzc.cn http://www.morning.rongxiaoman.com.gov.cn.rongxiaoman.com http://www.morning.ymjgx.cn.gov.cn.ymjgx.cn http://www.morning.rnzwh.cn.gov.cn.rnzwh.cn http://www.morning.rymb.cn.gov.cn.rymb.cn http://www.morning.fnfhs.cn.gov.cn.fnfhs.cn http://www.morning.qxgmp.cn.gov.cn.qxgmp.cn http://www.morning.dydqh.cn.gov.cn.dydqh.cn http://www.morning.jzfxk.cn.gov.cn.jzfxk.cn http://www.morning.wknjy.cn.gov.cn.wknjy.cn http://www.morning.rqxch.cn.gov.cn.rqxch.cn http://www.morning.jmwrj.cn.gov.cn.jmwrj.cn http://www.morning.wkmrl.cn.gov.cn.wkmrl.cn http://www.morning.smjyk.cn.gov.cn.smjyk.cn http://www.morning.hilmwmu.cn.gov.cn.hilmwmu.cn http://www.morning.qhnmj.cn.gov.cn.qhnmj.cn http://www.morning.lgcqj.cn.gov.cn.lgcqj.cn http://www.morning.4r5w91.cn.gov.cn.4r5w91.cn http://www.morning.mlgsc.com.gov.cn.mlgsc.com http://www.morning.lsssx.cn.gov.cn.lsssx.cn http://www.morning.rrqgf.cn.gov.cn.rrqgf.cn http://www.morning.rnwmp.cn.gov.cn.rnwmp.cn http://www.morning.gslz.com.cn.gov.cn.gslz.com.cn http://www.morning.bmtkp.cn.gov.cn.bmtkp.cn http://www.morning.yrsg.cn.gov.cn.yrsg.cn http://www.morning.wknjy.cn.gov.cn.wknjy.cn http://www.morning.hxpff.cn.gov.cn.hxpff.cn http://www.morning.fgsct.cn.gov.cn.fgsct.cn http://www.morning.qjlnh.cn.gov.cn.qjlnh.cn http://www.morning.lthtp.cn.gov.cn.lthtp.cn http://www.morning.qsxxl.cn.gov.cn.qsxxl.cn http://www.morning.lbgfz.cn.gov.cn.lbgfz.cn http://www.morning.ftmly.cn.gov.cn.ftmly.cn http://www.morning.ygwyt.cn.gov.cn.ygwyt.cn http://www.morning.rnqbn.cn.gov.cn.rnqbn.cn http://www.morning.mywmb.cn.gov.cn.mywmb.cn http://www.morning.dqwkm.cn.gov.cn.dqwkm.cn http://www.morning.wkwds.cn.gov.cn.wkwds.cn http://www.morning.fpkdd.cn.gov.cn.fpkdd.cn http://www.morning.qbdsx.cn.gov.cn.qbdsx.cn http://www.morning.qkwxp.cn.gov.cn.qkwxp.cn http://www.morning.hbywj.cn.gov.cn.hbywj.cn http://www.morning.rrgqq.cn.gov.cn.rrgqq.cn http://www.morning.mldrd.cn.gov.cn.mldrd.cn http://www.morning.gwyml.cn.gov.cn.gwyml.cn http://www.morning.pqnpd.cn.gov.cn.pqnpd.cn http://www.morning.xinxianzhi005.com.gov.cn.xinxianzhi005.com http://www.morning.syqtt.cn.gov.cn.syqtt.cn http://www.morning.wjlrw.cn.gov.cn.wjlrw.cn http://www.morning.bgpch.cn.gov.cn.bgpch.cn http://www.morning.mjwnc.cn.gov.cn.mjwnc.cn http://www.morning.mzrqj.cn.gov.cn.mzrqj.cn http://www.morning.cndxl.cn.gov.cn.cndxl.cn http://www.morning.jghty.cn.gov.cn.jghty.cn http://www.morning.nrxsl.cn.gov.cn.nrxsl.cn http://www.morning.ryywf.cn.gov.cn.ryywf.cn http://www.morning.ylljn.cn.gov.cn.ylljn.cn http://www.morning.zrlwl.cn.gov.cn.zrlwl.cn http://www.morning.hmxb.cn.gov.cn.hmxb.cn http://www.morning.gjcdr.cn.gov.cn.gjcdr.cn http://www.morning.ptqpd.cn.gov.cn.ptqpd.cn http://www.morning.fstesen.com.gov.cn.fstesen.com 查看全文 http://www.tj-hxxt.cn/news/273590.html 相关文章: 水利网站建设东莞详细页设计 中文网站开发语言网站建设营销型号的区别 制作网站图文教程腾讯云 云服务器 江苏省建设工程注册中心网站谷歌浏览器打开就是2345网址导航 做不锈钢的网站有哪些阿里云建站售前咨询 网站开发有哪些框架免费快速网站 网站开发技术有什么pc门户网站是什么意思 做解析视频网站怎么赚钱给建设单位造成损失的 小浪底水利枢纽建设管理局网站html5国内网站 网站 视觉上shopify seo 做网站有虚拟服务器在线购物网站开发项目 wordpress 上传网站网站图片特效代码 美橙西安网站备案拍照浏阳市商务局网站溪江农贸市场建设 珠海网站建设公司电话化妆品网站建设报告 可以做查询功能的网站毕业设计开题报告网站开发 官方网站建立推广赚钱 滨城网站开发贵州做网站 网站百度搜不到了网页设计外文文献 织梦手机网站源码搜索引擎优化的办法有哪些 台州市网站制作营销品牌有哪些 东台网站建设公司什么是竞价推广 品牌营销网站建设流程小程序源码搭建 txt怎么做网站郑州建设教育培训中心 广告联盟上怎么做网站app导航网站源码 织梦网站修改教程基因数据库网站建设 有免费可以做的网站吗上海公交建设公司官网 宜昌网站模板科技尽头 梅州建站教程现在做网站还赚钱吗 龙岗坪地网站建设公司做内贸的电子商务网站典型有 佛山外贸网站建设公司网站内容过滤