网站被挂马 301/东莞精准网络营销推广

网站被挂马 301,东莞精准网络营销推广,wordpress深度优化,室内设计培训班哪家好一.切入点表达式-execution 访问修饰符(public/private等),包名.类名.,throws 异常都可以省略,但是建议包名.类名.不要省略,否则的话匹配范围太大影响程序执行效率。 *主要用来匹配单个参数,通配任意返回值、包名、类…

 一.切入点表达式-execution

访问修饰符(public/private等),包名.类名.,throws 异常都可以省略,但是建议包名.类名.不要省略,否则的话匹配范围太大影响程序执行效率。

*主要用来匹配单个参数,通配任意返回值、包名、类名、方法名、任意类型的一个参数,也可以通配包、类、方法名的一部分。

..匹配任意层级的包,或者任意类型、任意个数的参数。 

二.演示

下面我们在代码中进行演示

package com.gjw.aop;import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;/*** 目标:探究AOP中的切入点表达式-execution* execution主要根据方法的返回值、包名、类名、方法名、方法参数等信息来匹配,语法为:* execution(访问修饰符? 返回值 包名.类名.?方法名(方法参数) throws 异常?)* 可以使用通配符描述切入点*      *:单个独立的任意符号,可以通配任意返回值、包名、类名、方法名、任意类型的一个参数,也可以通配包、类、方法名的一部分*      execution(* com.*.service.*.update*(*))*      ..:多个连续的任意符号,可以通配任意层级的包,或者任意类型、任意个数的参数*      execution(* com.itheima..DeptService.*(..))* 注意事项:*      根据业务需要,可以使用 且(&&)、或(||)、非(!)来组合比较复杂的切入点表达式*///@Aspect
@Slf4j
@Component
public class MyAspect6 {
//    @Pointcut("execution(public void com.gjw.service.impl.DeptServiceImpl.deleteById(java.lang.Integer))")        // 通配DeptServiceImpl中的deleteById方法
//    @Pointcut("execution(void com.gjw.service.impl.DeptServiceImpl.deleteById(java.lang.Integer))")
//    @Pointcut("execution(void deleteById(java.lang.Integer))")      // 会与DeptServiceImpl中的deleteById方法和DeptMapper中的deleteById方法都匹配上,因此会造成通知运行两次     包名,类名不建议省略//    @Pointcut("execution(void com.gjw.service.DeptService.deleteById(java.lang.Integer))")  //  根据接口名来匹配
//    @Pointcut("execution(void com.gjw.service.DeptService.*(java.lang.Integer))")   // 匹配DeptService接口下返回值为void的所有方法
//    @Pointcut("execution(* com.*.service.DeptService.*(*))")    // 匹配返回值为任意类型的com下的任意包下的service包下的DeptService类下的为单个形参任意方法
//    @Pointcut("execution(* com.gjw.service.*Service.delete*(*))")   // 匹配返回值为任意类型的com.gjw.service包下的以Service结尾的类下的以delete开头的传递参数为单个形参的方法//    @Pointcut("execution(* com.gjw.service.DeptService.*(..))")     //  匹配DeptService接口下的所有方法,不管形参个数类型是多少
//    @Pointcut("execution(* com..DeptService.*(..))")  匹配com包下所有叫做DeptService的类中的所有方法
//    @Pointcut("execution(* com..*.*(..))")  // 匹配com包下的所有方法 .. 慎用@Pointcut("execution(* com.gjw.service.DeptService.deleteById(java.lang.Integer)) ||" +"execution(* com.gjw.service.DeptService.list())")            // 匹配DeptServiceImpl类中的list方法和deleteById方法private void pt(){}@Before("pt()")public void before() {log.info("MyAspect6......before......");}
}

第一个定义访问修饰符为public,返回值为void,匹配com.gjw.service.impl包下的DeptServiceImpl类中的deleteById方法,方法的参数类型为Interger类型,个数为一个。

第二个省略方法的访问修饰符,返回值为void,匹配com.gjw.service.impl包下的DeptServiceImpl类中的deleteById方法,方法的参数类型为Interger类型,个数为一个。

第三个省略方法的访问修饰符,返回值为void,省略包名和类名。只匹配deleteById方法,方法的参数类型为Interger类型,个数为一个。这样的话会匹配到两个,一个是DeptServiceImpl.java类下的,另一个是DeptMapper接口下的,这样通知方法会执行两次。

第四个省略方法的访问修饰符,返回值为void,匹配接口下的deleteById方法,方法的参数类型为Interger类型,个数为一个。

