diff --git a/pom.xml b/pom.xml
index e540cd32eb..78131095c5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -624,6 +624,7 @@
spring-akka
spring-amqp
spring-aop
+ spring-aop-2
spring-apache-camel
spring-batch
@@ -1095,6 +1096,7 @@
spring-akka
spring-amqp
spring-aop
+ spring-aop-2
spring-apache-camel
spring-batch
diff --git a/spring-aop-2/README.md b/spring-aop-2/README.md
new file mode 100644
index 0000000000..a9694ac236
--- /dev/null
+++ b/spring-aop-2/README.md
@@ -0,0 +1,10 @@
+## Spring AOP
+
+This module contains articles about Spring aspect oriented programming (AOP)
+
+### Relevant articles
+
+- [Spring Performance Logging](https://www.baeldung.com/spring-performance-logging)
+- [When Does Java Throw UndeclaredThrowableException?](https://www.baeldung.com/java-undeclaredthrowableexception)
+- [Get Advised Method Info in Spring AOP](https://www.baeldung.com/spring-aop-get-advised-method-info)
+- More articles: [[<-- prev]](/spring-aop)
\ No newline at end of file
diff --git a/spring-aop-2/pom.xml b/spring-aop-2/pom.xml
new file mode 100644
index 0000000000..76e4780e72
--- /dev/null
+++ b/spring-aop-2/pom.xml
@@ -0,0 +1,46 @@
+
+
+ 4.0.0
+ spring-aop-2
+ spring-aop-2
+ war
+
+
+ com.baeldung
+ parent-boot-2
+ 0.0.1-SNAPSHOT
+ ../parent-boot-2
+
+
+
+
+ org.aspectj
+ aspectjrt
+
+
+ org.aspectj
+ aspectjweaver
+
+
+ org.springframework.boot
+ spring-boot-starter-aop
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ org.mockito
+ mockito-core
+ test
+
+
+
+
+ 1.11
+
+
+
\ No newline at end of file
diff --git a/spring-aop-2/src/main/java/com/baeldung/Application.java b/spring-aop-2/src/main/java/com/baeldung/Application.java
new file mode 100644
index 0000000000..c0490d50c6
--- /dev/null
+++ b/spring-aop-2/src/main/java/com/baeldung/Application.java
@@ -0,0 +1,12 @@
+package com.baeldung;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class Application {
+
+ public static void main(String[] args) {
+ SpringApplication.run(Application.class, args);
+ }
+}
diff --git a/spring-aop/src/main/java/com/baeldung/method/info/Account.java b/spring-aop-2/src/main/java/com/baeldung/method/info/Account.java
similarity index 100%
rename from spring-aop/src/main/java/com/baeldung/method/info/Account.java
rename to spring-aop-2/src/main/java/com/baeldung/method/info/Account.java
diff --git a/spring-aop/src/main/java/com/baeldung/method/info/AccountOperation.java b/spring-aop-2/src/main/java/com/baeldung/method/info/AccountOperation.java
similarity index 100%
rename from spring-aop/src/main/java/com/baeldung/method/info/AccountOperation.java
rename to spring-aop-2/src/main/java/com/baeldung/method/info/AccountOperation.java
diff --git a/spring-aop/src/main/java/com/baeldung/method/info/BankAccountAspect.java b/spring-aop-2/src/main/java/com/baeldung/method/info/BankAccountAspect.java
similarity index 100%
rename from spring-aop/src/main/java/com/baeldung/method/info/BankAccountAspect.java
rename to spring-aop-2/src/main/java/com/baeldung/method/info/BankAccountAspect.java
diff --git a/spring-aop/src/main/java/com/baeldung/method/info/BankAccountService.java b/spring-aop-2/src/main/java/com/baeldung/method/info/BankAccountService.java
similarity index 100%
rename from spring-aop/src/main/java/com/baeldung/method/info/BankAccountService.java
rename to spring-aop-2/src/main/java/com/baeldung/method/info/BankAccountService.java
diff --git a/spring-aop/src/main/java/com/baeldung/method/info/WithdrawLimitException.java b/spring-aop-2/src/main/java/com/baeldung/method/info/WithdrawLimitException.java
similarity index 100%
rename from spring-aop/src/main/java/com/baeldung/method/info/WithdrawLimitException.java
rename to spring-aop-2/src/main/java/com/baeldung/method/info/WithdrawLimitException.java
diff --git a/spring-aop/src/main/java/com/baeldung/performancemonitor/AopConfiguration.java b/spring-aop-2/src/main/java/com/baeldung/performancemonitor/AopConfiguration.java
similarity index 100%
rename from spring-aop/src/main/java/com/baeldung/performancemonitor/AopConfiguration.java
rename to spring-aop-2/src/main/java/com/baeldung/performancemonitor/AopConfiguration.java
diff --git a/spring-aop/src/main/java/com/baeldung/performancemonitor/MyPerformanceMonitorInterceptor.java b/spring-aop-2/src/main/java/com/baeldung/performancemonitor/MyPerformanceMonitorInterceptor.java
similarity index 100%
rename from spring-aop/src/main/java/com/baeldung/performancemonitor/MyPerformanceMonitorInterceptor.java
rename to spring-aop-2/src/main/java/com/baeldung/performancemonitor/MyPerformanceMonitorInterceptor.java
diff --git a/spring-aop/src/main/java/com/baeldung/performancemonitor/PerfomanceApp.java b/spring-aop-2/src/main/java/com/baeldung/performancemonitor/PerfomanceApp.java
similarity index 100%
rename from spring-aop/src/main/java/com/baeldung/performancemonitor/PerfomanceApp.java
rename to spring-aop-2/src/main/java/com/baeldung/performancemonitor/PerfomanceApp.java
diff --git a/spring-aop/src/main/java/com/baeldung/performancemonitor/Person.java b/spring-aop-2/src/main/java/com/baeldung/performancemonitor/Person.java
similarity index 100%
rename from spring-aop/src/main/java/com/baeldung/performancemonitor/Person.java
rename to spring-aop-2/src/main/java/com/baeldung/performancemonitor/Person.java
diff --git a/spring-aop/src/main/java/com/baeldung/performancemonitor/PersonService.java b/spring-aop-2/src/main/java/com/baeldung/performancemonitor/PersonService.java
similarity index 100%
rename from spring-aop/src/main/java/com/baeldung/performancemonitor/PersonService.java
rename to spring-aop-2/src/main/java/com/baeldung/performancemonitor/PersonService.java
diff --git a/spring-aop/src/test/java/com/baeldung/undeclared/SomeCheckedException.java b/spring-aop-2/src/main/java/com/baeldung/undeclared/SomeCheckedException.java
similarity index 100%
rename from spring-aop/src/test/java/com/baeldung/undeclared/SomeCheckedException.java
rename to spring-aop-2/src/main/java/com/baeldung/undeclared/SomeCheckedException.java
diff --git a/spring-aop/src/test/java/com/baeldung/undeclared/ThrowUndeclared.java b/spring-aop-2/src/main/java/com/baeldung/undeclared/ThrowUndeclared.java
similarity index 100%
rename from spring-aop/src/test/java/com/baeldung/undeclared/ThrowUndeclared.java
rename to spring-aop-2/src/main/java/com/baeldung/undeclared/ThrowUndeclared.java
diff --git a/spring-aop/src/test/java/com/baeldung/undeclared/UndeclaredApplication.java b/spring-aop-2/src/main/java/com/baeldung/undeclared/UndeclaredApplication.java
similarity index 100%
rename from spring-aop/src/test/java/com/baeldung/undeclared/UndeclaredApplication.java
rename to spring-aop-2/src/main/java/com/baeldung/undeclared/UndeclaredApplication.java
diff --git a/spring-aop/src/test/java/com/baeldung/undeclared/UndeclaredAspect.java b/spring-aop-2/src/main/java/com/baeldung/undeclared/UndeclaredAspect.java
similarity index 100%
rename from spring-aop/src/test/java/com/baeldung/undeclared/UndeclaredAspect.java
rename to spring-aop-2/src/main/java/com/baeldung/undeclared/UndeclaredAspect.java
diff --git a/spring-aop/src/test/java/com/baeldung/undeclared/UndeclaredService.java b/spring-aop-2/src/main/java/com/baeldung/undeclared/UndeclaredService.java
similarity index 100%
rename from spring-aop/src/test/java/com/baeldung/undeclared/UndeclaredService.java
rename to spring-aop-2/src/main/java/com/baeldung/undeclared/UndeclaredService.java
diff --git a/spring-aop-2/src/main/resources/logback.xml b/spring-aop-2/src/main/resources/logback.xml
new file mode 100644
index 0000000000..4eaa556705
--- /dev/null
+++ b/spring-aop-2/src/main/resources/logback.xml
@@ -0,0 +1,23 @@
+
+
+
+
+ %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spring-aop-2/src/test/java/com/baeldung/SpringContextTest.java b/spring-aop-2/src/test/java/com/baeldung/SpringContextTest.java
new file mode 100644
index 0000000000..13c1c162f1
--- /dev/null
+++ b/spring-aop-2/src/test/java/com/baeldung/SpringContextTest.java
@@ -0,0 +1,15 @@
+package com.baeldung;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = Application.class)
+public class SpringContextTest {
+
+ @Test
+ public void whenSpringContextIsBootstrapped_thenNoExceptions() {
+ }
+}
diff --git a/spring-aop/src/test/java/com/baeldung/method/info/BankAccountServiceIntegrationTest.java b/spring-aop-2/src/test/java/com/baeldung/method/info/BankAccountServiceIntegrationTest.java
similarity index 100%
rename from spring-aop/src/test/java/com/baeldung/method/info/BankAccountServiceIntegrationTest.java
rename to spring-aop-2/src/test/java/com/baeldung/method/info/BankAccountServiceIntegrationTest.java
diff --git a/spring-aop/src/test/java/com/baeldung/undeclared/UndeclaredThrowableExceptionIntegrationTest.java b/spring-aop-2/src/test/java/com/baeldung/undeclared/UndeclaredThrowableExceptionIntegrationTest.java
similarity index 100%
rename from spring-aop/src/test/java/com/baeldung/undeclared/UndeclaredThrowableExceptionIntegrationTest.java
rename to spring-aop-2/src/test/java/com/baeldung/undeclared/UndeclaredThrowableExceptionIntegrationTest.java
diff --git a/spring-aop/src/test/java/com/baeldung/undeclared/UndeclaredThrowableExceptionUnitTest.java b/spring-aop-2/src/test/java/com/baeldung/undeclared/UndeclaredThrowableExceptionUnitTest.java
similarity index 100%
rename from spring-aop/src/test/java/com/baeldung/undeclared/UndeclaredThrowableExceptionUnitTest.java
rename to spring-aop-2/src/test/java/com/baeldung/undeclared/UndeclaredThrowableExceptionUnitTest.java
diff --git a/spring-aop/README.md b/spring-aop/README.md
index b49c2bd457..4ef8c35fde 100644
--- a/spring-aop/README.md
+++ b/spring-aop/README.md
@@ -6,11 +6,9 @@ This module contains articles about Spring aspect oriented programming (AOP)
- [Implementing a Custom Spring AOP Annotation](https://www.baeldung.com/spring-aop-annotation)
- [Intro to AspectJ](https://www.baeldung.com/aspectj)
-- [Spring Performance Logging](https://www.baeldung.com/spring-performance-logging)
- [Introduction to Spring AOP](https://www.baeldung.com/spring-aop)
- [Introduction to Pointcut Expressions in Spring](https://www.baeldung.com/spring-aop-pointcut-tutorial)
- [Introduction to Advice Types in Spring](https://www.baeldung.com/spring-aop-advice-tutorial)
-- [When Does Java Throw UndeclaredThrowableException?](https://www.baeldung.com/java-undeclaredthrowableexception)
-- [Get Advised Method Info in Spring AOP](https://www.baeldung.com/spring-aop-get-advised-method-info)
- [Advise Methods on Annotated Classes With AspectJ](https://www.baeldung.com/aspectj-advise-methods)
- [Joinpoint vs. ProceedingJoinPoint in AspectJ](https://www.baeldung.com/aspectj-joinpoint-proceedingjoinpoint)
+- More articles: [[next -->]](/spring-aop-2)
diff --git a/spring-aop/src/main/resources/logback.xml b/spring-aop/src/main/resources/logback.xml
index 84885fae62..fe4dfdee56 100644
--- a/spring-aop/src/main/resources/logback.xml
+++ b/spring-aop/src/main/resources/logback.xml
@@ -13,10 +13,6 @@
-
-
-
-