日志,需要记录管理员操作日志,
这里需要传递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 进行日志记录,例子里面通过aop的配置,把产生的日志存放到当前项目的根目录下,而且对方法执行过程中的参数进行了记录,对于aop如何记录日志不清楚的同学可以看看。
Spring AOP 日志管理 实例LoggingThrowsAdvice.java
切面编程的例子,采用spring,可以在方法执行的前中后进行跟踪
用spring AOP做的最简单的日志记录小例子,特别简单,可直接运行。
struts2+spring2.5用AOP记录操作日志,带自定义参数aop的例子
该压缩包中包含了一个myeclipse6.5下开发的JAVA基于spring实现的日志记载例子,该例子提供了接受切点参数,解析切点返回值,并且都打印出来了,有详细的文档介绍。
在这个例子中,记录日志的代码并没有横切到我们的业务代码中,LogBeforeAdvice和HttpMessageSender彼此不知道对方的存在,而且我们的应用程序AdviceDemo对LogBeforeAdvice的存在也是一无所知。假如有一天我们的应用...
使用spring4.0进行用户日志的记录 这里带junit的测试跟main的测试 参考了 http://blog.csdn.net/oathevil/article/details/7288867 本代码中还包括了一个java自带注解的例子写的都非常易懂对于hellospring中第一位...
Spring-aop面向切面编程实例 日志系统,权限控制等.
本例是一个很好的springAop使用例子,例子举例了spring的前置通知和后置通知的使用方法。用以拦截操作日志。
基于spring boot 2实现的各类小例子。有aop日志,发送邮件,模板导出excel,模板导出word
可以看到,采用AOP之后,日志记录和业务逻辑代码完全分开了,以后要改变日志记录的话只需要修改日志记录处理器就行了,而业务对象本身(BusinessObject)无需做任何修改。并且这个日志记录不会造成重复代码了,所有...
这是一个简单的SpringMVC用aop写操作日志的例子
- chapter4-2-4:[使用AOP统一处理Web请求日志](http://blog.didispace.com/springbootaoplog/) - chapter4-2-5:[使用log4j记录日志到MongoDB](http://blog.didispace.com/springbootlog4jmongodb/) - chapter4-2-6...
通过注解方式拦截controller等例子,实现日志管理
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....
springboot例子, 包含druid数据源, druid的sql监控, druid过滤, mybatis xml配置, mybatis分页插件, logback日志配置, springboot多环境配置, 发送邮件, AOP拦截, 过滤器 spring拦截器, 全局异常, 统一响应, 自定义...
****比较适合新手理解SSH框架***** 闲下来搭了个SSH框架,写些小系统的话可以直接拿来用哦。 连接池是proxool,log4... 搭这个框架的初衷主要是想自己配置一下spring整合proxool以及aop思想对service层的事物控制等。
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...