第五个省略方法的访问修饰符,返回值为void,匹配接口下的任意方法,方法的参数类型为Interger类型,个数为一个。

第六个省略方法的访问修饰符,返回值为任意类型,匹配com包下的任意一级包下的service包下的DeptService类中的所有方法,方法的参数类型为任意类型,个数为一个。

第七个省略方法的访问修饰符,返回值为任意类型,匹配com.gjw.service包下的以Service结尾的类或接口中的以delete开头的方法,方法的参数类型为任意类型,个数为一个。

第八个省略方法的访问修饰符,返回值为任意类型,匹配com.gjw.service包下的DeptService接口中的所有方法,方法的参数类型为任意类型,个数为任意个数。

第九个省略方法的访问修饰符,返回值为任意类型,匹配com包下任意级包下的DeptService接口中的所有方法,方法的参数类型为任意类型,个数为任意个数。

第十个省略方法的访问修饰符,返回值为任意类型,匹配com包下的所有方法,方法的参数类型为任意类型,个数为任意个数。

第十一个匹配DeptServiceImpl类中的list方法和deleteById方法,我们使用或进行连接。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/70811.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NLP09-加强1-对比SVM

支持向量机(SVM) (一)导入 SVM 相关库 (二) 修改模型初始化 (三) 比较 朴素贝叶斯分类器 SVM分类器 支持向量机(SVM) 代码修改基于NLP09-朴素贝叶斯问句…

DeepSeek 开源了 DeepEP

DeepSeek又开源了一个超强技术:DeepEP通信库。实现了MOE之间的通信,性能更强了! DeepEP作为全球首个专为MoE(专家混合)模型训练和推理量身定制的EP(专家并行)通信库,其诞生标志着通…

【C语言】指针笔试题

前言:上期我们介绍了sizeof与strlen的辨析以及sizeof,strlen相关的一些笔试题,这期我们主要来讲指针运算相关的一些笔试题,以此来巩固我们之前所学的指针运算! 文章目录 一,指针笔试题1,题目一…

电脑键盘知识

1、键盘四大功能区 1. 功能区 2. 主要信息输入区 3. 编辑区 4. 数字键盘区 笔记本电脑键盘的功能区,使用前需先按Fn键 1.1、功能区 ESC:退出 F1:显示帮助信息 F2:重命名 F4:重复上一步操作 F5:刷新网页 …

Spring MVC框架六:Ajax技术

精心整理了最新的面试资料,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 简介 jQuery.ajax Ajax原理 结语 创作不易,希望能对大家给予帮助 想要获取更多资源? 点击链接获取

在 Vue 组件中,如何确认父组件在 add 模式下传入 value 的情况及其对子组件 getProducts() 方法的触发影响?

文章目录 父组件中 <ave-form> 的使用add 模式下触发逻辑value 的传入情况是否触发 getProducts()&#xff1f; 验证 add 模式下 getProducts() 是否触发结论&#xff1a; 检查父组件传入 value 的完整情况如何明确知道父组件传入的 value最终回答 父组件 index.vue子组件…

第十四届蓝桥杯Scratch11月stema选拔赛真题——小猫照镜子

编程实现&#xff1a; 小猫照镜子。(背景非源素材) 具体要求&#xff1a; 1). 运行程序&#xff0c;角色、背景如图所示&#xff1b; 完整题目可点击下方链接查看&#xff0c;支持在线编程~ 小猫照镜子_scratch_少儿编程题库学习中心-嗨信奥https://www.hixinao.com/tiku/s…

python的列表和元组别再傻傻分不清啦

目录 什么是下标&#xff1a; 正数索引&#xff1a;正数索引从左到右&#xff0c;从 0 开始。 负数索引&#xff1a;负数索引从右到左&#xff0c;从 -1 开始。 切片&#xff08;slice&#xff09;&#xff1a;除了单个元素&#xff0c;Python还支持通过切片访问序列的子集。…

在 compare-form.vue 中添加 compareDate 隐藏字段,并在提交时自动填入当前时间

在 compare-form.vue 中添加 compareDate 隐藏字段&#xff0c;并在提交时自动填入当前时间。 提交表单时存入的对象是FakeRegistration&#xff0c;这个对象里面有compareDate字段&#xff0c;刚好表格查询的对象也是FakeRegistration&#xff0c;所以表格展示的时间就是刚才…

Windows 11【1001问】如何安装Windows 11

紧接上篇内容&#xff0c;本文详细介绍了从准备工作到具体安装步骤的完整流程&#xff0c;帮助用户顺利完成Windows 11系统的安装。内容涵盖了ISO镜像文件的下载与校验、启动U盘的制作、硬件兼容性检查&#xff0c;以及BIOS/UEFI设置和系统安装过程中的关键步骤。通过逐步指导&…

