Class SimpleArchbaseResourceAspect

java.lang.Object
br.com.archbase.resource.logger.aspect.ArchbaseLoggerAspect
br.com.archbase.resource.logger.aspect.SimpleArchbaseResourceAspect
All Implemented Interfaces:
ArchbaseResourceAspect

public class SimpleArchbaseResourceAspect extends ArchbaseLoggerAspect implements ArchbaseResourceAspect
Esta classe é responsável por realizar o login nos métodos do Controlador. Ele usou Spring AspectJ (não Spring CGLib AOP nativo) para entrelaçar a lógica de registro em métodos de controlador correspondentes.

Este aspecto usa duas anotações - Logging e NoLogging para obter controle de granulação fina sobre comportamento de registro do método.

Author:
edsonmartins
See Also:
  • Constructor Details

    • SimpleArchbaseResourceAspect

      public SimpleArchbaseResourceAspect()
    • SimpleArchbaseResourceAspect

      public SimpleArchbaseResourceAspect(@Nonnull org.slf4j.Logger log)
  • Method Details

    • methodOrClassLoggingEnabledPointcut

      public void methodOrClassLoggingEnabledPointcut()
      Specified by:
      methodOrClassLoggingEnabledPointcut in interface ArchbaseResourceAspect
    • methodLoggingNotDisabledPointcut

      public void methodLoggingNotDisabledPointcut()
      Specified by:
      methodLoggingNotDisabledPointcut in interface ArchbaseResourceAspect
    • allPublicControllerMethodsPointcut

      public void allPublicControllerMethodsPointcut()
      Description copied from interface: ArchbaseResourceAspect
      Este ponto de corte é para o ponto de junção correspondente a todos os métodos públicos no controlador
      Specified by:
      allPublicControllerMethodsPointcut in interface ArchbaseResourceAspect
    • log

      @Nullable public Object log(@Nonnull org.aspectj.lang.ProceedingJoinPoint proceedingJoinPoint)
      Specified by:
      log in interface ArchbaseResourceAspect
    • logPreExecutionData

      public void logPreExecutionData(@Nonnull org.aspectj.lang.ProceedingJoinPoint proceedingJoinPoint, @Nullable org.springframework.web.bind.annotation.RequestMapping methodRequestMapping)
      Description copied from interface: ArchbaseResourceAspect
      Registra os dados seguintes no nível INFO sobre o método de execução -
      • Nome do método
      • Par de nome-valor de argumento de método
      • Solicite detalhes, incluindo referenciador, método HTTP, URI e nome de usuário
      Specified by:
      logPreExecutionData in interface ArchbaseResourceAspect
      Parameters:
      proceedingJoinPoint - o objeto joinpoint que representa o método alvo
    • logPostExecutionData

      public void logPostExecutionData(@Nonnull org.aspectj.lang.ProceedingJoinPoint proceedingJoinPoint, @Nonnull org.springframework.util.StopWatch timer, @Nullable Object result, @Nonnull String returnType, @Nullable org.springframework.web.bind.annotation.RequestMapping methodRequestMapping, @Nullable org.springframework.web.bind.annotation.RequestMapping classRequestMapping)
      Description copied from interface: ArchbaseResourceAspect
      Registra os dados seguintes no nível INFO sobre o método executado -
      • Tempo de execução do método em milissegundos

      Registra os dados seguintes no nível DEBUG sobre o método executado -

      • Representação JSON do objeto retornado pelo método
      Specified by:
      logPostExecutionData in interface ArchbaseResourceAspect
      Parameters:
      proceedingJoinPoint - o ponto comum denotando o método executado
      timer - StopWatch objeto contendo o tempo de execução do método
      result - o objeto retornado pelo método executado
      returnType - nome da classe do objeto retornado pelo método executado
    • onException

      public void onException(@Nonnull org.aspectj.lang.JoinPoint joinPoint, @Nonnull Throwable t)
      Description copied from interface: ArchbaseResourceAspect
      Registra qualquer exceção lançada por método. Este aspecto é executado APÓS a exceção ter sido lançada, então não posso engoli-lo aqui.
      Specified by:
      onException in interface ArchbaseResourceAspect
    • serialize

      public void serialize(@Nullable Object object, @Nonnull String objClassName, @Nonnull StringBuilder logMessage)
      Description copied from interface: ArchbaseResourceAspect
      Converte determinado objeto em sua representação JSON por meio de JsonUtil. O JSON serializado para, em seguida, anexado a instância StringBuilder passada.

      Alguns casos excepcionais -

      1. Para objetos do tipo de arquivo, o tamanho do arquivo em bytes é impresso.
      2. Objetos simulados não são serializados. Em vez disso, uma mensagem é impressa indicando que o objeto é uma simulação objeto. Objetos simulados são detectados pela presença de substring 'mock' em seu nome de classe.
      Specified by:
      serialize in interface ArchbaseResourceAspect
      Parameters:
      object - o objeto para serializar
      objClassName - nome da classe do objeto.
      logMessage - StringBuilder instância para anexar JSON serializado.
    • setLog

      public void setLog(@Nonnull org.slf4j.Logger log)