常见问题之Java——AOP中常用的切入点表达式

常见问题之Java——AOP中常用的切入点表达式

背景

日常我们开发时,我们会遇到各种各样的奇奇怪怪的问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到的一些问题的记录文章系列,这里整理汇总后分享给大家,让其还在深坑中的小伙伴有绳索能爬出来。
同时在这里也欢迎大家把自己遇到的问题留言或私信给我,我看看其能否给大家解决。

开发环境

  • 系统:windows10
  • JDK:openjdk11
  • 开发工具:IDEA 教育版
  • 框架:SpringBoot
  • 包管理:Gradle

    内容

    上一篇,我们提到了AOP的基础概念(知识分享之Java——AOP中执行顺序),这一篇我们整理一下常用的切入点表达式。

关键词:execution 用于匹配子表达式
格式 @注解(“execution([可见性]返回类型[声明类型].方法名(参数)[异常]”)

这其中常用注解包括以下几种:

@Aspect、@Component、@Pointcut、@Before、@AfterReturning

而表达式的格式构成主要有以下这些:

    • 这个符号表示匹配所有的。
    • 这个表示类和子类
  • … 这个表示多个包,比如core包下面的所有:com.demo.core…
  • && 这个表示并且
  • || 这个表示或者
  • ! 这个表示非
    例如常见的表达式有:
    execution(* com.demo.core.controller.indexController.index(..))
    表示com.demo.core.controller包下的indexController类中的index方法生效,*表示里面不管任何返回值的均包括。
阅读更多

知识分享之Java——SpringBoot中使用template时相对路径使用方式

知识分享之Java——SpringBoot中使用template时相对路径使用方式

背景

日常我们开发时,我们会遇到各种各样的奇奇怪怪的问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到的一些问题的记录文章系列,这里整理汇总后分享给大家,让其还在深坑中的小伙伴有绳索能爬出来。
同时在这里也欢迎大家把自己遇到的问题留言或私信给我,我看看其能否给大家解决。

开发环境

  • 系统:windows10
  • JDK:openjdk11
  • 开发工具:IDEA 教育版
  • 框架:SpringBoot
  • 包管理:Gradle

    内容

    在SpringBoot中使用template时进行引用静态资源时我们需要注意,如果采用href或src直接引用可能会导致增加项目名时无法有效的引用资源,例如使用的语法为href=”../static/js/main.js”
    这时我们就需要熟悉template的各种引用语法到底能做什么,以下是我们常用的几种语法,便于我们日常进行使用的快速查阅。

    1、合理使用th:href和th:src

    1
    <link th:href="@{/static/css/style.css} rel="stylesheet"  />
    这种方式其会引用的地址例如:http://127.0.0.1:8080/项目名/static/css/style.css
    适合于我们项目支持项目名时使用。

    2、对于编译进行支持

    1
    <link href="../static/css/style.css" th:href="@{/static/css/style.css} rel="stylesheet"  />
    这里我们增加了href属性的设置,其作用是在编译时便于它根据这个地址进行寻找上一层的static下的相对文件位置。

    3、不使用template中的语法

    1
    2
    <base href="/">
    <link href="../static/css/style.css" rel="stylesheet" />
    这时它会根据base标签中设置的路径,在其后方进行拼接我们使用的文件路径。
本文声明:

88x31.png
知识共享许可协议
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。

知识分享之Java——AOP中执行顺序

知识分享之Java——AOP中执行顺序

背景

日常我们开发时,我们会遇到各种各样的奇奇怪怪的问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到的一些问题的记录文章系列,这里整理汇总后分享给大家,让其还在深坑中的小伙伴有绳索能爬出来。
同时在这里也欢迎大家把自己遇到的问题留言或私信给我,我看看其能否给大家解决。

开发环境

  • 系统:windows10
  • JDK:openjdk11
  • 开发工具:IDEA 教育版
  • 框架:SpringBoot
  • 包管理:Gradle

    内容

    在AOP切片中我们知道其包含了很多个节点,那具体节点前后顺序是如何的呢?下面我整理了一下,便于有需要的小伙伴查阅使用。

    概念:

    Advice 通知
    Joinpoint 连接点
    Pointcut 切入点
    Aspect 切面
    Proxy 代理
    Weaving 织入

步骤包括:

1、@Around
2、@Before
3、@Method
4、@Around
5、@After
6、@AfterThrowing
7、@AfterReturning

如果我们编写了多个AOP时,在执行到第二步(@Before)时下一步将会进入到第二个AOP的初始@Around第一步中,待第二个AOP执行完毕再跳回至第一个AOP中的第四步,而@Method指的是原方法,只会被调用一次。不会因为多个AOP而被调用多次。具体顺序由@Order注解进行控制。
当进入第五步时出现异常时会进入第六步,当正常时会执行第七步。

本文声明:

88x31.png
知识共享许可协议
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。

阅读更多

常见问题之Java——根据|截取字符串

常见问题之Java——根据|截取字符串

背景

日常我们开发时,我们会遇到各种各样的奇奇怪怪的问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到的一些问题的记录文章系列,这里整理汇总后分享给大家,让其还在深坑中的小伙伴有绳索能爬出来。
同时在这里也欢迎大家把自己遇到的问题留言或私信给我,我看看其能否给大家解决。

开发环境

  • 系统:windows10
  • JDK:openjdk11
  • 开发工具:IDEA 教育版
  • 框架:SpringBoot
  • 包管理:Gradle

内容

常见问题:根据|截取字符串时数量不对

1
2
String a = "aaa|bbb|ccc"
String[] d = a.split("|");

这种截取时,|是没有效果的,这里我们需要使用到转义符

1
2
String a = "aaa|bbb|ccc"
String[] d = a.split("\\|");
阅读更多

常见问题之Java——使用lombok中的@Slf4j时log缺失

常见问题之Java——使用lombok中的@Slf4j时log缺失

背景

日常我们开发时,我们会遇到各种各样的奇奇怪怪的问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到的一些问题的记录文章系列,这里整理汇总后分享给大家,让其还在深坑中的小伙伴有绳索能爬出来。
同时在这里也欢迎大家把自己遇到的问题留言或私信给我,我看看其能否给大家解决。

开发环境

  • 系统:windows10
  • JDK:openjdk11
  • 开发工具:IDEA 教育版
  • 框架:SpringBoot
  • 包管理:Gradle

    内容

    本节问题:常见问题之Java——使用lombok中的@Slf4j时log缺失

    1
    2
    3
    4
    5
    错误: 找不到符号
    log.info("------------ Start Cookie Filter ------------");
    ^
    符号: 变量 log
    位置: 类 XssConfig

    解决方法如图所示

    问题1、缺失插件

    打开File——settings——Plugins
    在其中搜索Lombok并进行安装
    image.png

问题2、编译时没有编译注解

打开File——settings——Build, Execution, Deployment——Compiler——Annotation Processors
勾选上Enable annotation processing

image.png

问题3、编译器没有使用javac

打开File ——Settings—— Build, Execution, Deployment——Compiler——Java Compiler
use compiler:选择javac
image.png

阅读更多

常见问题之Java——IDEA中Build Output乱码如何解决

常见问题之Java——IDEA中Build Output乱码如何解决

背景

日常我们开发时,我们会遇到各种各样的奇奇怪怪的问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到的一些问题的记录文章系列,这里整理汇总后分享给大家,让其还在深坑中的小伙伴有绳索能爬出来。
同时在这里也欢迎大家把自己遇到的问题留言或私信给我,我看看其能否给大家解决。

开发环境

  • 系统:windows10
  • JDK:openjdk11
  • 开发工具:IDEA 教育版
  • 框架:SpringBoot
  • 包管理:Gradle

    内容

    本节问题:IDEA中Build Output乱码如何解决

    这其实是我们在进行初始安装时打开IDEA会自动加载本地字符集,而我们的项目通常使用UTF-8,导致使用了默认字符集的IDEA无法有效识别出来我们打印出来的错误或者程序内部报出来的错误导致。
    image.png

解决方法如图所示

1
image.png

按照上图设置完成后,进行再次运行尝试一下。
如果还不能解决,则按照下图继续进行修改:
image.png
在文件尾部追加

1
-Dfile.encoding=UTF-8

image.png

阅读更多