`
guanxi
  • 浏览: 40254 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring AOP 描述的例子(使用AOP记录日志)

阅读更多

日志,需要记录管理员操作日志,

 

这里需要传递2个参数, 文章的编号, 和 SESSION

 

@Aspect

@Controller

public class ControllerAopTest {

 

 

@Pointcut(

value = "execution(* net.watermelon.cms.web.PostController.*(java.lang.Integer,*,javax.servlet.http.HttpServletRequest,..)) && args(id,*,request,..)",  

    argNames = "id,request")   //注意那个 args(id,..) 这样才能找到

private void p(Integer id,HttpServletRequest request){//此切入点的签名可以在别处调用此定义  

 

 

 

@After(value="p(id,request)",argNames = "id,request")

private void  afterP(JoinPoint joinPoint,Integer id,HttpServletRequest request){  //JoinPoint 放在第一个参数

UserSession userSession = (UserSession) request.getSession().getAttribute("userSession");

   Signature signature = joinPoint.getSignature();

       MethodSignature methodSignature = (MethodSignature) signature;  

       Method method = methodSignature.getMethod();  

         method.getName(); 

       if(method != null) //写入库吧

       {

       

       PostAdminOpro postAdminOpro = new PostAdminOpro();

       

       postAdminOpro.setOperDate(new Date());

       postAdminOpro.setOperName(method.getAnnotation(PostLog.class).value());

       postAdminOpro.setPostId(id);

       postAdminOpro.setUserId(userSession.getUserLoginId());

       commonManager.save(postAdminOpro);

       

       }

 

}

 

 

PostController 类似这样的函数

 

       @PostLog("保存/修改")

@RequestMapping("/savePost.do")

public String savePost(@ModelAttribute Post post, BindingResult result,

SessionStatus status, HttpServletRequest request,

HttpServletResponse response) {

 

 

 

       @PostLog("保存/修改")  是自定义的注释

 

 

这样写:

 

 

@Target({ElementType.METHOD})  

@Retention(RetentionPolicy.RUNTIME)

public @interface PostLog{

 

String value() default "";

}

 

分享到:
评论

相关推荐

    spring aop 操作日志

    本资源用来展示如何使用 spring aop 进行日志记录,例子里面通过aop的配置,把产生的日志存放到当前项目的根目录下,而且对方法执行过程中的参数进行了记录,对于aop如何记录日志不清楚的同学可以看看。

    Spring AOP 日志管理 实例

    Spring AOP 日志管理 实例LoggingThrowsAdvice.java

    AOP的例子 记录日志

    切面编程的例子,采用spring,可以在方法执行的前中后进行跟踪

    spring AOP入门实例

    用spring AOP做的最简单的日志记录小例子,特别简单,可直接运行。

    struts2+spring aop demo

    struts2+spring2.5用AOP记录操作日志,带自定义参数aop的例子

    JAVA 中Spring aop 实现日志记载

    该压缩包中包含了一个myeclipse6.5下开发的JAVA基于spring实现的日志记载例子,该例子提供了接受切点参数,解析切点返回值,并且都打印出来了,有详细的文档介绍。

    spring aop 实现源代码--xml and annotation(带lib包)

    在这个例子中,记录日志的代码并没有横切到我们的业务代码中,LogBeforeAdvice和HttpMessageSender彼此不知道对方的存在,而且我们的应用程序AdviceDemo对LogBeforeAdvice的存在也是一无所知。假如有一天我们的应用...

    Spring4.0从入门到精通AOP日志示例

    使用spring4.0进行用户日志的记录 这里带junit的测试跟main的测试 参考了 http://blog.csdn.net/oathevil/article/details/7288867 本代码中还包括了一个java自带注解的例子写的都非常易懂对于hellospring中第一位...

    Spring-aop面向切面编程实例

    Spring-aop面向切面编程实例 日志系统,权限控制等.

    spring通知例子

    本例是一个很好的springAop使用例子,例子举例了spring的前置通知和后置通知的使用方法。用以拦截操作日志。

    基于spring boot 2实现的各类小例子。有aop日志,发送邮件,模板导出excel,模板导出word.zip

    基于spring boot 2实现的各类小例子。有aop日志,发送邮件,模板导出excel,模板导出word

    java 实现AOP

    可以看到,采用AOP之后,日志记录和业务逻辑代码完全分开了,以后要改变日志记录的话只需要修改日志记录处理器就行了,而业务对象本身(BusinessObject)无需做任何修改。并且这个日志记录不会造成重复代码了,所有...

    SpringMVC 写操作日志

    这是一个简单的SpringMVC用aop写操作日志的例子

    spring boot 全面的样例代码

    - chapter4-2-4:[使用AOP统一处理Web请求日志](http://blog.didispace.com/springbootaoplog/) - chapter4-2-5:[使用log4j记录日志到MongoDB](http://blog.didispace.com/springbootlog4jmongodb/) - chapter4-2-6...

    Spring-MVC-aop.zip

    通过注解方式拦截controller等例子,实现日志管理

    spring.net中文手册在线版

    12.6.使用ProxyFactory类以编程方式创建AOP代理 12.7.管理目标对象 12.8.使用“自动代理”功能 12.8.1.自动代理对象的定义 12.8.1.1.ObjectNameAutoProxyCreator 12.8.1.2.DefaultAdvisorAutoProxyCreator 12.8.1.3....

    spring boot 代码示例

    springboot例子, 包含druid数据源, druid的sql监控, druid过滤, mybatis xml配置, mybatis分页插件, logback日志配置, springboot多环境配置, 发送邮件, AOP拦截, 过滤器 spring拦截器, 全局异常, 统一响应, 自定义...

    SSH框架示例(可以直接用)

    ****比较适合新手理解SSH框架***** 闲下来搭了个SSH框架,写些小系统的话可以直接拿来用哦。 连接池是proxool,log4... 搭这个框架的初衷主要是想自己配置一下spring整合proxool以及aop思想对service层的事物控制等。

    CloudStack二次开发帮助文档

    CLOUDSTACK中使用SPRING 17 6.1. CLOUDSTACK组件 18 6.2. 如何声明一个CLOUDSTACK组件 19 6.3. AUTO-WIRING 19 6.4. CLOUDSTACK SPRING组件的编码约定 20 6.4.1. 注意自动注入的时间 20 6.4.2. 公用构造器 20 6.4.3...

Global site tag (gtag.js) - Google Analytics