Sping AOP用AspectJ注解的方式拦截不到SpringMVC的controller方法
现正做一个springMVC+spring+Hibernate的项目。我想实现的是,用户在没有登录的情况下输入任何URL会自动跳到login.jsp 。用户输入URL,URL请求会交由给springMVC的controller去处理,我想用AOP拦截这些URL请求,判断是否登录。我采用基于注解的AspectJ方式,但总是拦截不到,控制台没有报错,照常执行controller里面的方法,贴出代码,求帮忙看看。
spring的配置文件有写注解的配置:
<context:annotation-config /> <context:component-scan base-package="com.zack" /> <aop:aspectj-autoproxy proxy-target-class="true"/>controller:
@Controller @RequestMapping("/user") public class UserController { private UserService userService; public UserService getUserService() { return userService; } @Resource public void setUserService(UserService userService) { this.userService = userService; } @RequestMapping("/getUser.do") public User getUser(String userName){ return userService.getUser(userName); } @RequestMapping("/save.do") public String save(User user){ userService.saveUser(user); return "/success"; } }URL输入 /项目/user/save.do 希望被下面的Interceptor拦截到,执行输出语句,但是不行。。
切面:
@Component @Aspect public class Interceptor { @Pointcut("execution(* com.zack.controller.*.*(..))") public void doFilter(){ } @Before("doFilter()") public void beforeMethod(){ System.out.print("为什么不行啦啦啦啦啦啦!"); } }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
一看就知道不了解SpringMVC
。。。了解还会问么!
一看就知道不了解SpringMVC
为啥不用现成的<mvc:interceptor />!
为啥不用现成的<mvc:interceptor />!
为啥不用现成的<mvc:interceptor />!
<aop:aspectj-autoproxy
proxy-target-class="true"/> 加入到MVC 的配置文件中去 不是一个context