- package com.wssys.framework;
- import java.lang.reflect.Method;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import javax.servlet.http.HttpServletRequest;
- import org.apache.shiro.SecurityUtils;
- import org.aspectj.lang.ProceedingJoinPoint;
- import org.aspectj.lang.annotation.Around;
- import org.aspectj.lang.annotation.Aspect;
- import org.aspectj.lang.annotation.Pointcut;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- import org.springframework.web.context.request.RequestContextHolder;
- import org.springframework.web.context.request.ServletRequestAttributes;
- import com.wssys.bean.BolBean;
- import com.wssys.bean.ComPanyForm;
- import com.wssys.bean.DeliverBean;
- import com.wssys.bean.GoodsForm;
- import com.wssys.dao.SyslogDao;
- import com.wssys.entity.Companycontacts;
- import com.wssys.entity.PusFrontUser;
- import com.wssys.entity.PusMenu;
- import com.wssys.entity.PusRole;
- import com.wssys.entity.PusSysUser;
- import com.wssys.entity.Syslog;
- import com.wssys.utils.StringUtil;
- import com.wssys.utils.TCPIPUtil;
- /**
- * \
- *
- * @Aspect 实现spring aop 切面(Aspect):
- * 一个关注点的模块化,这个关注点可能会横切多个对象。事务管理是J2EE应用中一个关于横切关注点的很好的例子。 在Spring
- * AOP中,切面可以使用通用类(基于模式的风格) 或者在普通类中以 @Aspect 注解(@AspectJ风格)来实现。
- *
- * AOP代理(AOP Proxy): AOP框架创建的对象,用来实现切面契约(aspect contract)(包括通知方法执行等功能)。
- * 在Spring中,AOP代理可以是JDK动态代理或者CGLIB代理。 注意:Spring
- * 2.0最新引入的基于模式(schema-based
- * )风格和@AspectJ注解风格的切面声明,对于使用这些风格的用户来说,代理的创建是透明的。
- * @author q
- *
- */
- @Component
- @Aspect
- public class LogService {
- @Autowired
- private SyslogDao syslogDao;
- public LogService() {
- System.out.println("Aop");
- }
- /**
- * 在Spring
- * 2.0中,Pointcut的定义包括两个部分:Pointcut表示式(expression)和Pointcut签名(signature
- * )。让我们先看看execution表示式的格式:
- * 括号中各个pattern分别表示修饰符匹配(modifier-pattern?)、返回值匹配(ret
- * -type-pattern)、类路径匹配(declaring
- * -type-pattern?)、方法名匹配(name-pattern)、参数匹配((param
- * -pattern))、异常类型匹配(throws-pattern?),其中后面跟着“?”的是可选项。
- *
- * @param point
- * @throws Throwable
- */
- @Pointcut("@annotation(com.wssys.framework.MethodLog)")
- public void methodCachePointcut() {
- }
- // // @Before("execution(* com.wssys.controller.*(..))")
- // public void logAll(JoinPoint point) throws Throwable {
- // System.out.println("打印========================");
- // }
- //
- // // @After("execution(* com.wssys.controller.*(..))")
- // public void after() {
- // System.out.println("after"
SpringAOP拦截Controller,Service实现日志管理(自定义注解的方式)
最新推荐文章于 2024-08-13 14:12:44 发布
本文展示了如何使用Spring AOP通过自定义注解的方式实现对Controller和服务层的方法进行日志管理。详细介绍了如何定义切点、注解、切面,并提供了拦截Controller和Service的方法,记录用户的操作日志和异常信息。
摘要由CSDN通过智能技术生成