当前位置: 首页 > news >正文

宜兴做网站多少钱成都网络运营推广

宜兴做网站多少钱,成都网络运营推广,动态网站制作基础建议,一个网站做多少内链合适天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。


君不见,黄河之水天上来,奔流到海不复回。
君不见,高堂明镜悲白发,朝如青丝暮成雪。
——《将进酒


文章目录

  • AOP切点表达式之方法表达式execution
    • 1. 表达式语法和参数说明
    • 2. 常用表达式举例
      • 2.1 拦截指定包下所有类的所有方法(不包含该包下的子包)
      • 2.2 拦截指定包下所有类的所有方法(包含该包下的子包)
      • 2.3 拦截指定包下一级子包的所有类的所有方法(不包含该包下的子包下的子包)
      • 2.4 拦截当前包下指定类的所有方法
      • 2.5 拦截指定包下指定类的所有公共(public)方法
      • 2.6 拦截指定包下指定类的所有返回值类型为Integer的方法
      • 2.7 拦截指定包下指定类的所有入参第一个参数为String的方法
      • 2.8 拦截所有带有指定注解的所有方法
    • 3. 组合表达式
      • 3.1 与&&
      • 3.2 或||
      • 3.3 非!
    • 4. 注意事项
      • 4.1 Tips1
      • 4.2 Tips2
      • 4.3 Tips3
  • 加分加分
    • 1. 加分
    • 2. 加分
    • 3. 加分
    • 4. 加分
      • 4.1 加分1
      • 4.2 加分2
      • 4.3 加分3
      • 4.4 加分4


AOP切点表达式之方法表达式execution

关于aop的完整详细版可跳转到链接:Java AOP 介绍与实践

使用execution(方法表达式)进行匹配方法执行

1. 表达式语法和参数说明

语法

execution([修饰符] 返回类型 [包.类.方法] (参数))

其中方括号[]中的参数是可以加上也可以不加

参数说明

  • 修饰符
    可选,指定方法的访问修饰符,如public、private等
  • 返回类型
    必填,指定方法的返回类型,可用*表示匹配任意类型
  • 包.类.方法
    可选,指定类和方法的全限定名,*表示匹配任意类型或者方法
  • 参数
    必填,指定方法的参数列表,…表示匹配任意参数

2. 常用表达式举例

2.1 拦截指定包下所有类的所有方法(不包含该包下的子包)

如拦截com.aop.controller包下的所有类的方法
表达式

execution(* com.aop.controller.*.*(..))

说明

匹配指定包中的所有方法
第一个*表示所有返回值类型
com.aop.controller是包的全限定名
第二个*是所有类,第三个*是所有方法
最后的(..)是参数,表示任意参数

2.2 拦截指定包下所有类的所有方法(包含该包下的子包)

如拦截com.aop包下的所有类的方法,包含其子包下的类的所有方法
如com.aop.common包下的类的所有方法
com.aop.controller包下的类的所有方法
com.aop.common.test包下的类的所有方法
等等
都会被拦截到

表达式

execution(* com.aop..*.*(..))

或者直接省略类的表示

execution(* com.aop..*(..))

说明

匹配指定包中的所有方法,包含其子包下的类的所有方法
第一个*表示所有返回值类型
com.aop是包的全限定名
第二个*是所有类,第三个*是所有方法
最后的(..)是参数,表示任意参数

2.3 拦截指定包下一级子包的所有类的所有方法(不包含该包下的子包下的子包)

如拦截com.aop包下一级子包的所有类的方法,不包含一级子包下的子包的类的所有方法
如com.aop.common包下的类的所有方法
com.aop.controller包下的类的所有方法
等等
都会被拦截到
而com.aop包下子包的子包则不会拦截
如com.aop.common.test包下的类的所有方法不会被拦截

表达式

execution(* com.aop.*.*.*(..))

说明

匹配指定包中的所有方法,包含其子包下的类的所有方法
第一个*表示所有返回值类型
com.aop.*是包的全限定名
第二个*是aop包下一级的所有包,不含其下一级以下的子包
第三个*是所有类,第四个*是所有方法
最后的(..)是参数,表示任意参数

2.4 拦截当前包下指定类的所有方法

当前包指的是切面类所在的包
如切面类AopAspectJ.java类在com.aop.common包下,则该包就是当前包,此时匹配时无需加包名
如拦截当前包下的指定类AopTest2Controller.java的所有方法

表达式

execution(* AopTest2Controller.*(..))

也可使用*模糊匹配类名
如前缀匹配,匹配以AopTest2开头的类名

execution(* AopTest2*.*(..))

后缀匹配,匹配以2Controller结尾的类名

execution(* *2Controller.*(..))

2.5 拦截指定包下指定类的所有公共(public)方法

方法修饰符可以是public、private等,可根据修饰符不同进行匹配
如拦截com.aop.common包下AopTest2Controller.java类中所有public修饰的方法

表达式

execution(public * com.aop.common.AopTest2Controller.*(..))

2.6 拦截指定包下指定类的所有返回值类型为Integer的方法

返回值类型可以是很多种类型,如String、Integer、Object等
如拦截com.aop.common包下AopTest2Controller.java类中所有返回类型为Integer的方法

表达式

execution(Integer com.aop.common.AopTest2Controller.*(..))

这里需要注意,使用的是Integer而非int,我这里试了下int会报错,你可以测试一下,暂时不清楚原因

2.7 拦截指定包下指定类的所有入参第一个参数为String的方法

