Before you read this post I hope you understand about dependency injection and Spring Framework Initial Configuration.
On my previous post we tried simple dependency injection in Java, let's call it Programmatic way. Sometimes we need to make it configurable. Spring offers dependency injection with Declarative way.
Here we go :
1. Jacket.java
Create Java class in package com.brewer :
2. bean.xml
Create bean.xml in package com.brewer :
bean.xml contains list of beans and will loaded by Spring. Spring will save those beans in Application Context.
3. Test.Java
Create Test class in package com.brewer :
Happy Coding :)
On my previous post we tried simple dependency injection in Java, let's call it Programmatic way. Sometimes we need to make it configurable. Spring offers dependency injection with Declarative way.
Here we go :
1. Jacket.java
Create Java class in package com.brewer :
package com.brewer;
public class Jacket {
private String color; //will be injected
public Jacket(){
}
public Jacket(String color){ //used for constructor injection
this.color = color;
}
public String getColor() {
return color;
}
public void setColor(String color) { //used for setter method injection
this.color = color;
}
@Override
public String toString() {
return "Jacket [color=" + color + "]";
}
}
2. bean.xml
Create bean.xml in package com.brewer :
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="jacketConst" class="com.brewer.Jacket">
<constructor-arg>
<value>blue#87CEEB</value>
</constructor-arg>
</bean>
<bean id="jacketSetter" class="com.brewer.Jacket">
<property name="color" value="blue#87CEEB" />
</bean>
</beans>
bean.xml contains list of beans and will loaded by Spring. Spring will save those beans in Application Context.
3. Test.Java
Create Test class in package com.brewer :
package com.brewer;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args) {
ApplicationContext appContext = new ClassPathXmlApplicationContext("com/brewer/bean.xml");
Jacket jacket = (Jacket) appContext.getBean("jacketConst");
System.out.println("Constructor injection : "+jacket.toString());
Jacket jacket2 = (Jacket) appContext.getBean("jacketSetter");
System.out.println("Method Setter injection : "+jacket2.toString());
}
}
Happy Coding :)