Hendrik Jungnitsch
2022-09-29 e7d09831122841390b36555c28a762d66d41a562
exercise09
1 Dateien hinzugefügt
2 Dateien geändert
22 ■■■■■ Geänderte Dateien
src/main/java/de/gedoplan/seminar/sbt/di/exercise/aop/Counted.java 11 ●●●●● Patch | Ansicht | Raw | Blame | Historie
src/main/java/de/gedoplan/seminar/sbt/di/exercise/aop/MethodCounter.java 9 ●●●●● Patch | Ansicht | Raw | Blame | Historie
src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailServiceImpl.java 2 ●●●●● Patch | Ansicht | Raw | Blame | Historie
src/main/java/de/gedoplan/seminar/sbt/di/exercise/aop/Counted.java
Neue Datei
@@ -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 {
}
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());
    }
}
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()