From e7d09831122841390b36555c28a762d66d41a562 Mon Sep 17 00:00:00 2001
From: Hendrik Jungnitsch <hendrik.jungnitsch@gedoplan.de>
Date: Di, 04 Okt 2022 14:38:49 +0200
Subject: [PATCH] exercise09
---
src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailServiceImpl.java | 2 ++
src/main/java/de/gedoplan/seminar/sbt/di/exercise/aop/MethodCounter.java | 9 +++++++++
src/main/java/de/gedoplan/seminar/sbt/di/exercise/aop/Counted.java | 11 +++++++++++
3 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/src/main/java/de/gedoplan/seminar/sbt/di/exercise/aop/Counted.java b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/aop/Counted.java
new file mode 100644
index 0000000..e7d586e
--- /dev/null
+++ b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/aop/Counted.java
@@ -0,0 +1,11 @@
+package de.gedoplan.seminar.sbt.di.exercise.aop;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Counted {
+}
diff --git a/src/main/java/de/gedoplan/seminar/sbt/di/exercise/aop/MethodCounter.java b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/aop/MethodCounter.java
index 7bfe6d6..0769733 100644
--- a/src/main/java/de/gedoplan/seminar/sbt/di/exercise/aop/MethodCounter.java
+++ b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/aop/MethodCounter.java
@@ -1,5 +1,8 @@
package de.gedoplan.seminar.sbt.di.exercise.aop;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.AfterReturning;
+import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;
import java.util.Map;
@@ -8,6 +11,7 @@
import java.util.concurrent.atomic.LongAdder;
import java.util.stream.Collectors;
+@Aspect
@Component
public class MethodCounter {
@@ -24,4 +28,9 @@
.collect(Collectors.toMap(Map.Entry::getKey,e -> e.getValue().longValue()));
}
+
+ @AfterReturning("@annotation(Counted)")
+ protected void count(JoinPoint joinPoint) {
+ increase(joinPoint.getSignature().getName());
+ }
}
diff --git a/src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailServiceImpl.java b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailServiceImpl.java
index ff9a7e1..7e42b1a 100644
--- a/src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailServiceImpl.java
+++ b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailServiceImpl.java
@@ -1,5 +1,6 @@
package de.gedoplan.seminar.sbt.di.exercise.service;
+import de.gedoplan.seminar.sbt.di.exercise.aop.Counted;
import de.gedoplan.seminar.sbt.di.exercise.domain.Cocktail;
import de.gedoplan.seminar.sbt.di.exercise.repository.CocktailRepository;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -20,6 +21,7 @@
this.filters = filters;
}
+ @Counted
@Override
public List<Cocktail> findAll() {
return cocktailRepository.findAll().stream()
--
Gitblit v1.7.1