2016-11-08 4 views
-3

Я столкнулся с проблемой и до сих пор не могу понять, как этого добиться. Может кто-нибудь, пожалуйста, помогите мне в этом.Spring AOP Controller

У меня есть существующее приложение, которое имеет около 10 JSP и содержит более 200 запросов (как чтение, запись, так и обновление), что означает, что у нас есть 200 методов в 10 различных классах весеннего контроллера. Теперь из-за некоторой проблемы безопасности я должен написать новый контроллер (а не просто java, потому что мне нужно прочитать некоторые данные из jsp и request/session), и я хочу вызвать этот новый контроллер перед каждым запросом, это означает, что я хотите вызвать метод в новом контроллере перед любым выполнением каких-либо методов GET или POST в моих существующих классах контроллеров.

Я думаю, что я должен использовать AOP, но не знаю, как настроить. любой пример будет большой помощью.

+1

Вы должны использовать сервлет-фильтры. –

+2

И, возможно, только Spring Security из коробки. – chrylis

+0

@JerinJoseph: Да, я использую фильтры. Вот подробности о проблеме и о том, что я пробовал до сих пор. http://stackoverflow.com/questions/40470725/spring-mvc-security-token-based-authentication – SKumar

ответ

0

Если вы хорошо разбираетесь в Spring AOP и хотите использовать его без каких-либо альтернатив, то вам следует использовать До аннотация из Aop.

Вы хотите выполнить его для каждой операции в своем приложении, затем определить его как класс Java и определить компонент в файле Xml.

@Aspect() Public Class MyAopClass {

@Before ("SomeMethod()") общественных недействительный doBeforeTask() { ... }

// выполнение для среза точек всех классы во всех пакетах и ​​для методов с любым // не из Params @Pointcut ("исполнение (* com.packages. . (..))") частная пустота SomeMethod() {}

}

Для получения дополнительной информации, перейдите по этой ссылке относительно конфигурации и определения аспектов.

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

+0

он не показывает pointcut, как я написал, ... это должно быть использовано -> @Pointcut («исполнение (* com.packages. *. * (..))») – user2929