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依赖 --> <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
@Controllerpublic 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