方法的参数列表可以多样的,可精准匹配指定入参的方法
如拦截com.aop.common包下AopTest2Controller.java类中所有第一个入参为String类型的方法

表达式

execution(* com.aop.common.AopTest2Controller.*(String, ..))

2.8 拦截所有带有指定注解的所有方法

拦截带有某个注解的所有方法
如拦截带有@Scheduled注解的所有方法,注解需要使用全限定名(即@加上import后面跟的全部)
所有带有@Scheduled注解的方法在自动执行时都会被拦截

表达式

execution(@org.springbframework.scheduling.annotation.Scheduled * *(..))

3. 组合表达式

通过与或非(and/or/not)进行组合表达式拦截

3.1 与&&

使用&&来实现同时满足两个或多个条件的

execution(* com.aop.common.AopTest2Controller.*(..)) && execution(* com.aop.controller.AopTestController.*(..))

3.2 或||

使用||来实现多个条件匹配(满足其一即可)
如拦截com.aop.common.AopTest2Controller类或com.aop.controller.AopTestController下的所有方法

execution(* com.aop.common.AopTest2Controller.*(..)) || execution(* com.aop.controller.AopTestController.*(..))

3.3 非!

使用!来实现排除某种情况之外的部分执行(非的符号位英文感叹号!)
如拦截com.aop.common.AopTest2Controller类所有方法以外的所有方法

!execution(* com.aop.common.AopTest2Controller.*(..))

4. 注意事项

4.1 Tips1

在使用表达式时,包的路径在开始包com后至少加上一级包名,后面才可以使用*进行模糊匹配,即,开始都需要以com.aop开始(我这里com下面是aop,你根据自己的包名进行使用),后面进行模糊匹配定义
com.aop.*.*.*(..),每一个*代表一级包,最后的两个*表示类和方法
..表示多级包,如com.aop..*(..),表示aop下的所有方法包括其子包

4.2 Tips2

在使用带有Integer的表达式时,在方法的返回值类型上,需定义包装类,也就是Integr,而不是int,不然会报错(org.springframework.aop.AopInvocationException: Null return value from advice does not match primitive return type for: public int com.aop.common.Test4Controller.test1())

4.3 Tips3

在使用最后一个定时任务注解时,需要先参考文章实现定时任务功能,再进行aop的配置
Java定时任务@Scheduled的使用


感谢阅读,祝君暴富!


版权声明:

  • 作者:寒山李白
  • 博客地址:https://hanshan.blog.csdn.net/
  • 版权:本作品采用《创作共享许可证》进行许可,根据该许可授权的内容可在符合本许可证条款的前提下自由使用、、修改和创作衍生作品。

版权许可介绍:
本文采用CC BY-NC-SA许可证
此许可允许在使用者仅出于非商业目的以任何媒体或格式分发、重新混合、改编和构建材料,并且前提是注明创作者。如果您重新混合、改编或基于该材料进行构建,则必须按照相同的条款对修改后的材料进行许可。

更多信息请访问以下网址查看:
版权官网 https://creativecommons.org/licenses/by-nc-sa/4.0/
中文翻译 https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh-hans


文章结束

--------------------------------------------------------------------------------------------------------------------------------------

以下内容增加文章评分用,可忽略

加分加分

黄河之水天上来,奔流到海不复回
高堂明镜悲白发,朝如青丝暮成雪

1. 加分

黄河之水天上来,奔流到海不复回
高堂明镜悲白发,朝如青丝暮成雪

2. 加分

黄河之水天上来,奔流到海不复回
高堂明镜悲白发,朝如青丝暮成雪

3. 加分

寒山李白
寒山李白

4. 加分

账号密码

名称密码
李白123

4.1 加分1

账号密码

名称密码
李白123

4.2 加分2

账号密码

名称密码
李白123

4.3 加分3

账号密码

名称密码
李白123

4.4 加分4

账号密码

名称密码
李白123

http://www.hkea.cn/news/399379/

相关文章:

  • 做企业平台的网站有哪些手机网站制作教程
  • 免费行情的软件大全下载北京公司排名seo
  • 网站联系方式要素qq群推广链接
  • div css 网站模板免费的云服务器有哪些
  • 35互联做网站好吗网店运营工作内容
  • 网站建设模拟软件营销培训课程内容
  • 深圳建网站兴田德润专业2023年最新新闻简短摘抄
  • 学校网站怎么查询录取百度相册登录入口
  • 自助建设彩票网站网址查询工具
  • 怎么创建网页的快捷方式seo入门版
  • 互联网企业网站网络优化
  • 山东手工活外发加工网四川二级站seo整站优化排名
  • 行业门户网站开发百度竞价怎么做效果好
  • 适合前端做项目的网站百度网盘搜索
  • 下载网站怎么下载广州网站定制多少钱
  • 西安攻略旅游自由行怎么玩北京seo软件
  • 汉川网站建设sem代运营
  • 装酷网装修平台东莞seo外包
  • 专门做图片的网站吗如何建网站要什么条件
  • 卢氏县住房和城乡建设局网站站长统计 站长统计
  • 济南 网站制作旺道营销软件
  • 新上线网站如何做搜索引擎站长素材网站
  • 做网站编辑深圳疫情防控最新消息
  • PHP网站开发项目式教程google下载手机版
  • 国外专门用于做网站图片的做网站要多少钱
  • 网站维护费用计入什么科目媒介星软文平台官网
  • 网站建设seo 视频做网站哪个平台好
  • 旅行社网站建设方案论文百度seo公司
  • 长沙网站建设与维护百度开户联系方式
  • 做pcr查基因序列的网站南京百度网站快速优化