一次spring aop 切面的问题
最新项目有个新需求,要在已经写好的controller里面 加上传入参数的验证,由于有多个 controller而且验证每个都要调用其他的服务,故决定采用spring的aop方式。
1.添加aop的验证
@Component
@Aspect
public class VerifyCircle { private Logger logger = LoggerFactory.getLogger(this.getClass());
public static final String shequnHost=SystemProperties.getInstance().getProperty("community.rpc.url"); @Pointcut("execution(* cn.zm518.vip.action.ProductController.rmberTypeDetail(..))")
public void pointCut(){ } @Before("pointCut()")
public void verifyCircle(JoinPoint joinPoint){ System.out.println(joinPoint.getSignature().getName() + "传的参数是:{" + Arrays.asList(joinPoint.getArgs())+"}"); String circleId = ""; if (StringUtils.isBlank(circleId)){ logger.info("circleId 为空!!!"); }
CircleClient circleClient = CircleClient.getInstance(shequnHost); } /*@After("")
public void finish(){ }*/ /* @AfterThrowing(value = "pointCut()",throwing = "ex")
public void verifyException(Exception ex){
logger.debug("检查异常.... 异常信息是:{" + ex + "}");
}*/
}
2.配置文件
注意要在spring-mvc的xml文件里面添加,而不是applicationContext.xml文件添加。网上查找原因说是,applicationContext.xml被spring的ContextLoaderListenerClass加载为WebApplicationContext,此为一个父上下文,而加载spring-mvc是Dispatch-servlet,
此为一个子上下文。如果配置在applicationContext.xml,相当于在父上下文中配置,父上下文无法访问子上下文。
<!--开启aop注解 -->
<aop:aspectj-autoproxy proxy-target-class="true"></aop:aspectj-autoproxy>
3.启动tomcat 验证。。。 结果不行。
自己原因主要是:
@Pointcut("execution(* cn.zm518.vip.action.ProductController.rmberTypeDetail(..))") ,一个自己配置某个方法时候,写成了public void cn.zm518.vip.action.ProductController.rmberTypeDetail() ,但是自己的controller里面是返回的ModelAndView视图
,第二个问题是 自己的方法带有参数,但自己写的是无参数的。所以一直不行。。。
一次spring aop 切面的问题的更多相关文章
- Spring AOP切面的时候参数的传递
Spring AOP切面的时候参数的传递 Xml: <?xml version="1.0" encoding="UTF-8"?> <beans ...
- Spring AOP 切面编程记录日志和接口执行时间
最近客户现在提出系统访问非常慢,需要优化提升访问速度,在排查了nginx.tomcat内存和服务器负载之后,判断是数据库查询速度慢,进一步排查发现是因为部分视图和表查询特别慢导致了整个系统的响应时间特 ...
- spring AOP(切面) 表达式介绍
在 spring AOP(切面) 例子基础上对表达式进行介绍 1.添加接口删除方法 2.接口实现类 UserDaoServer 添加实现接口删除方法 3.测试类调用delUser方法 4. 输出结果截 ...
- 使用Spring AOP切面解决数据库读写分离
http://blog.jobbole.com/103496/ 为了减轻数据库的压力,一般会使用数据库主从(master/slave)的方式,但是这种方式会给应用程序带来一定的麻烦,比如说,应用程序如 ...
- 利用Spring AOP切面对用户访问进行监控
开发系统时往往需要考虑记录用户访问系统查询了那些数据.进行了什么操作,尤其是访问重要的数据和执行重要的操作的时候将数记录下来尤显的有意义.有了这些用户行为数据,事后可以以用户为条件对用户在系统的访问和 ...
- Spring AOP 切面编程的方法
spring aop的使用分为两种,一种是使用注解来实现,一种是使用配置文件来实现. 先来简单的介绍一下这两种方法的实现,接下来详细的介绍各处的知识点便于查阅.目录如下: 1.基于注解实现spring ...
- [Spring] Aspect Oriented Programming with Spring | AOP | 切面 | 切点
使用Spring面向切面编程 1.介绍 AOP是OOP的补充,提供了另一种关于程序结构的思路. OOP的模块化的关键单位是 类 . AOP的则是aspect切面. AOP 将程序的逻辑分成独立的块(叫 ...
- Spring AOP 切面实现操作日志
创建接口注解日志类 package com.fh.service.logAop; /** * Created by caozengling on 2018/7/21. */ import java.l ...
- spring AOP(切面)
AOP 基本概念cross cutting concern横切性关注点:独立服务,遍布在系统处理流程之中 Aspect对横切关注点模块化 advice对横切关注点具体实现 pointcut定义adv ...
- Spring aop切面插入事物回滚
<!-- tx标签配置 事物--> <tx:advice id="txadvice" transaction-manager="transactionM ...
随机推荐
- [转] Maven 直接下载依赖项 artifact, dependency:get
[From]http://dnotes.wikidot.com/dependency:get-example To download an artifact into local repository ...
- Mac下使用Wine安装Notepad++
下载: (链接: https://pan.baidu.com/s/1miOjLXY 密码: 2egg) 安装: 1.安装Wine 参考:http://www.cnblogs.com/EasonJim/ ...
- [Xamarin.Android] 儲存資料於Windows Azure (转帖)
在準備討論Xamarin.Android 如何整合GCM與Windows Azure來實作Push Notification之前, 先來了解如何將Xamarin.Android 與Windows Az ...
- Java调用C函数
一.关于JNI JNI( Java Native Interface )主要是实现Java和C/C++语言之间的通信. Java通过JNI调用本地方法,而本地方法是以库文件的形式存放的(在WINDOW ...
- JS框架设计之对象扩展一种子模块
对象扩展 说完了,对象的创建(框架的命名空间的创建)以及如何解决多库之间的命名空间冲突问题之后,接下来,就是要扩展我们的对象,来对框架进行扩展,我们需要一种新功能,将新添加的功能整合到我们定义的对象中 ...
- Hive的Shell里hive> 执行操作时,出现FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask错误的解决办法(图文详解)
不多说,直接上干货! 这个问题,得非 你的hive和hbase是不是同样都是CDH版本,还是一个是apache版本,一个是CDH版本. 问题详情 [kfk@bigdata-pro01 apache-h ...
- Python2.7环境下安装pydbg
From:http://blog.csdn.net/cheng_tian/article/details/7652058 最近在看<Python灰帽子:黑客与逆向工程师的Python编程之道&g ...
- 何为cookie?
何为cookie HTTP Cookie(也叫Web Cookie或浏览器Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上 ...
- Understanding JVM Internals---不得不转载呀
http://www.cubrid.org/blog/dev-platform/understanding-jvm-internals/ http://architects.dzone.com/art ...
- 文件夹操作之判断是否存在(Directory)
Directory类用于操作文件夹,用于创建.移动和枚举目录和子目录的静态方法.DirectoryInfo类用于典型操作,如复制,移动,重命名,创建和删除目录.他们都可用于获取和设置相关属性或有关创建 ...