В последнее время проект должен создать функцию журнала, которую я использую для реализации Spring AOP -метода.
Создайте журнальные аннотации
пакет com.wyj.annotation; импорт java.lang.annotation.documented; импорт java.lang.annotation.elementtype; импорт java.lang.annotation.retention; импорт java.lang.annotation.retentionpolicy; импорт java.lang.annatation.target;/** * * * * * * * * * * @Date: 26 августа 2016 года в 8:25:35 */@target (elementtype.method) @retention (artenentionpolicy.runtime) @documentedpublic @interface syslog {string action () default ""; // action}Создать класс уведомлений о фасевом
Запишите имя метода, параметры и время, проведенное на операции, используя окружающие уведомления
пакет com.wyj.aspect; импорт java.lang.reflect.method; import org.aspectj.lang.proceedingjoinpoint; import org.aspectj.lang.annotation.around; импорт org.aspectj.lang.annotation.aspept; импорт org.aspectj.lang.annotation.pointcut; org.aspectj.lang.reflect.methodsignature; import org.springframework.beans.factory.annotation.autowired; импорт org.springframework.stepytyle.component; импорт com.wyj.annotation.syslog; импорт com.wyj.entity.syslogentity; com.wyj.service.syslogservice;/** * Уведомление о разделе журнала * * * @author: wangyuanjun * @date: 26 августа 2016 г. в 22:28:57 */ @asment @componentpublic class syslogaspepe {@autowworkired Crive Syslogservice syslogservice; / ** * точка входа */ @pointcut (" @annotation (com.wyj.annotation.syslog)") public void pointcut () {}/ ** * Округая уведомление * * @param joinpoint * @return * @Throws Throwable */ @Around ("pointcut ()") publicpoint just -longe inboyt rakeable trowable trowable trowable) System.currentTimeMiLlis (); // Выполнить объект целевого метода result = joinpoint.proceed (); // Время выполнения (миллисекунд) долгое время = System.currentTimeMillis () - BERINTIME; // Сохранить log SavesySlog (JoinPoint, Time); результат возврата; } / ** * Сохранить log * * @param joinpoint * @param time * / private void savesyslog (ходатайство Joinpoint joinpoint, долгое время) {methodignature signature = (methodignature) joinpoint.getSignature (); Метод метода = signature.getmethod (); Syslagentity Syslagentity = New Syslagentity (); Syslog syslog = method.getAnnotation (syslog.class); if (syslog! = null) {// Описание на Annotation syslagentity.setoperation (syslog.action ()); } // Получить target classname = joinpoint.getTarget (). GetClass (). GetName (); // Получить имя метода string methodname = signature.getName (); syslagentity.setmethod (classname + "." + methodname + "()"); // Запрашиваемый объект параметра [] args = joinpoint.getargs (); if (args! = null && args.length! = 0 && args [0]! = null) {syslagentity.setParams (args [0] .toString ()); } syslagentity.settime (время); // Сохранить системный журнал syslogservice.save (syslagentity); }}Сканировать и начать аннотацию AOP
Применение аннотации журнала
Эффект
Приведенный выше метод конфигурации аннотации Appis Apping для реализации управления журналами - это все контент, которым я делюсь с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.