java - variedades - variacion linguistica pdf
Primavera: aspecto de registro estándar(interceptor) (2)
¡Sí hay!
<bean id="customizableTraceInterceptor" class="org.springframework.aop.interceptor.CustomizableTraceInterceptor">
<property name="enterMessage" value="Entering $[methodName]($[arguments])"/>
<property name="exitMessage" value="Leaving $[methodName](): $[returnValue]"/>
</bean>
<aop:config>
<aop:advisor advice-ref="customizableTraceInterceptor" pointcut="execution(public * BankAccountServlet.*(..))"/>
</aop:config>
Echa un vistazo a la API CustomizableTraceInterceptor , puedes definir mensajes separados de entrada / salida / excepción con varios marcadores de posición:
$[methodName]
- reemplazado con el nombre del método que se invoca$[targetClassName]
: reemplazado con el nombre de la clase que es el destino de la invocación$[targetClassShortName]
- reemplazado con el nombre corto de la clase que es el objetivo de la invocación$[returnValue]
- reemplazado con el valor devuelto por la invocación$[argumentTypes]
- reemplazado por una lista separada por comas de los nombres de clase cortos de los argumentos del método$[arguments]
- reemplazado con una lista separada por comas de la representación de cadena de los argumentos del método$[exception]
- reemplazado con la representación de String de cualquier Throwable generado durante la invocación$[invocationTime]
- reemplazado por el tiempo, en milisegundos, tomado por la invocación del método
Aquí está la lista de marcos que hacen el registro a través de AOP:
http://aspect4log.sf.net - hace un registro muy agradable a través de slf4j y @Log anotación. Puede trabajar a través de SpringAOP, y AspectJ. Con AspectJ funciona incluso para métodos privados y constructores y no requiere que una clase sea un Spring Bean. Muy fácil de usar, pude hacerlo funcionar con mi proyecto en 5 minutos.
http://loggifier.unkrig.de : realiza el registro a través de java.util.logging, es un poco demasiado complejo y no está tan bien documentado, pero afirma que puede instrumentar archivos jar / war / ear ya compilados.
AbstractTraceInterceptor (de SpringAOP) y sus subclases SimpleTraceInterceptor y CustomizableTraceInterceptor. La configuración de registro se realiza por separado de las clases. Registros a través de registros comunes. Ya que está diseñado para SpringAOP, tiene que trabajar con Spring Beans (y solo con los métodos públicos de Spring Beans).