【玩转 Postman 接口测试与开发2_020】(完结篇)DIY 实战:随书示例 API 项目本地部署保姆级搭建教程(含完整调试过程)

《API Testing and Development with Postman》最新第二版封面 文章目录 最新版《Postman 接口测试与开发实战》示例 API 项目本地部署保姆级搭建教程1 前言2 准备工作3 具体部署3.1 将项目 Fork 到自己名下3.2 创建虚拟环境并安装依赖3.3 初始运行与项目调试 4 示例项目的用法…

若依 ruoyi-vue 根据角色切换路由菜单权限 SAAS

后端根据角色查询相应的菜单&#xff08;角色对应管理的系统&#xff09; /*** 获取路由信息根据角色&#xff08;系统类型&#xff09;** return 路由信息*/GetMapping("getRoutersBySystemType")public AjaxResult getRoutersBySystemType(String systemType) {Lon…

2024最新版鸿蒙纯血原生应用开发教程文档丨学习ArkTS语言-基本语法

ArkTS是HarmonyOS的主要应用开发语言&#xff0c;在TypeScript基础上进行了扩展&#xff0c;保留了其基本风格&#xff0c;并通过增强静态检查和分析来提高程序的稳定性和性能。本教程将帮助开发者掌握ArkTS的核心功能、语法及最佳实践&#xff0c;以便高效地构建高性能移动应用…

使用插件 `vue2-water-marker`添加全局水印

使用插件 vue2-water-marker添加全局水印 效果图 1、安装插件 npm install vue2-water-marker --save2、全局注册 // main.js import Vue from vue import Vue2WaterMarker from vue2-water-markerVue.use(Vue2WaterMarker)3、在组件中使用 <template><div id&q…

docker安装etcd:docker离线安装etcd、docker在线安装etcd、etcd镜像下载、etcd配置详解、etcd常用命令、安装常见问题总结

官方网站 官方网址&#xff1a;etcd 二进制包下载&#xff1a;Install | etcd GitHub社区项目&#xff1a;etcd-io GitHub GitHub社区项目版本历史&#xff1a;Releases etcd-io/etcd GitHub 一、镜像下载 1、在线下载 在一台能连外网的linux上执行docker镜像拉取命令…

探索浮点数在内存中的存储(附带快速计算补码转十进制)

目录 一、浮点数在内存中的存储 1、常见的浮点数&#xff1a; 2、浮点数存储规则&#xff1a; 3、内存中无法精确存储&#xff1a; 4、移码与指数位E&#xff1a; 5、指数E的三种情况&#xff1a; 二、快速计算补码转十进制 1、第一种方法讨论&#xff1a; 2、第二种方…

Milvus x DeepSeek 搭建低成本高精度 RAG 实战

为什么手握海量数据&#xff0c;却用不出真正的“智能”&#xff1f;要么 AI 模型学艺不精&#xff0c;答非所问&#xff1b;要么技术门槛太高&#xff0c;让普通开发者望而却步。现在&#xff0c;使用阿里云 Milvus 向量检索服务、DeepSeek 大模型和 PAI LangStudio 开发工具&…

2025年SCI1区TOP:真菌生长优化算法FGO,深度解析+性能实测

目录 1.摘要2.算法原理3.结果展示4.参考文献5.代码获取 1.摘要 本文提出了一种新型的自然启发元启发式算法——真菌生长优化算法&#xff08;FGO&#xff09;&#xff0c;灵感来源于真菌在自然界中的生长行为。真菌的生长行为包括菌丝生长、分枝和孢子萌发&#xff0c;菌丝生长…

1 | 从零开始解密数据库:数据库基础概念

❤个人主页&#xff1a;折枝寄北的博客 ❤专栏位置&#xff1a;数据库专栏 目录 前言1. 数据&#xff08;data&#xff09;2. 数据库(DB)3. 数据库管理系统(DBMS)4. 数据库系统(DBS) 感谢您的阅读支持 前言 【前言】 在万物互联的数字时代&#xff0c;数据已成为驱动社会运转…

Web自动化之Selenium下Chrome与Edge的Webdriver常用Options参数

目录 引言 说明 Add_argument() 添加方式 常用参数 Add_experimental_option() 添加方式 常用方法 任务结束后仍然保持浏览器打开 禁用“Chrome 正受到自动测试软件的控制”提示 设置下载路径 禁用弹窗拦截 禁用图片加载 禁用 JavaScript 注意 引言 …