- 构造函数的依赖注入
- 注入原始值和基于字符串的值
- 基本和基于字符串的值
- 从属对象(包含对象)
- 收集值等
让我们看一个简单的示例, 以注入原始值和基于字符串的值。我们在这里创建了三个文件:
- Employee.java
- applicationContext.xml
- Test.java
这是一个简单的类, 包含两个字段id和name。此类中有四个构造函数和一个方法。
package com.srcmini;
public class Employee {
private int id;
private String name;
public Employee() {System.out.println("def cons");
}public Employee(int id) {this.id = id;
}public Employee(String name) { this.name = name;
}public Employee(int id, String name) {
this.id = id;
this.name = name;
}void show(){
System.out.println(id+" "+name);
}}
applicationContext.xml
我们通过此文件将信息提供给Bean。 constructor-arg元素调用构造函数。在这种情况下, 将调用int类型的参数化构造函数。 Constructor-arg元素的value属性将分配指定的值。 type属性指定将调用int参数构造函数。
<
?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:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<
bean id="e" class="com.srcmini.Employee">
<
constructor-arg value="http://www.srcmini.com/10" type="int">
<
/constructor-arg>
<
/bean>
<
/beans>
Test.java
此类从applicationContext.xml文件获取Bean并调用show方法。
package com.srcmini;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.*;
public class Test {
public static void main(String[] args) {Resource r=new ClassPathResource("applicationContext.xml");
BeanFactory factory=new XmlBeanFactory(r);
Employee s=(Employee)factory.getBean("e");
s.show();
}
}
输出:10空
下载此示例
注入基于字符串的值
如果未在构造函数arg元素中指定type属性, 则默认情况下将调用字符串类型的构造函数。
....
<
bean id="e" class="com.srcmini.Employee">
<
constructor-arg value="http://www.srcmini.com/10">
<
/constructor-arg>
<
/bean>
....
如果你按照上面给定的方式更改bean元素, 则将调用字符串参数构造函数, 并且输出将为0 10。
输出:0 10
你还可以按以下方式传递字符串文字:
....
<
bean id="e" class="com.srcmini.Employee">
<
constructor-arg value="http://www.srcmini.com/Sonoo">
<
/constructor-arg>
<
/bean>
....
【Spring通过构造函数进行依赖注入示例】输出:0 Sonoo
你可以同时传递整数文字和字符串, 如下所示
....
<
bean id="e" class="com.srcmini.Employee">
<
constructor-arg value="http://www.srcmini.com/10" type="int" >
<
/constructor-arg>
<
constructor-arg value="http://www.srcmini.com/Sonoo">
<
/constructor-arg>
<
/bean>
....
输出:10 Sonoo
下载此示例(使用Myeclipse IDE开发)
下载此示例(使用Eclipse IDE开发)
推荐阅读
- WinXP运行缓慢如何处理
- 具有非字符串集合(具有从属对象)的构造函数注入示例
- Spring带有Map构造函数注入示例
- Spring依赖对象的构造函数注入实例
- Spring带有集合的构造函数注入示例
- Eclipse IDE创建Spring应用程序详细步骤实例
- Spring IoC容器基本内容介绍
- Spring的依赖注入是什么(答案都在这里——)
- Myeclipse中的Spring应用示例详解