diff --git a/spring-core-4/src/main/java/com/baeldung/disableautowiring/BeanConfiguration.java b/spring-core-4/src/main/java/com/baeldung/disableautowiring/BeanConfiguration.java new file mode 100644 index 000000000000..694c315da59d --- /dev/null +++ b/spring-core-4/src/main/java/com/baeldung/disableautowiring/BeanConfiguration.java @@ -0,0 +1,23 @@ +package com.baeldung.disableautowiring; + +import com.baeldung.disableautowiring.thirdpartylib.Library; +import com.baeldung.disableautowiring.thirdpartylib.TestBean; + +import org.springframework.beans.factory.FactoryBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class BeanConfiguration { + + /** Uncomment this code and comment the below to fail this test case + @Bean public TestBean testBean() { + return Library.createBean(); + } + **/ + + @Bean + public FactoryBean testBean() { + return new TestBeanFactoryBean(); + } +} diff --git a/spring-core-4/src/main/java/com/baeldung/disableautowiring/TestBeanFactoryBean.java b/spring-core-4/src/main/java/com/baeldung/disableautowiring/TestBeanFactoryBean.java new file mode 100644 index 000000000000..93328eba7a8f --- /dev/null +++ b/spring-core-4/src/main/java/com/baeldung/disableautowiring/TestBeanFactoryBean.java @@ -0,0 +1,23 @@ +package com.baeldung.disableautowiring; + +import com.baeldung.disableautowiring.thirdpartylib.TestBean; + +import org.springframework.beans.factory.FactoryBean; + +public class TestBeanFactoryBean implements FactoryBean { + + @Override + public TestBean getObject() throws Exception { + return new TestBean(); + } + + @Override + public Class getObjectType() { + return TestBean.class; + } + + @Override + public boolean isSingleton() { + return true; + } +} diff --git a/spring-core-4/src/main/java/com/baeldung/disableautowiring/thirdpartylib/Library.java b/spring-core-4/src/main/java/com/baeldung/disableautowiring/thirdpartylib/Library.java new file mode 100644 index 000000000000..c5709ee39901 --- /dev/null +++ b/spring-core-4/src/main/java/com/baeldung/disableautowiring/thirdpartylib/Library.java @@ -0,0 +1,12 @@ +package com.baeldung.disableautowiring.thirdpartylib; + +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; + +public class Library { + + public static TestBean createBean() { + ApplicationContext context = new AnnotationConfigApplicationContext(TestBean.class); + return context.getBean(TestBean.class); + } +} diff --git a/spring-core-4/src/main/java/com/baeldung/disableautowiring/thirdpartylib/TestBean.java b/spring-core-4/src/main/java/com/baeldung/disableautowiring/thirdpartylib/TestBean.java new file mode 100644 index 000000000000..6077c04ef3e2 --- /dev/null +++ b/spring-core-4/src/main/java/com/baeldung/disableautowiring/thirdpartylib/TestBean.java @@ -0,0 +1,11 @@ +package com.baeldung.disableautowiring.thirdpartylib; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class TestBean { + + @Autowired + private TestDependency testDependency; +} diff --git a/spring-core-4/src/main/java/com/baeldung/disableautowiring/thirdpartylib/TestDependency.java b/spring-core-4/src/main/java/com/baeldung/disableautowiring/thirdpartylib/TestDependency.java new file mode 100644 index 000000000000..16cea51b7fd0 --- /dev/null +++ b/spring-core-4/src/main/java/com/baeldung/disableautowiring/thirdpartylib/TestDependency.java @@ -0,0 +1,8 @@ +package com.baeldung.disableautowiring.thirdpartylib; + +import org.springframework.stereotype.Component; + +@Component +public class TestDependency { + +} diff --git a/spring-core-4/src/test/java/com/baeldung/disableautowiring/DisableAutowireLiveTest.java b/spring-core-4/src/test/java/com/baeldung/disableautowiring/DisableAutowireLiveTest.java new file mode 100644 index 000000000000..ad0690735315 --- /dev/null +++ b/spring-core-4/src/test/java/com/baeldung/disableautowiring/DisableAutowireLiveTest.java @@ -0,0 +1,23 @@ +package com.baeldung.disableautowiring; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.ApplicationContext; + +import com.baeldung.disableautowiring.thirdpartylib.TestBean; + +//@SpringBootTest +class DisableAutowireLiveTest { + + @Autowired + private ApplicationContext applicationContext; + + @Test + void whenTestBeanIsCraetedWithBeanAnnotation_thenItShouldFail() { + TestBean testBean = applicationContext.getBean(TestBean.class); + Assertions.assertNotNull(testBean); + } + +}