Основным исследованием в этой статье является код реализации времени выполнения метода записи Spring Boot AOP следующим образом.
Чтобы оптимизировать производительность, необходимо сначала подсчитать время выполнения каждого метода. Слишком трудно напрямую выводить журнал до и после метода. Вы можете использовать AOP для добавления статистики времени
<Depective> <groupid> org.springframework.boot </GroupId> <artifactid> Spring-boot-starter-aop </artifactid> </dependency>
Spring.aop.auto = true
Свойство Spring.aop.auto включено по умолчанию, что означает, что до тех пор, пока введена зависимость AOP, @enableAspectJautoproxy была добавлена по умолчанию. Помните, чтобы не добавлять ненужную информацию, такую как @EnableAspectjautoproxy!
@Component@AspistPublic Class LogAspect {private Static Final Log log = logfactory.getLog (logAspect.class);/*** Определить точку входа. * Объяснение: * * ~ Первый * представляет любой модификатор и любое возвратное значение. * ~ Второй * определяется в веб -пакете или подпакете * ~ третий * любой метод * ~ .. Сопоставьте любое количество параметров. */@Pointcut ("execution (*com.wedo.stream.service ..*.*(..))") public void logpointcut () {}@org.aspectj.lang.annotation.around ("logpointcut ()") public oaround (roearingjoinpoint uckintpoint) throws throws throwable {// grog.debugoun + "/t"); Long Start = System.CurrentTimeMillis (); try {Object result = joinPoint.proceed (); Long End = System.CurrentTimeMillis (); log.Error ("++++++ вокруг"+joinpoint+"/tuse time:"+(end - start)+"ms!"); System.currentTimeMiLsis (); log.Error ("+++++++ вокруг"+joinPoint+"/tuse Time:"+(End - Start)+"MS с исключением:"+e.getMessage ()); Throw e;}}} После метода AOP не может вернуть значение правильно
Этот метод прокси должен вернуть значение, в противном случае в коде не будет возврата.
// это неправильно public void doAround (ходатайство JoinPoint joinPoint) {} Внутренняя документация гласит следующее: в части Spring AOP используется динамический прокси или CGLIB JDK для создания прокси для целевого объекта. Если прокси -цель реализует по крайней мере один интерфейс, используется динамический прокси JDK. Все интерфейсы, реализованные этим целевым типом, будут оформлены. Если целевой объект не реализует какого -либо интерфейса, создается прокси CGLIB.
По умолчанию - динамический прокси JDK, измененный на cglib
Выше приведено все содержимое этой статьи о примере кода времени выполнения метода записи Spring Boot AOP. Я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!