现正做一个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("为什么不行啦啦啦啦啦啦!"); } }
<aop:aspectj-autoproxy<spanstyle="font-family:Consolas,'BitstreamVeraSansMono','CourierNew',Courier,monospace;line-height:14.65625px;background-color:#FFFFFF;"> proxy-target-class="true"/>加入到MVC的配置文件中去不是一个context
为啥不用现成的<mvc:interceptor/>!
<divclass="ref">为啥不用现成的<mvc:interceptor/>!
<divclass="ref">为啥不用现成的<mvc:interceptor/>!
一看就知道不了解SpringMVC。。。了解还会问么!<divclass="ref">版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。