From 60da0a954208a1cf93114fb303aeadb87d71f626 Mon Sep 17 00:00:00 2001 From: lor6 Date: Sun, 8 Jan 2017 20:21:31 +0200 Subject: [PATCH] Performance monitoring (#974) * spring performance monitoring interceptors * added person service --- .../performancemonitor/AopConfiguration.java | 15 +++++-- .../MyPerformanceMonitorInterceptor.java | 3 -- .../performancemonitor/PerfomanceApp.java | 6 +-- .../baeldung/performancemonitor/Person.java | 41 ++++++++++++++++--- .../performancemonitor/PersonService.java | 17 ++++++++ 5 files changed, 66 insertions(+), 16 deletions(-) create mode 100644 aspectj/src/main/java/com/baeldung/performancemonitor/PersonService.java diff --git a/aspectj/src/main/java/com/baeldung/performancemonitor/AopConfiguration.java b/aspectj/src/main/java/com/baeldung/performancemonitor/AopConfiguration.java index 3ebe9a7fd8..5e2ef90c0f 100644 --- a/aspectj/src/main/java/com/baeldung/performancemonitor/AopConfiguration.java +++ b/aspectj/src/main/java/com/baeldung/performancemonitor/AopConfiguration.java @@ -1,6 +1,8 @@ package com.baeldung.performancemonitor; -import org.aspectj.lang.annotation.Aspect; +import java.time.LocalDate; +import java.time.Month; + import org.aspectj.lang.annotation.Pointcut; import org.springframework.aop.Advisor; import org.springframework.aop.aspectj.AspectJExpressionPointcut; @@ -14,10 +16,10 @@ import org.springframework.context.annotation.EnableAspectJAutoProxy; @EnableAspectJAutoProxy public class AopConfiguration { - @Pointcut("execution(public int com.baeldung.performancemonitor.Person.getAge())") + @Pointcut("execution(public String com.baeldung.performancemonitor.PersonService.getFullName(..))") public void monitor() { } - @Pointcut("execution(public void com.baeldung.performancemonitor.Person.setAge(int))") + @Pointcut("execution(public int com.baeldung.performancemonitor.PersonService.getAge(..))") public void myMonitor() { } @Bean @@ -34,7 +36,12 @@ public class AopConfiguration { @Bean public Person person(){ - return new Person(); + return new Person("John","Smith", LocalDate.of(1980, Month.JANUARY, 12)); + } + + @Bean + public PersonService personService(){ + return new PersonService(); } @Bean diff --git a/aspectj/src/main/java/com/baeldung/performancemonitor/MyPerformanceMonitorInterceptor.java b/aspectj/src/main/java/com/baeldung/performancemonitor/MyPerformanceMonitorInterceptor.java index c036359851..e995e52182 100644 --- a/aspectj/src/main/java/com/baeldung/performancemonitor/MyPerformanceMonitorInterceptor.java +++ b/aspectj/src/main/java/com/baeldung/performancemonitor/MyPerformanceMonitorInterceptor.java @@ -4,10 +4,7 @@ import java.util.Date; import org.aopalliance.intercept.MethodInvocation; import org.apache.commons.logging.Log; -import org.apache.log4j.Logger; -import org.aspectj.lang.annotation.Aspect; import org.springframework.aop.interceptor.AbstractMonitoringInterceptor; -import org.springframework.util.StopWatch; public class MyPerformanceMonitorInterceptor extends AbstractMonitoringInterceptor { diff --git a/aspectj/src/main/java/com/baeldung/performancemonitor/PerfomanceApp.java b/aspectj/src/main/java/com/baeldung/performancemonitor/PerfomanceApp.java index 62b8287649..00268c978e 100644 --- a/aspectj/src/main/java/com/baeldung/performancemonitor/PerfomanceApp.java +++ b/aspectj/src/main/java/com/baeldung/performancemonitor/PerfomanceApp.java @@ -8,9 +8,9 @@ public class PerfomanceApp { ApplicationContext context = new AnnotationConfigApplicationContext(AopConfiguration.class); Person person = (Person) context.getBean("person"); + PersonService personService = (PersonService) context.getBean("personService"); - person.setAge(20); - System.out.println("Age is:"+person.getAge()); - + System.out.println("Name is:"+personService.getFullName(person)); + System.out.println("Age is:"+personService.getAge(person)); } } diff --git a/aspectj/src/main/java/com/baeldung/performancemonitor/Person.java b/aspectj/src/main/java/com/baeldung/performancemonitor/Person.java index 02c779e6fa..f16f28fdef 100644 --- a/aspectj/src/main/java/com/baeldung/performancemonitor/Person.java +++ b/aspectj/src/main/java/com/baeldung/performancemonitor/Person.java @@ -1,13 +1,42 @@ package com.baeldung.performancemonitor; -public class Person { - private int age; +import java.time.LocalDate; - public int getAge() { - return age; +public class Person { + private String lastName; + private String firstName; + private LocalDate dateOfBirth; + + public Person() { } - public void setAge(int age) { - this.age = age; + public Person(String firstName, String lastName, LocalDate dateOfBirth) { + this.firstName = firstName; + this.lastName = lastName; + this.dateOfBirth = dateOfBirth; + } + + public LocalDate getDateOfBirth() { + return dateOfBirth; + } + + public void setDateOfBirth(LocalDate dateOfBirth) { + this.dateOfBirth = dateOfBirth; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; } } diff --git a/aspectj/src/main/java/com/baeldung/performancemonitor/PersonService.java b/aspectj/src/main/java/com/baeldung/performancemonitor/PersonService.java new file mode 100644 index 0000000000..f5bfdddc12 --- /dev/null +++ b/aspectj/src/main/java/com/baeldung/performancemonitor/PersonService.java @@ -0,0 +1,17 @@ +package com.baeldung.performancemonitor; + +import java.time.LocalDate; +import java.time.Period; + +public class PersonService { + + public String getFullName(Person person){ + return person.getLastName()+" "+person.getFirstName(); + } + + public int getAge(Person person){ + Period p = Period.between(person.getDateOfBirth(), LocalDate.now()); + return p.getYears(); + } + +}