使用Spring(三)依赖注入DI(Setter DI,构造器注入)
2016-10-18 13:11
537 查看
1.applicationContext.xml
2.applicationContext2.xml
3.
4.运行
![](http://img.blog.csdn.net/20161018131028898?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
<?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="exampleBean" class="com.yw.test03.ExampleBean"> <!-- setter injection using the nested <ref/> element --> <property name="beanOne"> <ref bean="anotherExampleBean" /> </property> <!-- setter injection using the neater 'ref' attribute --> <property name="beanTwo" ref="yetAnotherBean" /> <property name="integerProperty" value="1" /> </bean> <bean id="anotherExampleBean" class="com.yw.test03.AnotherBean" /> <bean id="yetAnotherBean" class="com.yw.test03.YetAnotherBean" /> </beans>
2.applicationContext2.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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="exampleBean" class="com.yw.test03.ExampleBean2"> <!-- constructor injection using the nested <ref/> element --> <constructor-arg> <ref bean="anotherExampleBean" /> </constructor-arg> <!-- constructor injection using the neater 'ref' attribute --> <constructor-arg ref="yetAnotherBean" /> <constructor-arg type="int" value="1" /> </bean> <bean id="anotherExampleBean" class="com.yw.test03.AnotherBean" /> <bean id="yetAnotherBean" class="com.yw.test03.YetAnotherBean" /> </beans>
3.
package com.yw.test03; public class AnotherBean { }
package com.yw.test03; public class YetAnotherBean { }
package com.yw.test03; public class ExampleBean { private AnotherBean beanOne; private YetAnotherBean beanTwo; private int i; public void setBeanOne(AnotherBean beanOne) { this.beanOne = beanOne; } public void setBeanTwo(YetAnotherBean beanTwo) { this.beanTwo = beanTwo; } public void setIntegerProperty(int i) { this.i = i; } }
package com.yw.test03; public class ExampleBean2 { private AnotherBean beanOne; private YetAnotherBean beanTwo; private int i; public ExampleBean2(AnotherBean anotherBean, YetAnotherBean yetAnotherBean, int i) { System.out.println("=构造器=ExampleBean2(AnotherBean anotherBean, YetAnotherBean yetAnotherBean, int i)="); this.beanOne = anotherBean; this.beanTwo = yetAnotherBean; this.i = i; } }
package com.yw.test03; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.FileSystemResource; import org.springframework.core.io.Resource; public class Test01 { public static void main(String[] args) { //实例化容器方法一 // Resource resource = new FileSystemResource("src/com/yw/test02/applicationContext.xml"); // BeanFactory factory = new XmlBeanFactory(resource); //实例化容器方法二 // ClassPathResource resource = new ClassPathResource("com/yw/test02/applicationContext.xml"); // BeanFactory factory = new XmlBeanFactory(resource); //实例化容器方法三 ApplicationContext context = new ClassPathXmlApplicationContext(new String[] { "com/yw/test03/applicationContext.xml"}); // of course, an ApplicationContext is just a BeanFactory BeanFactory factory = (BeanFactory) context; //XML格式定义的Setter DI例子 Object obj=factory.getBean("exampleBean"); System.out.println("obj="+obj); } }
package com.yw.test03; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.FileSystemResource; import org.springframework.core.io.Resource; public class Test02 { public static void main(String[] args) { //实例化容器方法一 // Resource resource = new FileSystemResource("src/com/yw/test02/applicationContext.xml"); // BeanFactory factory = new XmlBeanFactory(resource); //实例化容器方法二 // ClassPathResource resource = new ClassPathResource("com/yw/test02/applicationContext.xml"); // BeanFactory factory = new XmlBeanFactory(resource); //实例化容器方法三 ApplicationContext context = new ClassPathXmlApplicationContext(new String[] { "com/yw/test03/applicationContext2.xml"}); // of course, an ApplicationContext is just a BeanFactory BeanFactory factory = (BeanFactory) context; //XML格式定义的构造器注入例子 Object obj=factory.getBean("exampleBean"); System.out.println("obj="+obj); } }
4.运行
相关文章推荐
- (6) Spring 如何装配 集合类 以及 【第二种 依赖注入 方式】使用 构造器 注入
- spring 使用构造器方式依赖注入
- spring使用注解进行DI(依赖)注入
- Spring.net 控制反转(IOC)依赖注入(DI)的使用 以及Config文件的配置
- Spring 3.0 学习-DI 依赖注入_创建Spring 配置-使用一个或多个XML 文件作为配置文件,使用自动注入(byName),在代码中使用注解代替自动注入,使用自动扫描代替xml中bea
- (5) Spring 如何装配 集合类 以及 【第二种 依赖注入 方式】使用 构造器 注入
- Spring使用 --- 基本概念(一):DI,依赖注入
- Spring第六弹—-依赖注入之使用构造器注入与使用属性setter方法注入
- Spring -Spring的 DI - 依赖注入的 使用学习
- 使用Spring.Net对Web页面进行依赖注入
- 使用XPath解析xml实现简单的Spring IOC完成bean的依赖注入
- Spring入门03 - 依赖注入DI
- .NET 使用spring.net实现依赖注入
- day01-spring2.5.5中使用“依赖注入的注解”
- Spring的控制反转(IoC)和依赖注入(DI)
- 使用dom4j:读取spring配置文件,实例化bean对象并注入依赖对象
- Spring学习(一)---依赖注入(DI)1
- spring(依赖注入-DI)
- Spring2.5依赖注入方式(DI)
- Spring -di依赖注入