spring中通过Setter方法的依赖注入
顾名思义,使用Setter方法Spring容器将注入依赖项。
本技术被认为是依赖注入的最佳方法。
在Eclipse IDE中配置Spring,请参阅Hello World示例。
通过Setter方法进行依赖注入
1.Country.java:
这是简单的Pojo类,其中有一些属性,所以国家有资本类的名称和对象。
在package org.arpit.javapostssforlarearning中创建country.java .Copy内容到Country.java之后。
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.
这也是一个名为"bueinkname"的一个属性的简单pojo类。
在package org.arpit.javapostsforlearning时创建Capital.java .java.above country类包含此类的对象。
内容进入capical.java之后
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.
<?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="San Franceco"
<property name="capital" ref="CapitalBean"
</bean>
<bean id="CapitalBean" class="org.arpit.javapostsforlearning.Capital">
<property name="capitalName" value="Delhi"
</bean>
</beans>
其中我们已声明具有相应ID的两个bean。
1.包含ID的Culd作为"CountryBean"2.具有ID的Cullas Capital作为"首页"属性的值tagis,用于将值分配给相应的属性。
所以在上面的XML文件中,我们已经为旧金山的价值分配了国家类的CountryName属性
<property name="Name Of Attribute" value="Value Of attribute to be assigned"
属性的Ref Tagis用于分配对应属性的引用。
所以在上面的XML文件中,我们已经为Country类的资本属性指定了Capital类的引用。
<property name="Name Of Attribute" ref="id of referencing bean"
4. settermehtodmain.java.
此类包含main function.create settermethodmain.java在package org.arpit.javapostssforlearning .copy以下内容到settermethodmain.java之后
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);
}
}
我们可以在此处注意到,我们在此处使用ClassPathxmlApplicationContext来获取bean。
有多种方法来获取beans.in Hello World示例我们已使用XMLBeanFactory来获取beans。
5.运行
当我们将运行上面的应用程序时,我们将按照输出作为输出。
Delhi is capital of San Franceco

