diff --git a/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/cause6/BeanA.java b/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/cause6/BeanA.java
new file mode 100644
index 0000000000..164b006340
--- /dev/null
+++ b/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/cause6/BeanA.java
@@ -0,0 +1,8 @@
+package org.baeldung.ex.beancreationexception.cause6;
+
+import org.springframework.stereotype.Component;
+
+@Component
+public class BeanA {
+ private IBeanB dependency;
+}
\ No newline at end of file
diff --git a/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/cause6/BeanB.java b/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/cause6/BeanB.java
new file mode 100644
index 0000000000..4a7bdab280
--- /dev/null
+++ b/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/cause6/BeanB.java
@@ -0,0 +1,8 @@
+package org.baeldung.ex.beancreationexception.cause6;
+
+import org.springframework.stereotype.Component;
+
+@Component
+public class BeanB implements IBeanB {
+ //
+}
\ No newline at end of file
diff --git a/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/cause6/IBeanB.java b/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/cause6/IBeanB.java
new file mode 100644
index 0000000000..36b436ce98
--- /dev/null
+++ b/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/cause6/IBeanB.java
@@ -0,0 +1,5 @@
+package org.baeldung.ex.beancreationexception.cause6;
+
+public interface IBeanB {
+ //
+}
diff --git a/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/cause8/BeanA.java b/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/cause8/BeanA.java
new file mode 100644
index 0000000000..2a0230fa3f
--- /dev/null
+++ b/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/cause8/BeanA.java
@@ -0,0 +1,16 @@
+package org.baeldung.ex.beancreationexception.cause8;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Component
+public class BeanA implements IBeanA {
+ private IBeanB beanB;
+
+ @Autowired
+ public BeanA(final IBeanB beanB) {
+ super();
+ this.beanB = beanB;
+ }
+
+}
\ No newline at end of file
diff --git a/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/cause8/BeanB.java b/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/cause8/BeanB.java
new file mode 100644
index 0000000000..2e8a3eed07
--- /dev/null
+++ b/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/cause8/BeanB.java
@@ -0,0 +1,15 @@
+package org.baeldung.ex.beancreationexception.cause8;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Component
+public class BeanB implements IBeanB {
+ final IBeanA beanA;
+
+ @Autowired
+ public BeanB(final IBeanA beanA) {
+ super();
+ this.beanA = beanA;
+ }
+}
\ No newline at end of file
diff --git a/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/cause8/IBeanA.java b/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/cause8/IBeanA.java
new file mode 100644
index 0000000000..3d6c4eef28
--- /dev/null
+++ b/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/cause8/IBeanA.java
@@ -0,0 +1,5 @@
+package org.baeldung.ex.beancreationexception.cause8;
+
+public interface IBeanA {
+ //
+}
diff --git a/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/cause8/IBeanB.java b/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/cause8/IBeanB.java
new file mode 100644
index 0000000000..5f6f438968
--- /dev/null
+++ b/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/cause8/IBeanB.java
@@ -0,0 +1,5 @@
+package org.baeldung.ex.beancreationexception.cause8;
+
+public interface IBeanB {
+ //
+}
diff --git a/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/spring/Cause6ContextWithJavaConfig.java b/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/spring/Cause6ContextWithJavaConfig.java
index 625f34513d..c76e34deec 100644
--- a/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/spring/Cause6ContextWithJavaConfig.java
+++ b/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/spring/Cause6ContextWithJavaConfig.java
@@ -2,9 +2,11 @@ package org.baeldung.ex.beancreationexception.spring;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.ImportResource;
@Configuration
@ComponentScan("org.baeldung.ex.beancreationexception.cause6")
+@ImportResource("classpath:beancreationexception_cause6.xml")
public class Cause6ContextWithJavaConfig {
public Cause6ContextWithJavaConfig() {
diff --git a/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/spring/Cause7ContextWithJavaConfig.java b/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/spring/Cause7ContextWithJavaConfig.java
new file mode 100644
index 0000000000..6b56519c1a
--- /dev/null
+++ b/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/spring/Cause7ContextWithJavaConfig.java
@@ -0,0 +1,18 @@
+package org.baeldung.ex.beancreationexception.spring;
+
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.ImportResource;
+
+@Configuration
+@ComponentScan("org.baeldung.ex.beancreationexception.cause7")
+@ImportResource("classpath:beancreationexception_cause7.xml")
+public class Cause7ContextWithJavaConfig {
+
+ public Cause7ContextWithJavaConfig() {
+ super();
+ }
+
+ // beans
+
+}
\ No newline at end of file
diff --git a/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/spring/Cause8ContextWithJavaConfig.java b/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/spring/Cause8ContextWithJavaConfig.java
new file mode 100644
index 0000000000..084cf8d3af
--- /dev/null
+++ b/spring-exceptions/src/main/java/org/baeldung/ex/beancreationexception/spring/Cause8ContextWithJavaConfig.java
@@ -0,0 +1,16 @@
+package org.baeldung.ex.beancreationexception.spring;
+
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+@ComponentScan("org.baeldung.ex.beancreationexception.cause8")
+public class Cause8ContextWithJavaConfig {
+
+ public Cause8ContextWithJavaConfig() {
+ super();
+ }
+
+ // beans
+
+}
\ No newline at end of file
diff --git a/spring-exceptions/src/main/resources/beancreationexception_cause6.xml b/spring-exceptions/src/main/resources/beancreationexception_cause6.xml
new file mode 100644
index 0000000000..9f66aafa10
--- /dev/null
+++ b/spring-exceptions/src/main/resources/beancreationexception_cause6.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spring-exceptions/src/main/resources/beancreationexception_cause7.xml b/spring-exceptions/src/main/resources/beancreationexception_cause7.xml
new file mode 100644
index 0000000000..f9b95960ec
--- /dev/null
+++ b/spring-exceptions/src/main/resources/beancreationexception_cause7.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause7BeanCreationExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause7BeanCreationExceptionIntegrationTest.java
new file mode 100644
index 0000000000..a61e598b41
--- /dev/null
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause7BeanCreationExceptionIntegrationTest.java
@@ -0,0 +1,19 @@
+package org.baeldung.ex.beancreationexception;
+
+import org.baeldung.ex.beancreationexception.spring.Cause7ContextWithJavaConfig;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.support.AnnotationConfigContextLoader;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(classes = { Cause7ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class)
+public class Cause7BeanCreationExceptionIntegrationTest {
+
+ @Test
+ public final void givenContextIsInitialized_thenNoException() {
+ //
+ }
+
+}
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause8BeanCreationExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause8BeanCreationExceptionIntegrationTest.java
new file mode 100644
index 0000000000..8550f307d5
--- /dev/null
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause8BeanCreationExceptionIntegrationTest.java
@@ -0,0 +1,19 @@
+package org.baeldung.ex.beancreationexception;
+
+import org.baeldung.ex.beancreationexception.spring.Cause8ContextWithJavaConfig;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.support.AnnotationConfigContextLoader;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(classes = { Cause8ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class)
+public class Cause8BeanCreationExceptionIntegrationTest {
+
+ @Test
+ public final void givenContextIsInitialized_thenNoException() {
+ //
+ }
+
+}