【问题标题】:Spring AOP ControllerSpring AOP 控制器
【发布时间】:2017-03-21 14:07:17
【问题描述】:

我遇到了一个问题,但仍然无法弄清楚如何实现这一点。谁能帮我解决这个问题。

我有一个现有的应用程序,它有大约 10 个 JSP,总共有超过 200 个请求(读取、写入和更新),这意味着我们在 10 个不同的 spring 控制器类中有 200 个方法。现在由于一些安全问题,我必须编写一个新控制器(不是简单的 java,因为我需要从 jsp 和请求/会话中读取一些数据)并且我想在每个请求之前调用那个新控制器,这意味着我想要在我现有的控制器类中执行任何 GET 或 POST 方法之前调用新控制器中的方法。

我想我必须使用 AOP,但不知道如何配置。任何例子都会有很大帮助。

【问题讨论】:

  • 您应该使用 servlet 过滤器。
  • 也许只是开箱即用的 Spring Security。
  • @JerinJoseph:是的,我正在使用过滤器。这是有关该问题的详细信息以及我到目前为止所做的尝试。 stackoverflow.com/questions/40470725/…
  • 不知道为什么这个问题我得到了 -1。谁能告诉我为什么,以便我下次记住。
  • @chrylis:是的,我正在使用过滤器。这是有关该问题的详细信息以及我到目前为止所做的尝试。 stackoverflow.com/questions/40470725/…

标签: java spring spring-mvc aop spring-aop


【解决方案1】:

如果你精通Spring AOP,并且只想使用它而没有其他选择,那么你应该使用来自Aop的Before注解。

您想为应用程序中的每个操作执行它,然后将其定义为 Java 类,并在 Xml 文件中定义 bean。

@Aspect() 公共类 MyAopClass {

@Before("someMethod()") 公共无效doBeforeTask(){ ... }

//对所有包中的所有类和具有任何//无参数的方法执行切入点 @Pointcut("执行(* com.packages..(..))") 私有 void someMethod() {}

}

有关详细信息,请参阅此链接,了解方面的配置和定义。

https://www.tutorialspoint.com/spring/aspectj_based_aop_appoach.htm

【讨论】:

  • 它没有像我写的那样显示切入点,...应该使用 -> @Pointcut("execution(* com.packages.*.*(..))")跨度>
猜你喜欢
  • 2015-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-19
  • 1970-01-01
相关资源
最近更新 更多