在依赖注入中有一个spring构造器注入方式,它是在的子标签里面的,spring构造函数中的参数有基本类型,对象类型,collection集合,map类型等等,下面的案例以注入基本类型参数为例。
我们将创建如下这三个类,用来学习spring的构函数注入,如下:
Employee.java
applicationContext.xml
Test.java
1:新建一个Employee员工实体类,实体类中有4个构造函数与一个普通方法,如下。package com.tpyyes;
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;
}
public void show(){
System.out.println(id+" "+name);
}
}
2:新建applicationContext.xml文件,配置构造器注入bean,用于spring构造函数注入,constructor-arg元素表示将调用构造函数,type="int"表示调用的是参数为int的构造函数,value属性表示给该构造函数设置值,如下。<?xml version="1.0" encoding="UTF-8"?>
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-4.0.xsd">
3:新建Test.java类,用于测试我们给public Employee(int id)这个构造函数设置的值是否成功,并且能够成功调用show()方法,代码如下。package com.tpyyes;
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 res=new ClassPathResource("applicationContext.xml");
BeanFactory factory=new XmlBeanFactory(res);
Employee s=(Employee)factory.getBean("emp");
s.show();
}
}
Output输出如下字符串:10 null
注释:如果没有指定type类型,则默认调用参数为string字符串类型的构造函数,调用的是这个构造函数public Employee(String name),如下:....
....
Output输出结果:0 张三
如果想调用public Employee(int id, String name)这个有两个参数的构造函数,可以在constructor-arg元素里面加入参数,代码如下:....
....
Output输出结果:10 张三
完毕!
如果对小编有什么建议或意见,可以加入微信公众号:太平洋学习网,与小编一起成长。
来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/javaweb/429.html