diff --git a/spring-core/pom.xml b/spring-core/pom.xml
index 16984a387b..70002bf3c1 100644
--- a/spring-core/pom.xml
+++ b/spring-core/pom.xml
@@ -58,6 +58,12 @@
lombok
${lombok.version}
+
+ org.springframework.boot
+ spring-boot-test
+ ${mockito.spring.boot.version}
+ test
+
@@ -112,6 +118,7 @@
1.10.19
+ 1.4.4.RELEASE
4.3.4.RELEASE
1
20.0
diff --git a/spring-core/src/main/java/com/baeldung/value/ClassNotManagedBySpring.java b/spring-core/src/main/java/com/baeldung/value/ClassNotManagedBySpring.java
new file mode 100644
index 0000000000..0329769d3c
--- /dev/null
+++ b/spring-core/src/main/java/com/baeldung/value/ClassNotManagedBySpring.java
@@ -0,0 +1,28 @@
+package com.baeldung.value;
+
+public class ClassNotManagedBySpring {
+
+ private String customVariable;
+ private String anotherCustomVariable;
+
+ public ClassNotManagedBySpring(String someInitialValue, String anotherManagedValue) {
+ this.customVariable = someInitialValue;
+ this.anotherCustomVariable = anotherManagedValue;
+ }
+
+ public String getCustomVariable() {
+ return customVariable;
+ }
+
+ public void setCustomVariable(String customVariable) {
+ this.customVariable = customVariable;
+ }
+
+ public String getAnotherCustomVariable() {
+ return anotherCustomVariable;
+ }
+
+ public void setAnotherCustomVariable(String anotherCustomVariable) {
+ this.anotherCustomVariable = anotherCustomVariable;
+ }
+}
diff --git a/spring-core/src/main/java/com/baeldung/value/InitializerBean.java b/spring-core/src/main/java/com/baeldung/value/InitializerBean.java
new file mode 100644
index 0000000000..8c8634c767
--- /dev/null
+++ b/spring-core/src/main/java/com/baeldung/value/InitializerBean.java
@@ -0,0 +1,21 @@
+package com.baeldung.value;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+@Component
+public class InitializerBean {
+
+ private String someInitialValue;
+ private String anotherManagedValue;
+
+ public InitializerBean(@Value("someInitialValue") String someInitialValue, @Value("anotherValue") String anotherManagedValue) {
+ this.someInitialValue = someInitialValue;
+ this.anotherManagedValue = anotherManagedValue;
+ }
+
+ public ClassNotManagedBySpring initClass() {
+ return new ClassNotManagedBySpring(this.someInitialValue, this.anotherManagedValue);
+ }
+
+}
diff --git a/spring-core/src/main/resources/application.properties b/spring-core/src/main/resources/application.properties
new file mode 100644
index 0000000000..fdc6536237
--- /dev/null
+++ b/spring-core/src/main/resources/application.properties
@@ -0,0 +1,2 @@
+someInitialValue=This is only sample value
+anotherValue=Another configured value
\ No newline at end of file
diff --git a/spring-core/src/test/java/com/baeldung/value/ClassNotManagedBySpringTest.java b/spring-core/src/test/java/com/baeldung/value/ClassNotManagedBySpringTest.java
new file mode 100644
index 0000000000..d07d490642
--- /dev/null
+++ b/spring-core/src/test/java/com/baeldung/value/ClassNotManagedBySpringTest.java
@@ -0,0 +1,40 @@
+package com.baeldung.value;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import static junit.framework.TestCase.assertEquals;
+import static org.mockito.Mockito.when;
+
+@RunWith(SpringRunner.class)
+public class ClassNotManagedBySpringTest {
+
+ @MockBean
+ private InitializerBean initializerBean;
+
+ @Before
+ public void init() {
+ when(initializerBean.initClass())
+ .thenReturn(new ClassNotManagedBySpring("This is only sample value", "Another configured value"));
+ }
+
+ @Test
+ public void givenInitializerBean_whenInvokedInitClass_shouldInitialize() throws Exception {
+
+ //given
+ ClassNotManagedBySpring classNotManagedBySpring = initializerBean.initClass();
+
+ //when
+ String initializedValue = classNotManagedBySpring.getCustomVariable();
+ String anotherCustomVariable = classNotManagedBySpring.getAnotherCustomVariable();
+
+ //then
+ assertEquals("This is only sample value", initializedValue);
+ assertEquals("Another configured value", anotherCustomVariable);
+
+ }
+
+}
\ No newline at end of file