java spring3 аннотация basec контроллер с ведением журнала - PullRequest
0 голосов
/ 30 декабря 2011

Я использую Java с Spring3 У меня есть следующий метод обслуживания контроллера

@Override
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
    }

У меня есть следующий метод, который выполняет ведение журнала для каждого метода, я хочу вызвать этот метод для каждого метода службы

public void performLog(HttpServletRequest request){
//process params and log msg
log.debug()
}

Скажите, пожалуйста, как я могу автоматически вызвать метод executeLog (запрос) после метода обслуживания?

1 Ответ

1 голос
/ 03 января 2012

Вы должны использовать Spring AOP для этого. Используйте аннотацию @Before, указав необходимый pointcut. Поместите этот метод в класс, помеченный @Aspect. Нечто похожее на

@Aspect
public class BeforeExample {

  @Pointcut("execution(ModelAndView com.xyz.myapp.MyController.handleRequest(..))")
  public void performLog() {
  // ...
  }

  @Before("execution(* com.xyz.myapp.MyController.*(..))")
  public void performLogAll() {
  // ...
  }
}

Образцы Pointcut можно найти здесь

Проверьте здесь для получения дополнительной информации

...