Hendrik Jungnitsch
2022-09-29 30363ce2c6181bf90a352c580b519ebaee67cf15
exercise09
1 Dateien hinzugefügt
3 Dateien geändert
23 ■■■■■ 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/rest/BarResource.java 2 ●●●●● Patch | Ansicht | Raw | Blame | Historie
src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailServiceImpl.java 1 ●●●● 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/rest/BarResource.java
@@ -1,5 +1,6 @@
package de.gedoplan.seminar.sbt.di.exercise.rest;
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.service.BarInfo;
import de.gedoplan.seminar.sbt.di.exercise.service.CocktailService;
@@ -38,6 +39,7 @@
        return barInfo.barName();
    }
    @Counted
    @GetMapping(path = "cocktails", produces = MediaType.APPLICATION_JSON_VALUE)
    public List<Cocktail> getCocktails() {
        return cocktails;
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;