spring boot aop死活不生效

自己的spring boot练手的项目,昨天下午吃饭之前还好好的,请求之前日志打的好好的
回来之后什么也没干,死活就是不生效了,百度了一晚上,找了N种方法都不行
项目结构
图片描述

日志代码

@Aspect     // 表示一个切面bean

@Component // bean容器的组件注解。虽然放在contrller包里,但它不是控制器。如果注入service,但我们又没有放在service包里

@Order(3) // 有多个日志时,ORDER可以定义切面的执行顺序(数字越大,前置越后执行,后置越前执行)

public class MyLog{

private Logger log = LoggerFactory.getLogger(this.getClass());

//申明一个切点 里面是 execution表达式

@Pointcut("execution(public * com.sc.starry_sky.*.*.*.*(..))")

private void controllerAspect(){}

//请求method前打印内容

@Before(value = "controllerAspect()")

public void methodBefore(JoinPoint joinPoint){

ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();

HttpServletRequest request = requestAttributes.getRequest();

//打印请求内容

log.info("===============请求内容===============");

log.info("请求地址:"+request.getRequestURL().toString());

log.info("请求方式:"+request.getMethod());

log.info("请求类方法:"+joinPoint.getSignature());

log.info("请求类方法参数:"+ Arrays.toString(joinPoint.getArgs()));

log.info("===============请求内容===============");

}

//在方法执行完结后打印返回内容

@AfterReturning(returning = "o",pointcut = "controllerAspect()")

public void methodAfterReturing(Object o ){

log.info("****************************后置通知****************************");

log.info("返回值:" + o); // 响应的内容---方法的返回值responseEntity

log.info("****************************分割符****************************");

}

}

pom文件

<!-- AOP依赖 -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-aop</artifactId>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-aop</artifactId>

</dependency>

<dependency>

<groupId>org.aspectj</groupId>

<artifactId>aspectjrt</artifactId>

</dependency>

<dependency>

<groupId>org.aspectj</groupId>

<artifactId>aspectjweaver</artifactId>

</dependency>

contorller 修饰符全是public

@Controller

public class Login extends BaseController {

@PostMapping("/doLogin")

@ResponseBody

public Map<String,Object> doLogin(String name){

HashMap<String, Object> resultMap = new HashMap<String, Object>();

try{

PageData user = this.getPageData();

UsernamePasswordToken token = new UsernamePasswordToken(user.getString("username"), user.getString("password"));

SecurityUtils.getSubject().login(token);

resultMap.put("status", 200);

resultMap.put("message", "登录成功");

return resultMap;

}catch(Exception e){

resultMap.put("status", 500);

resultMap.put("message", e.getMessage());

return resultMap;

}

}

@GetMapping("/loginPage")

public ModelAndView loginPage(String name){

ModelAndView mv = new ModelAndView();

System.out.println("in loginPage**************************************************");

mv.setViewName("login-regist");

return mv;

}

@GetMapping("/unauthorized")

public ModelAndView unauthorized(String name){

ModelAndView mv = new ModelAndView();

mv.setViewName("login-regist");

return mv;

}

}

之前生效的时候没有那么多东西,下面的jar包都是后来网上搜的解决方案,所有的方法都试过了是真没招了,不知道到底怎么了

以上是 spring boot aop死活不生效 的全部内容, 来源链接: utcz.com/p/168302.html

回到顶部