- 浏览: 2243613 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (423)
- FileNet相关 (3)
- 应用服务器相关 (22)
- Java综合 (77)
- 持久层 (24)
- struts (11)
- webservice (8)
- 虚拟机 (2)
- 光盘刻录 (0)
- AD及AD集群 (1)
- JS (33)
- F5 (0)
- loadrunner8.1 (0)
- Java 反编译工具 (2)
- DataBase (62)
- ant (1)
- 操作系统 (29)
- 我的任务 (3)
- 平台架构 (16)
- 业务规则引擎 (2)
- 模板 (1)
- EJB (5)
- spring (24)
- CMMI (1)
- 项目管理 (20)
- LDAP (13)
- JMS (10)
- JSP (19)
- JBPM (2)
- web MVC框架设计思想 (2)
- 第三方支付平台 (2)
- BUG管理工具 (1)
- 垃圾站 (2)
- php (1)
- swing (1)
- 书籍 (1)
- QQ qq (2)
- 移动互联网 (26)
- 爱听的歌曲 (0)
- hadoop (4)
- 数据库 (9)
- 设计模式 (1)
- 面试经验只谈 (1)
- 大数据 (9)
- sp (1)
- 缓存数据库 (8)
- storm (2)
- taobao (2)
- 分布式,高并发,大型互联网,负载均衡 (6)
- Apache Ignite (0)
- Docker & K8S (0)
最新评论
-
wangyudong:
新版本 Wisdom RESTClienthttps://gi ...
spring rest mvc使用RestTemplate调用 -
wangyudong:
很多API doc生成工具生成API文档需要引入第三方依赖,重 ...
spring rest mvc使用RestTemplate调用 -
zhaoshijie:
cfying 写道大侠,还是加载了两次,怎么解决啊?求。QQ: ...
spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件) -
xinglianxlxl:
对我有用,非常感谢
spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件) -
k_caesar:
多谢,学习了
利用maven的resources、filter和profile实现不同环境使用不同配置文件
spring aop实现日志功能
- 博客分类:
- spring
关键字 :sping aop实现日志功能
附件是sping aop实现日志功能的完整的工程例子,
但是目前存在一个问题没有解决,就是直接用下面的方式加载配置文件可以拦截目标方法:
ClassPathXmlApplicationContext beanApp = new ClassPathXmlApplicationContext(
"applicationContext.xml");
但是 作为web工程 在web.xml中加载 启动tomcat并且访问的时候拦截不到目标方法该问题已经解决 ......
spring AOP相关知识请看完:
Spring AOP部分使用JDK动态代理或者CGLIB来为目标对象创建代理。(建议尽量使用JDK的动态代理)
如果被代理的目标对象实现了至少一个接口,则会使用JDK动态代理。所有该目标类型实现的接口都将被代理。若该目标对象没有实现任何接口,则创建一个CGLIB代理。
如果你希望强制使用CGLIB代理,(例如:希望代理目标对象的所有方法,而不只是实现自接口的方法)那也可以。但是需要考虑以下问题:
无法通知(advise)Final 方法,因为他们不能被覆写。
你需要将CGLIB 2二进制发行包放在classpath下面,与之相较JDK本身就提供了动态代理
强制使用CGLIB代理需要将 <aop:config> 的 proxy-target-class 属性设为true:
<aop:config proxy-target-class="true">
...
</aop:config>
当需要使用CGLIB代理和@AspectJ自动代理支持,请按照如下的方式设置 <aop:aspectj-autoproxy> 的 proxy-target-class 属性:
<aop:aspectj-autoproxy proxy-target-class="true"/>
附件是完整的例子,可以直接测试运行Main.java
项目中使用时直接拷贝其中的LogIntercept类(该类直接是注解注解方式),只需要修改该类中的@Pointcut("execution(public * com.creatar.portal.service..*.*(..))") 包名称为你真实需要代理的包名即可,注意spring配置文件中一定要加上<aop:aspectj-autoproxy/>这句话 或强制代理类而不会接口加上<aop:aspectj-autoproxy proxy-target-class="true"/> 这句话
附件中的testWeblogic2项目是一个web项目,部署后直接打开http://localhost:8080/testWeblogic2/main.jsp然后点击 增加用户 提交后即可测试AOP代理日志功能(testWeblogic2还没有上传 在家中 ...)
关于代理类中获取request对象:
1、struts2 控制器:
@SuppressWarnings("unused")
private HttpServletRequest getStrutsRequest(){
HttpServletRequest request = ServletActionContext.getRequest();
return request;
}
1、spring 控制器:
@SuppressWarnings("unused")
private HttpServletRequest getSpringRequest(){
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
return request;
}
附件是sping aop实现日志功能的完整的工程例子,
但是目前存在一个问题没有解决,就是直接用下面的方式加载配置文件可以拦截目标方法:
ClassPathXmlApplicationContext beanApp = new ClassPathXmlApplicationContext(
"applicationContext.xml");
但是 作为web工程 在web.xml中加载 启动tomcat并且访问的时候拦截不到目标方法该问题已经解决 ......
spring AOP相关知识请看完:
Spring AOP部分使用JDK动态代理或者CGLIB来为目标对象创建代理。(建议尽量使用JDK的动态代理)
如果被代理的目标对象实现了至少一个接口,则会使用JDK动态代理。所有该目标类型实现的接口都将被代理。若该目标对象没有实现任何接口,则创建一个CGLIB代理。
如果你希望强制使用CGLIB代理,(例如:希望代理目标对象的所有方法,而不只是实现自接口的方法)那也可以。但是需要考虑以下问题:
无法通知(advise)Final 方法,因为他们不能被覆写。
你需要将CGLIB 2二进制发行包放在classpath下面,与之相较JDK本身就提供了动态代理
强制使用CGLIB代理需要将 <aop:config> 的 proxy-target-class 属性设为true:
<aop:config proxy-target-class="true">
...
</aop:config>
当需要使用CGLIB代理和@AspectJ自动代理支持,请按照如下的方式设置 <aop:aspectj-autoproxy> 的 proxy-target-class 属性:
<aop:aspectj-autoproxy proxy-target-class="true"/>
附件是完整的例子,可以直接测试运行Main.java
项目中使用时直接拷贝其中的LogIntercept类(该类直接是注解注解方式),只需要修改该类中的@Pointcut("execution(public * com.creatar.portal.service..*.*(..))") 包名称为你真实需要代理的包名即可,注意spring配置文件中一定要加上<aop:aspectj-autoproxy/>这句话 或强制代理类而不会接口加上<aop:aspectj-autoproxy proxy-target-class="true"/> 这句话
附件中的testWeblogic2项目是一个web项目,部署后直接打开http://localhost:8080/testWeblogic2/main.jsp然后点击 增加用户 提交后即可测试AOP代理日志功能(testWeblogic2还没有上传 在家中 ...)
关于代理类中获取request对象:
1、struts2 控制器:
@SuppressWarnings("unused")
private HttpServletRequest getStrutsRequest(){
HttpServletRequest request = ServletActionContext.getRequest();
return request;
}
1、spring 控制器:
@SuppressWarnings("unused")
private HttpServletRequest getSpringRequest(){
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
return request;
}
- SpringAopTest.rar (4.8 MB)
- 下载次数: 90
发表评论
-
Dubbo Main启动方式浅析
2015-05-27 13:54 15409关键字:Dubbo Main启动方式浅析 服务容器是一个s ... -
spring中的数据源配置信息加密方案
2014-10-22 10:36 1032关键字:spring中的数据源配置信息加密方案 附件是完整的 ... -
基于Spring可扩展Schema提供自定义配置支持
2014-07-21 18:38 959关键字:基于Spring可扩展Schema提供自定义配置支持 ... -
spring 自定义注解实现(MVC层)
2014-07-21 17:32 834关键字:spring 自定义注解实现(MVC层) 前言 在 ... -
Spring MVC 单元测试
2013-12-10 17:56 7944关键字:Spring MVC 单元测试 下面一步一步带领大家 ... -
优化程序之前,可用Jamon来监测你的Spring应用
2013-11-28 23:52 2011关键字:优化程序之前,可用Jamon来监测你的Spring应 ... -
spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件)
2013-11-14 14:01 77138关键字:spring容器加载完毕做一件事情(利用Context ... -
Java MVC框架性能比较 jsp、struts1、struts2、springmvc3
2013-10-30 17:41 2244关键字:Java MVC框架性能比较 jsp、struts1 ... -
spring JTA集成JOTM或Atomikos配置分布式事务(Tomcat应用服务器)
2013-03-26 15:07 9161关键字:spring JTA集成JOTM或Atomikos配置 ... -
mongodb spring支持
2012-12-17 10:11 991关键字:mongodb spring支持 相关链接: ... -
Spring + CXF + 注解方式(webService)
2012-11-02 11:34 6741关键字:Spring + CXF + 注解方式(webS ... -
Spring + Xfire + 注解方式
2012-11-01 15:08 1140关键字:Spring 与集成 Xfire 注解方式( Spr ... -
spring rest mvc使用RestTemplate调用
2012-11-01 12:25 70325关键字:RestTemplate使用 可参考博客: ... -
java面向切面编程
2011-09-24 15:37 2306关键字:java面向切面编程 原理简述:java面向切面编 ... -
SpringMVC添加支持Http的delete、put请求
2011-06-02 23:28 3373浏览器form表单只支持GET与POST请求,而DEL ... -
springMVC有关RESTfull
2011-06-02 22:58 5291关键字:springMVC有关RESTfull Sp ... -
spring文件上传(3.0)
2011-06-02 22:44 2919关键字:Spring CommonsMultipartReso ... -
spring3.0多文件上传例子
2011-06-02 22:43 6644关键字:spring3.0多文件 ... -
spring3.0 mvc rest 注解之@
2011-05-16 22:17 3511关键字:spring mvc rest 注解之@ 本文转自h ... -
spring3.0 mvc和rest入门例子
2011-05-07 19:22 2837关键字:spring3.0 mvc和rest入门例子 现在 ...
相关推荐
spring aop实现日志功能 开发技术-其它
该压缩包中包含了一个myeclipse6.5下开发的JAVA基于spring实现的日志记载例子,该例子提供了接受切点参数,解析切点返回值,并且都打印出来了,有详细的文档介绍。
4、想看spring aop 注解实现记录系统日志并入库等 二、能学到什么 1、收获可用源码 2、能够清楚的知道如何用spring aop实现自定义注解以及注解的逻辑实现 (需要知道原理的请看spring aop源码,此处不做赘述) 3、...
spring aop做的日志管理,网上看的,没测试过。
本资源用来展示如何使用 spring aop 进行日志记录,例子里面通过aop的配置,把产生的日志存放到当前项目的根目录下,而且对方法执行过程中的参数进行了记录,对于aop如何记录日志不清楚的同学可以看看。
Spring AOP 日志管理 实例LoggingThrowsAdvice.java
Spring的AOP实现的日志功能案例.zip Spring的AOP实现的日志功能案例.zip Spring的AOP实现的日志功能案例.zip Spring的AOP实现的日志功能案例.zip Spring的AOP实现的日志功能案例.zip Spring的AOP实现的日志功能案例....
spring AOP 切面日志 分层打日志
元注解方式结合AOP,灵活记录操作日志 能够记录详细错误日志为运维提供支持 日志记录尽可能减少性能影响
基于springmvc实现文件上传下载 基于AOP的日志功能基于springmvc实现文件上传下载 基于AOP的日志功能基于springmvc实现文件上传下载 基于AOP的日志功能基于springmvc实现文件上传下载 基于AOP的日志功能基于...
Flex整合Spring实现aop日志管理 实现记录操作的日志
spring aop切面拦截指定类和方法实现流程日志跟踪 一般情况下,在不侵入业务代码的情况下,需要做流程日志跟踪是比较合理的 采用springaop切面思想
使用Spring的AOP技术,实现日志记录功能。记录如下信息: 在哪个时间访问了哪个方法,方法传入了哪些参数
采用SpringAOP拦截Controller,Service实现操作日志管理,统一处理异常,登陆日志管理,是SpringAOP的应用实践。通过SpringAOP的处理,可以方便移植日志管理功能,是个不错的学习demo
swagger和spring Aop日志结合 ,swagger和spring Aop日志结合 ,swagger和spring Aop日志结合 ,
springboot spring aop 拦截器 注解方式实现脱敏(涉及到:pom.xml -->application.properties --->启动类-->拦截器)
spring mvc利用aop日志实现对controller层的拦截
利用自定义注解和spring aop和java反射机制生成用户能够读懂的日志记录。如:用户张三在2013年9月27日17:00执行了用户管理模块的用户删除功能参数为(编号:123456)各位可根据需要写入数据库或者保存到文件。
SpringAOP的日志拦截示例, 包含配置和代码