@Controller アノテーションが付けられたクラスで @RequestMapping アノテーションが付けられたすべてのメソッドを選択したいと考えています。
次のポイントカット定義は正常に機能します...場合によっては:
@within(org.springframework.stereotype.Controller)
and
@annotation(org.springframework.web.bind.annotation.RequestMapping)
問題は、@Controller アノテーションが付けられたクラスが何らかのインターフェースを実装するとすぐに、ポイントカットが適用されなくなり、メソッドが傍受されなくなることです。これは、java.io.Serializable を実装しただけでも発生します。
たとえば、これは機能しませんが、「implements Serializable」を削除するとすぐに機能します。
@Controller
public class TestController extends BaseController implements Serializable {
@RequestMapping(value = "/test")
public String testAuth1(final Model model) {
return "test";
}
}
春の XML 構成:
<aop:config>
<aop:pointcut id="handlerMethods"
expression="@within(org.springframework.stereotype.Controller) and @annotation(org.springframework.web.bind.annotation.RequestMapping)" />
<aop:aspect ref="handlerAdvice">
<aop:before method="interceptionMethod" pointcut-ref="handlerMethods" />
</aop:aspect>
</aop:config>
それについてのアイデアはありますか?ありがとう!