Java SpringWebMVC中的AOP不工作
我正在创建Spring MVC MyBatis应用程序,我正在应用AOP,但它不起作用。我在AOP的xml中使用了以下配置:Java SpringWebMVC中的AOP不工作,java,spring-mvc,spring-aop,Java,Spring Mvc,Spring Aop,我正在创建Spring MVC MyBatis应用程序,我正在应用AOP,但它不起作用。我在AOP的xml中使用了以下配置: <context:component-scan base-package="com.peter" /> <mvc:annotation-driven /> <aop:aspectj-autoproxy /> aspectjrt-1.7.4.jar aspectjtools-1.7.4.jar spring-ao
<context:component-scan base-package="com.peter" />
<mvc:annotation-driven />
<aop:aspectj-autoproxy />
aspectjrt-1.7.4.jar
aspectjtools-1.7.4.jar
spring-aop-3.1.0.RELEASE.jar
aopalliance.jar
下面是我的控制器:
package com.peter.controllers;
@Controller
@RequestMapping(value = "/registration")
public class RegistrationController {
private RegistrationValidator validator = null;
private UserService userService = null;
@Autowired
public void setUserService(UserService userService) {
this.userService = userService;
}
public RegistrationValidator getValidator() {
return validator;
}
@Autowired
public void setValidator(RegistrationValidator validator) {
this.validator = validator;
}
@RequestMapping(method = RequestMethod.GET)
public String showForm(ModelMap model) {
System.out.println("show form");
List<User> users = userService.getAllUser();
model.addAttribute("users", users);
User user = new User();
user.setId(UUID.randomUUID().toString());
user.getId();
model.addAttribute("user", user);
return "registration";
}
@RequestMapping(value = "/add", method = RequestMethod.POST)
public ModelAndView add(@ModelAttribute(value = "user") User user,
BindingResult result) {
System.out.println("add");
validator.validate(user, result);
ModelAndView mv = new ModelAndView("registration");
if (!result.hasErrors()) {
userService.saveUser(user);
user = new User();
user.setId(UUID.randomUUID().toString());
mv.addObject("user", user);
}
mv.addObject("users", userService.getAllUser());
return mv;
}
}
AOP记录器没有在控制台上打印任何sysout,其他一切正常。它也没有显示任何错误。有人能帮我吗?你试过:
<aop:aspectj-autoproxy proxy-target-class="true">
<aop:include name="methodLogger"/>
</aop:aspectj-autoproxy>
您是否检查了编译错误?您是否在com.peter包或com.peter的子包中有方法?@javadev:没有编译错误。我在com.petery的子包中有方法,您应该在selectAll()方法中将切入点定义为@Pointcut(“execution(*com.peter..**))。注意:后面是两点peter@javadev如你所说,我试着画了两个点,但没有成功。
<aop:aspectj-autoproxy proxy-target-class="true">
<aop:include name="methodLogger"/>
</aop:aspectj-autoproxy>