diff --git a/spring-boot-di/pom.xml b/spring-boot-di/pom.xml
index c0faf44335..31ccff03da 100644
--- a/spring-boot-di/pom.xml
+++ b/spring-boot-di/pom.xml
@@ -36,6 +36,11 @@
tomcat-embed-jasper
provided
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
diff --git a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/annotation/Animal.java b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/annotation/Animal.java
index 73bd0e3673..7ec076abc7 100644
--- a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/annotation/Animal.java
+++ b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/annotation/Animal.java
@@ -7,4 +7,5 @@ import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
-public @interface Animal { }
+public @interface Animal {
+}
diff --git a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/annotation/ComponentScanAnnotationFilterApp.java b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/annotation/ComponentScanAnnotationFilterApp.java
index 7e89870d4b..7849e4e10a 100644
--- a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/annotation/ComponentScanAnnotationFilterApp.java
+++ b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/annotation/ComponentScanAnnotationFilterApp.java
@@ -1,21 +1,13 @@
package com.baeldung.componentscan.filter.annotation;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
-import java.util.Arrays;
-
@Configuration
@ComponentScan(includeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Animal.class))
public class ComponentScanAnnotationFilterApp {
- private static ApplicationContext applicationContext;
public static void main(String[] args) {
- applicationContext = new AnnotationConfigApplicationContext(ComponentScanAnnotationFilterApp.class);
- Arrays.stream(applicationContext.getBeanDefinitionNames())
- .forEach(System.out::println);
}
}
diff --git a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/annotation/Elephant.java b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/annotation/Elephant.java
index 8ad8111d6b..758775a737 100644
--- a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/annotation/Elephant.java
+++ b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/annotation/Elephant.java
@@ -1,4 +1,5 @@
package com.baeldung.componentscan.filter.annotation;
@Animal
-public class Elephant { }
+public class Elephant {
+}
diff --git a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/aspectj/Cat.java b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/aspectj/Cat.java
index b34a2d7112..ababe4fea9 100644
--- a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/aspectj/Cat.java
+++ b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/aspectj/Cat.java
@@ -1,3 +1,4 @@
package com.baeldung.componentscan.filter.aspectj;
-public class Cat { }
+public class Cat {
+}
diff --git a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/aspectj/ComponentScanAspectJFilterApp.java b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/aspectj/ComponentScanAspectJFilterApp.java
new file mode 100644
index 0000000000..aea7c0a2cd
--- /dev/null
+++ b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/aspectj/ComponentScanAspectJFilterApp.java
@@ -0,0 +1,15 @@
+package com.baeldung.componentscan.filter.aspectj;
+
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.FilterType;
+
+@Configuration
+@ComponentScan(includeFilters = @ComponentScan.Filter(type = FilterType.ASPECTJ,
+pattern = "com.baeldung.componentscan.filter.aspectj.* "
+ + "&& !(com.baeldung.componentscan.filter.aspectj.L* "
+ + "|| com.baeldung.componentscan.filter.aspectj.C*)"))
+public class ComponentScanAspectJFilterApp {
+ public static void main(String[] args) {
+ }
+}
diff --git a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/aspectj/ComponentScanCustomFilterApp.java b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/aspectj/ComponentScanCustomFilterApp.java
deleted file mode 100644
index 3674c09531..0000000000
--- a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/aspectj/ComponentScanCustomFilterApp.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.baeldung.componentscan.filter.aspectj;
-
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.AnnotationConfigApplicationContext;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
-
-import java.util.Arrays;
-
-@Configuration
-@ComponentScan(includeFilters = @ComponentScan.Filter(type = FilterType.ASPECTJ,
- pattern = "com.baeldung.componentscan.filter.aspectj.* "
- + "&& !(com.baeldung.componentscan.filter.aspectj.L* "
- + "|| com.baeldung.componentscan.filter.aspectj.E*)"))
-public class ComponentScanCustomFilterApp {
- private static ApplicationContext applicationContext;
-
- public static void main(String[] args) {
- applicationContext = new AnnotationConfigApplicationContext(ComponentScanCustomFilterApp.class);
- Arrays.stream(applicationContext.getBeanDefinitionNames())
- .forEach(System.out::println);
- }
-}
diff --git a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/aspectj/Elephant.java b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/aspectj/Elephant.java
index 30abc9dcd4..ade1b5903c 100644
--- a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/aspectj/Elephant.java
+++ b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/aspectj/Elephant.java
@@ -1,3 +1,4 @@
package com.baeldung.componentscan.filter.aspectj;
-public class Elephant { }
+public class Elephant {
+}
diff --git a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/aspectj/Loin.java b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/aspectj/Loin.java
index cf442e981e..6bfdfeb321 100644
--- a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/aspectj/Loin.java
+++ b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/aspectj/Loin.java
@@ -1,3 +1,4 @@
package com.baeldung.componentscan.filter.aspectj;
-public class Loin { }
+public class Loin {
+}
diff --git a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/assignable/Animal.java b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/assignable/Animal.java
index 77cf2e72f0..faf4121834 100644
--- a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/assignable/Animal.java
+++ b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/assignable/Animal.java
@@ -1,3 +1,4 @@
package com.baeldung.componentscan.filter.assignable;
-public interface Animal { }
+public interface Animal {
+}
diff --git a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/assignable/Cat.java b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/assignable/Cat.java
index 262ae154f8..568ac8045f 100644
--- a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/assignable/Cat.java
+++ b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/assignable/Cat.java
@@ -1,3 +1,4 @@
package com.baeldung.componentscan.filter.assignable;
-public class Cat implements Animal { }
+public class Cat implements Animal {
+}
diff --git a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/assignable/ComponentScanAssignableTypeFilterApp.java b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/assignable/ComponentScanAssignableTypeFilterApp.java
index a5fa2b0942..b0155a882b 100644
--- a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/assignable/ComponentScanAssignableTypeFilterApp.java
+++ b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/assignable/ComponentScanAssignableTypeFilterApp.java
@@ -1,21 +1,13 @@
package com.baeldung.componentscan.filter.assignable;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
-import java.util.Arrays;
-
@Configuration
@ComponentScan(includeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = Animal.class))
public class ComponentScanAssignableTypeFilterApp {
- private static ApplicationContext applicationContext;
public static void main(String[] args) {
- applicationContext = new AnnotationConfigApplicationContext(ComponentScanAssignableTypeFilterApp.class);
- Arrays.stream(applicationContext.getBeanDefinitionNames())
- .forEach(System.out::println);
}
}
diff --git a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/assignable/Elephant.java b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/assignable/Elephant.java
index 815e0d762a..74637c86ba 100644
--- a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/assignable/Elephant.java
+++ b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/assignable/Elephant.java
@@ -1,3 +1,4 @@
package com.baeldung.componentscan.filter.assignable;
-public class Elephant implements Animal { }
+public class Elephant implements Animal {
+}
diff --git a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/custom/Cat.java b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/custom/Cat.java
index 282d6bb641..17a8e87b7a 100644
--- a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/custom/Cat.java
+++ b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/custom/Cat.java
@@ -1,3 +1,4 @@
package com.baeldung.componentscan.filter.custom;
-public class Cat extends Pet { }
+public class Cat extends Pet {
+}
diff --git a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/custom/ComponentScanCustomFilter.java b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/custom/ComponentScanCustomFilter.java
index ebaccf7838..30ccb19276 100644
--- a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/custom/ComponentScanCustomFilter.java
+++ b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/custom/ComponentScanCustomFilter.java
@@ -10,11 +10,11 @@ import java.io.IOException;
public class ComponentScanCustomFilter implements TypeFilter {
@Override
- public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory)
- throws IOException {
+ public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory) throws IOException {
ClassMetadata classMetadata = metadataReader.getClassMetadata();
String superClass = classMetadata.getSuperClassName();
- if (Pet.class.getName().equalsIgnoreCase(superClass)) {
+ if (Pet.class.getName()
+ .equalsIgnoreCase(superClass)) {
return true;
}
return false;
diff --git a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/custom/ComponentScanCustomFilterApp.java b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/custom/ComponentScanCustomFilterApp.java
index 1a4f5dbf4e..3a87b6a807 100644
--- a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/custom/ComponentScanCustomFilterApp.java
+++ b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/custom/ComponentScanCustomFilterApp.java
@@ -1,21 +1,13 @@
package com.baeldung.componentscan.filter.custom;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
-import java.util.Arrays;
-
@Configuration
@ComponentScan(includeFilters = @ComponentScan.Filter(type = FilterType.CUSTOM, classes = ComponentScanCustomFilter.class))
public class ComponentScanCustomFilterApp {
- private static ApplicationContext applicationContext;
public static void main(String[] args) {
- applicationContext = new AnnotationConfigApplicationContext(ComponentScanCustomFilterApp.class);
- Arrays.stream(applicationContext.getBeanDefinitionNames())
- .forEach(System.out::println);
}
}
diff --git a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/custom/Loin.java b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/custom/Loin.java
index 0e2f9e0692..5deb4af9f3 100644
--- a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/custom/Loin.java
+++ b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/custom/Loin.java
@@ -1,3 +1,4 @@
package com.baeldung.componentscan.filter.custom;
-public class Loin { }
+public class Loin {
+}
diff --git a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/custom/Pet.java b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/custom/Pet.java
index 9b4497221d..c9be5a39c2 100644
--- a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/custom/Pet.java
+++ b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/custom/Pet.java
@@ -1,3 +1,4 @@
package com.baeldung.componentscan.filter.custom;
-public class Pet { }
+public class Pet {
+}
diff --git a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/regex/Cat.java b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/regex/Cat.java
index 87341cae9d..4569f91787 100644
--- a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/regex/Cat.java
+++ b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/regex/Cat.java
@@ -1,3 +1,4 @@
package com.baeldung.componentscan.filter.regex;
-public class Cat { }
+public class Cat {
+}
diff --git a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/regex/ComponentScanRegexFilterApp.java b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/regex/ComponentScanRegexFilterApp.java
index 36e94446b2..d2b7bd03fb 100644
--- a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/regex/ComponentScanRegexFilterApp.java
+++ b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/regex/ComponentScanRegexFilterApp.java
@@ -1,20 +1,13 @@
package com.baeldung.componentscan.filter.regex;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
-import java.util.Arrays;
-
@Configuration
@ComponentScan(includeFilters = @ComponentScan.Filter(type = FilterType.REGEX, pattern = ".*[t]"))
public class ComponentScanRegexFilterApp {
- private static ApplicationContext applicationContext;
public static void main(String[] args) {
- applicationContext = new AnnotationConfigApplicationContext(ComponentScanRegexFilterApp.class);
- Arrays.stream(applicationContext.getBeanDefinitionNames()).forEach(System.out::println);
}
}
diff --git a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/regex/Elephant.java b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/regex/Elephant.java
index 314dca5b77..4910be41ad 100644
--- a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/regex/Elephant.java
+++ b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/regex/Elephant.java
@@ -1,3 +1,4 @@
package com.baeldung.componentscan.filter.regex;
-public class Elephant { }
+public class Elephant {
+}
diff --git a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/regex/Loin.java b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/regex/Loin.java
index 1b75fc1b43..5b7949be38 100644
--- a/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/regex/Loin.java
+++ b/spring-boot-di/src/main/java/com/baeldung/componentscan/filter/regex/Loin.java
@@ -1,3 +1,4 @@
package com.baeldung.componentscan.filter.regex;
-public class Loin { }
+public class Loin {
+}
diff --git a/spring-boot-di/src/main/java/com/baeldung/componentscan/springapp/SpringComponentScanApp.java b/spring-boot-di/src/main/java/com/baeldung/componentscan/springapp/SpringComponentScanApp.java
index 83b91f7860..8873f1214c 100644
--- a/spring-boot-di/src/main/java/com/baeldung/componentscan/springapp/SpringComponentScanApp.java
+++ b/spring-boot-di/src/main/java/com/baeldung/componentscan/springapp/SpringComponentScanApp.java
@@ -10,10 +10,10 @@ import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan
-//@ComponentScan(excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = Rose.class))
-//@ComponentScan(basePackages = "com.baeldung.componentscan.springapp")
-//@ComponentScan(basePackages = "com.baeldung.componentscan.springapp.animals")
-//@ComponentScan (excludeFilters = @ComponentScan.Filter(type=FilterType.REGEX,pattern="com\\.baeldung\\.componentscan\\.springapp\\.flowers\\..*"))
+// @ComponentScan(excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = Rose.class))
+// @ComponentScan(basePackages = "com.baeldung.componentscan.springapp")
+// @ComponentScan(basePackages = "com.baeldung.componentscan.springapp.animals")
+// @ComponentScan (excludeFilters = @ComponentScan.Filter(type=FilterType.REGEX,pattern="com\\.baeldung\\.componentscan\\.springapp\\.flowers\\..*"))
public class SpringComponentScanApp {
private static ApplicationContext applicationContext;
diff --git a/spring-boot-di/src/main/java/com/baeldung/componentscan/springbootapp/SpringBootComponentScanApp.java b/spring-boot-di/src/main/java/com/baeldung/componentscan/springbootapp/SpringBootComponentScanApp.java
index 4362caefbb..c48f8c5e54 100644
--- a/spring-boot-di/src/main/java/com/baeldung/componentscan/springbootapp/SpringBootComponentScanApp.java
+++ b/spring-boot-di/src/main/java/com/baeldung/componentscan/springbootapp/SpringBootComponentScanApp.java
@@ -8,9 +8,9 @@ import org.springframework.context.annotation.Bean;
import com.baeldung.componentscan.ExampleBean;
@SpringBootApplication
-//@ComponentScan(basePackages = "com.baeldung.componentscan.springbootapp.animals")
-//@ComponentScan ( excludeFilters = @ComponentScan.Filter(type=FilterType.REGEX,pattern="com\\.baeldung\\.componentscan\\.springbootapp\\.flowers\\..*"))
-//@ComponentScan(excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = Rose.class))
+// @ComponentScan(basePackages = "com.baeldung.componentscan.springbootapp.animals")
+// @ComponentScan ( excludeFilters = @ComponentScan.Filter(type=FilterType.REGEX,pattern="com\\.baeldung\\.componentscan\\.springbootapp\\.flowers\\..*"))
+// @ComponentScan(excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = Rose.class))
public class SpringBootComponentScanApp {
private static ApplicationContext applicationContext;
diff --git a/spring-boot-di/src/test/java/com/baeldung/componentscan/filter/annotation/ComponentScanAnnotationFilterAppIntegrationTest.java b/spring-boot-di/src/test/java/com/baeldung/componentscan/filter/annotation/ComponentScanAnnotationFilterAppIntegrationTest.java
new file mode 100644
index 0000000000..ed984a3beb
--- /dev/null
+++ b/spring-boot-di/src/test/java/com/baeldung/componentscan/filter/annotation/ComponentScanAnnotationFilterAppIntegrationTest.java
@@ -0,0 +1,30 @@
+package com.baeldung.componentscan.filter.annotation;
+
+import static org.junit.Assert.assertThat;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+import org.springframework.test.context.junit4.SpringRunner;
+import static org.hamcrest.CoreMatchers.*;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = ComponentScanAnnotationFilterApp.class)
+public class ComponentScanAnnotationFilterAppIntegrationTest {
+
+ @Test
+ public void testBean() {
+ ApplicationContext applicationContext = new AnnotationConfigApplicationContext(ComponentScanAnnotationFilterApp.class);
+ List beans = Arrays.stream(applicationContext.getBeanDefinitionNames())
+ .filter(bean -> !bean.contains("org.springframework") && !bean.contains("componentScanAnnotationFilterApp"))
+ .collect(Collectors.toList());
+ assertThat(beans.size(), equalTo(1));
+ assertThat(beans.get(0), equalTo("elephant"));
+ }
+}
diff --git a/spring-boot-di/src/test/java/com/baeldung/componentscan/filter/aspectj/ComponentScanAspectJFilterAppIntegrationTest.java b/spring-boot-di/src/test/java/com/baeldung/componentscan/filter/aspectj/ComponentScanAspectJFilterAppIntegrationTest.java
new file mode 100644
index 0000000000..fa8d12723f
--- /dev/null
+++ b/spring-boot-di/src/test/java/com/baeldung/componentscan/filter/aspectj/ComponentScanAspectJFilterAppIntegrationTest.java
@@ -0,0 +1,30 @@
+package com.baeldung.componentscan.filter.aspectj;
+
+import static org.junit.Assert.assertThat;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+import org.springframework.test.context.junit4.SpringRunner;
+import static org.hamcrest.CoreMatchers.*;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = ComponentScanAspectJFilterApp.class)
+public class ComponentScanAspectJFilterAppIntegrationTest {
+
+ @Test
+ public void testBean() {
+ ApplicationContext applicationContext = new AnnotationConfigApplicationContext(ComponentScanAspectJFilterApp.class);
+ List beans = Arrays.stream(applicationContext.getBeanDefinitionNames())
+ .filter(bean -> !bean.contains("org.springframework") && !bean.contains("componentScanCustomFilterApp"))
+ .collect(Collectors.toList());
+ assertThat(beans.size(), equalTo(1));
+ assertThat(beans.get(0), equalTo("elephant"));
+ }
+}
diff --git a/spring-boot-di/src/test/java/com/baeldung/componentscan/filter/assignable/ComponentScanAssignableTypeFilterAppIntegrationTest.java b/spring-boot-di/src/test/java/com/baeldung/componentscan/filter/assignable/ComponentScanAssignableTypeFilterAppIntegrationTest.java
new file mode 100644
index 0000000000..460be8e8ba
--- /dev/null
+++ b/spring-boot-di/src/test/java/com/baeldung/componentscan/filter/assignable/ComponentScanAssignableTypeFilterAppIntegrationTest.java
@@ -0,0 +1,31 @@
+package com.baeldung.componentscan.filter.assignable;
+
+import static org.junit.Assert.assertThat;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+import org.springframework.test.context.junit4.SpringRunner;
+import static org.hamcrest.CoreMatchers.*;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = ComponentScanAssignableTypeFilterApp.class)
+public class ComponentScanAssignableTypeFilterAppIntegrationTest {
+
+ @Test
+ public void testBean() {
+ ApplicationContext applicationContext = new AnnotationConfigApplicationContext(ComponentScanAssignableTypeFilterApp.class);
+ List beans = Arrays.stream(applicationContext.getBeanDefinitionNames())
+ .filter(bean -> !bean.contains("org.springframework") && !bean.contains("componentScanAssignableTypeFilterApp"))
+ .collect(Collectors.toList());
+ assertThat(beans.size(), equalTo(2));
+ assertThat(beans.contains("cat"), equalTo(true));
+ assertThat(beans.contains("elephant"), equalTo(true));
+ }
+}
diff --git a/spring-boot-di/src/test/java/com/baeldung/componentscan/filter/custom/ComponentScanCustomFilterAppIntegrationTest.java b/spring-boot-di/src/test/java/com/baeldung/componentscan/filter/custom/ComponentScanCustomFilterAppIntegrationTest.java
new file mode 100644
index 0000000000..f47c0123fa
--- /dev/null
+++ b/spring-boot-di/src/test/java/com/baeldung/componentscan/filter/custom/ComponentScanCustomFilterAppIntegrationTest.java
@@ -0,0 +1,30 @@
+package com.baeldung.componentscan.filter.custom;
+
+import static org.junit.Assert.assertThat;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+import org.springframework.test.context.junit4.SpringRunner;
+import static org.hamcrest.CoreMatchers.*;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = ComponentScanCustomFilterApp.class)
+public class ComponentScanCustomFilterAppIntegrationTest {
+
+ @Test
+ public void testBean() {
+ ApplicationContext applicationContext = new AnnotationConfigApplicationContext(ComponentScanCustomFilterApp.class);
+ List beans = Arrays.stream(applicationContext.getBeanDefinitionNames())
+ .filter(bean -> !bean.contains("org.springframework") && !bean.contains("componentScanCustomFilterApp"))
+ .collect(Collectors.toList());
+ assertThat(beans.size(), equalTo(1));
+ assertThat(beans.get(0), equalTo("cat"));
+ }
+}
diff --git a/spring-boot-di/src/test/java/com/baeldung/componentscan/filter/regex/ComponentScanRegexFilterAppIntegrationTest.java b/spring-boot-di/src/test/java/com/baeldung/componentscan/filter/regex/ComponentScanRegexFilterAppIntegrationTest.java
new file mode 100644
index 0000000000..4fccbd776e
--- /dev/null
+++ b/spring-boot-di/src/test/java/com/baeldung/componentscan/filter/regex/ComponentScanRegexFilterAppIntegrationTest.java
@@ -0,0 +1,31 @@
+package com.baeldung.componentscan.filter.regex;
+
+import static org.junit.Assert.assertThat;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+import org.springframework.test.context.junit4.SpringRunner;
+import static org.hamcrest.CoreMatchers.*;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = ComponentScanRegexFilterApp.class)
+public class ComponentScanRegexFilterAppIntegrationTest {
+
+ @Test
+ public void testBean() {
+ ApplicationContext applicationContext = new AnnotationConfigApplicationContext(ComponentScanRegexFilterApp.class);
+ List beans = Arrays.stream(applicationContext.getBeanDefinitionNames())
+ .filter(bean -> !bean.contains("org.springframework") && !bean.contains("componentScanRegexFilterApp"))
+ .collect(Collectors.toList());
+ assertThat(beans.size(), equalTo(2));
+ assertThat(beans.contains("cat"), equalTo(true));
+ assertThat(beans.contains("elephant"), equalTo(true));
+ }
+}