spring aop Caused by: java.lang.IllegalArgumentException: Pointcut is not well-formed: 报错
2018-01-23 15:28
1576 查看
最近这几天在公司研究spring aop(面向切面编程),在使用spring 注解实现时,遇到了一个bug,由此记录一下,方便日后读阅;报错如下图所示:
由于是第一次接触spring aop 当时就懵逼了,在网上搜索相关的错误,最后找到了自己的问题出在哪里;
我这里出错的原因是因为在使用注解定义切面对象的切入点时,没有使用spring aop中的 execution()的表达式导致出现这样的错误,一开始的代码如下:红色部分出错
@Aspect
// 声明该类是切面类
@Component
// 配置文件中启动自动扫描功能,将该切面交给spring 去管理
public class Transaction {
// 定义切点
@Pointcut(" com.bjsd.aop.service.*.*(..)")
public void allMethod() {
};
/**
* 在核心业务执行前执行,不能阻止核心业务的调用。
*
* @param joinPoint
*/
@Before("allMethod()")
private void doBefore(JoinPoint joinPoint) {
System.out.println("-----doBefore().invoke-----");
System.out.println(" 此处意在执行核心业务逻辑前,做一些安全性的判断等等");
System.out.println(" 可通过joinPoint来获取所需要的内容");
System.out.println("-----End of doBefore()------");
}
} 修改方法:在使用注解定义切入点时要使用execution()表达式去匹配我们程序中的哪个包中的哪个类的哪个方法被定义为切入点。
修改后的代码:
@Aspect
// 声明该类是切面类
@Component
// 配置文件中启动自动扫描功能,将该切面交给spring 去管理
public class Transaction {
// 定义切点
@Pointcut("execution(* com.bjsd.aop.service.*.*(..))")
public void allMethod() {
};
/**
* 在核心业务执行前执行,不能阻止核心业务的调用。
*
* @param joinPoint
*/
@Before("allMethod()")
private void doBefore(JoinPoint joinPoint) {
System.out.println("-----doBefore().invoke-----");
System.out.println(" 此处意在执行核心业务逻辑前,做一些安全性的判断等等");
System.out.println(" 可通过joinPoint来获取所需要的内容");
System.out.println("-----End of doBefore()------");
}
} 最后问题解决;哪位朋友有不同的见解,欢迎留言,大家共同进步!
由于是第一次接触spring aop 当时就懵逼了,在网上搜索相关的错误,最后找到了自己的问题出在哪里;
我这里出错的原因是因为在使用注解定义切面对象的切入点时,没有使用spring aop中的 execution()的表达式导致出现这样的错误,一开始的代码如下:红色部分出错
@Aspect
// 声明该类是切面类
@Component
// 配置文件中启动自动扫描功能,将该切面交给spring 去管理
public class Transaction {
// 定义切点
@Pointcut(" com.bjsd.aop.service.*.*(..)")
public void allMethod() {
};
/**
* 在核心业务执行前执行,不能阻止核心业务的调用。
*
* @param joinPoint
*/
@Before("allMethod()")
private void doBefore(JoinPoint joinPoint) {
System.out.println("-----doBefore().invoke-----");
System.out.println(" 此处意在执行核心业务逻辑前,做一些安全性的判断等等");
System.out.println(" 可通过joinPoint来获取所需要的内容");
System.out.println("-----End of doBefore()------");
}
} 修改方法:在使用注解定义切入点时要使用execution()表达式去匹配我们程序中的哪个包中的哪个类的哪个方法被定义为切入点。
修改后的代码:
@Aspect
// 声明该类是切面类
@Component
// 配置文件中启动自动扫描功能,将该切面交给spring 去管理
public class Transaction {
// 定义切点
@Pointcut("execution(* com.bjsd.aop.service.*.*(..))")
public void allMethod() {
};
/**
* 在核心业务执行前执行,不能阻止核心业务的调用。
*
* @param joinPoint
*/
@Before("allMethod()")
private void doBefore(JoinPoint joinPoint) {
System.out.println("-----doBefore().invoke-----");
System.out.println(" 此处意在执行核心业务逻辑前,做一些安全性的判断等等");
System.out.println(" 可通过joinPoint来获取所需要的内容");
System.out.println("-----End of doBefore()------");
}
} 最后问题解决;哪位朋友有不同的见解,欢迎留言,大家共同进步!
相关文章推荐
- Caused by: java.lang.IllegalArgumentException: Pointcut is not well-formed: expecting ')' at character position 11
- java.lang.IllegalArgumentException: Pointcut is not well-formed: expecting 'name pattern' at charac
- java.lang.IllegalArgumentException: Pointcut is not well-formed: expecting ‘name pattern’
- java.lang.IllegalArgumentException: Pointcut is not well-formed: expecting '(' at character position
- java.lang.IllegalArgumentException: Pointcut is not well-formed: expecting ‘name pattern’
- Caused by: java.lang.IllegalArgumentException: addChild: Child name 'localhost' is not unique
- spring aop 报错:Caused by: java.lang.IllegalArgumentException: error at ::0 formal unbound in pointcut
- 解决kylin报错:Failed to create dictionary on <db>.<table>, Caused by: java.lang.IllegalArgumentException: Too high cardinality is not suitable for dictionary
- AndroidStudio启动异常:Caused by: java.lang.IllegalArgumentException: Argument for @NotNull paramet
- Caused by: java.lang.IllegalArgumentException: Javassist library is missing in classpath! ..错误解决
- Android Caused by: java.lang.IllegalArgumentException: column '_id' does not exist
- Caused by: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value
- nested exception is java.lang. IllegalArgumentException: error at ::0 formal unbound in pointcut
- jpa语句报 org.springframework.dao.InvalidDataAccessApiUsageException: Parameter with that position [2] did not exist; nested exception is java.lang.IllegalArgumentException: Parameter with that position
- Caused by: java.lang.IllegalArgumentException: Text may not be null
- spring aop 报错Pointcut is not well-formed: expecting ‘name pattern’ at character position 48 executi
- Caused by: java.lang.IllegalArgumentException: Result Maps collection does not contain value for com
- springboot Caused by: java.lang.IllegalArgumentException: Property 'sessionFactory' is required
- mybatis 报错:Caused by: java.lang.IllegalArgumentException: Mapped Statements collection does not cont
- Android广播接收器注册问题:Caused by: java.lang.IllegalArgumentException: Receiver not registered