Table of Contents
Tutorial Content: Spring tutorial for beginners
- Introduction to spring framework
- Spring interview questions
- Dependency injection(ioc) in spring
- Spring XML based configuration example
- Spring java based configuaration
- Dependency injection via setter method in spring
- Dependency injection via constructor in spring
- Spring Bean scopes with examples
- Initializing collections in spring
- Beans Autowiring in spring
- Inheritance in Spring
- Spring ApplicationContext
- Spring lifetime callbacks
- BeanPostProcessors in Spring
- Annotation based Configuration in spring
- Spring AOP tutorial
As the name implies, using setter method spring container will inject the dependencies.This technique is considered as the best approach for dependency injection.
For configuring spring in your eclipse ide please refer hello world example.
Dependency Injection via Setter method
1.Country.java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
package org.arpit.javapostsforlearning; public class Country { String countryName; Capital capital; public String getCountryName() { return countryName; } public void setCountryName(String countryName) { this.countryName = countryName; } public Capital getCapital() { return capital; } public void setCapital(Capital capital) { this.capital = capital; } } |
2.Capital.java
Create Capital.java under package org.arpit.javapostsforlearning.java.Above Country class contains object of this class.Copy following content into Capital.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
package org.arpit.javapostsforlearning; public class Capital { String capitalName; public String getCapitalName() { return capitalName; } public void setCapitalName(String capitalName) { this.capitalName = capitalName; } } |
3.ApplicationContext.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="CountryBean" class="org.arpit.javapostsforlearning.Country"> <property name="countryName" value="India"/> <property name="capital" ref="CapitalBean"/> </bean> <bean id="CapitalBean" class="org.arpit.javapostsforlearning.Capital"> <property name="capitalName" value="Delhi"/> </bean> </beans> |
Here We have declared two beans with corresponding ids.
1.Class Country with id as “CountryBean”
2.Class Capital with id as “CapitalBean”
Property’s value tag is for assigning value to corresponding attribute. so In above xml file,we have assigned countryName attribute of Country class with value as india
1 2 3 |
<property name="Name Of Attribute" value="Value Of attribute to be assigned"/> |
1 2 3 |
<property name="Name Of Attribute" ref="id of referencing bean"/> |
4.SetterMehtodMain.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
package org.arpit.javapostsforlearning; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.core.io.ClassPathResource; public class SetterInjectionMain { public static void main(String[] args) { ApplicationContext appContext = new ClassPathXmlApplicationContext("ApplicationContext.xml"); Country countryObj = (Country) appContext.getBean("CountryBean"); String countryName=countryObj.getCountryName(); String capitalName=countryObj.getCapital().getCapitalName(); System.out.println(capitalName+" is capital of "+countryName); } } |
5.Run it
1 2 3 |
Delhi is capital of India |
In next post, we will see dependency injection via constructor