最新消息:关注【太平洋学习网】微信公众号,可以获取全套资料,【全套Java基础27天】【JavaEE就业视频4个月】【Android就业视频4个月】

spring构造函数注入方式详解|Constructor注入

Javaweb 太平洋学习网 浏览 评论

在依赖注入中有一个spring构造器注入方式,它是在<bean>的子标签<constructor-arg>里面的,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"?>  
<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-4.0.xsd">  
  
<bean id="emp" class="com.tpyyes.Employee">  
<constructor-arg value="10" type="int"></constructor-arg>  
</bean>  
  
</beans>

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),如下:

....  
<bean id="e" class="com.javatpoint.Employee">  
<constructor-arg value="张三"></constructor-arg>  
</bean>  
....

Output输出结果:0 张三

如果想调用public Employee(int id, String name)这个有两个参数的构造函数,可以在constructor-arg元素里面加入参数,代码如下:

....  
<bean id="emp" class="com.javatpoint.Employee">  
<constructor-arg value="10" type="int" ></constructor-arg>  
<constructor-arg value="张三"></constructor-arg>  
</bean>  
....

Output输出结果:10 张三

完毕!

如果对小编有什么建议或意见,可以加入微信公众号:太平洋学习网,与小编一起成长。

来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/javaweb/2017/1211/429.html

    与本文相关的文章

    发表我的评论
    取消评论

    表情

    您的回复是我们的动力!

    • 昵称 (必填)

    网友最新评论