您当前的位置: 首页 >  spring

杨林伟

暂无认证

  • 2浏览

    0关注

    3337博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

06Spring - Spring依赖注入(基于XML)

杨林伟 发布时间:2019-04-02 14:24:10 ,浏览量:2

Spring依赖注入 依赖注入的概念

它是Spring框架核心IOC的具体实现方式。简单的说,就是坐等框架把对象传入,而不用我们自己去获取。

1)构造函数注入(constructor-arg标签)

通过配置的方式,给构造函数的成员变量赋值。

代码:

public class CustomerServiceImpl implements ICustomerService{

    private String name;
    private Integer age;
    private Date birthday;

    public CustomerServiceImpl(String name, Integer age, Date birthday) {
        this.name = name;
        this.age = age;
        this.birthday = birthday;
    }

    @Override
    public void saveCustomer() {
        
    }
}

配置如下:


	
	
	



配置解析: index:指定参数在构造函数参数列表的索引位置 type: 指定参数在构造函数中的数据类型 name: 指定参数在构造函数的名称 value:它能赋的值是其它的bean类型,也就是说,必须得是在配置文件中配置过的bean

2)set方法注入(property标签)

代码:

public class CustomerServiceImpl implements ICustomerService{

    private String name;
    private Integer age;
    private Date birthday;

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    @Override
    public void saveCustomer() {

    }
}

配置如下:


	
	
	



配置解析: name: 找的是类中set方法后面的部分 value:给属性赋值是基本数据类型和String类型的 ref:给属性复制是其它的bean类型

3)使用p名称空间注入数据(p标签)

这种方式是通过在xml中导入p空间名称,使用p:propertyName 来注入数据,它的本质仍然是调用类中的set方法实现注入功能。

代码:

public class CustomerServiceImpl implements ICustomerService{

    private String name;
    private Integer age;
    private Date birthday;

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    @Override
    public void saveCustomer() {

    }
}

配置如下:

在这里插入图片描述

4)注入集合属性

代码:

package cn.itcast.domain;

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Properties;

public class CollBean 
{
	public CollBean()
	{
		System.out.println(11111);
	}
	
	private String[] ss;
	private List ll;
	private Map mm;
	private Properties properties; //键值对
	
	public void setSs(String[] ss) {
		this.ss = ss;
	}
	public void setLl(List ll) {
		this.ll = ll;
	}
	public void setMm(Map mm) {
		this.mm = mm;
	}
	public void setProperties(Properties properties) {
		this.properties = properties;
	}




	@Override
	public String toString() {
		return "CollBean [ss=" + Arrays.toString(ss) + ", ll=" + ll + ", mm=" + mm + ", properties=" + properties + "]";
	}
	
	
	
	
}

配置文件:

 
	   	 	 
	   	 	 		
	   	 	 		
	   	 	 			aaa
	   	 	 			bbb
	   	 	 			ccc
	   	 	 		
	   	 	 
	   	 	 
	   	 	 
	   	 	 		
	   	 	 		
	   	 	 			111
	   	 	 			222
	   	 	 			
	   	 	 		
	   	 	 
	   	 	 
	   	 	 
	   	 	 	
	   	 	 	
	   	 	 		
	   	 	 		
	   	 	 		
	   	 	 	
	   	 	 
	   	 	 
	   	 	 
	   	 	 	
	   	 	 	
	   	 	 		root
	   	 	 		1234
	   	 	 	
	   	 	 
	   	 
关注
打赏
1662376985
查看更多评论
立即登录/注册

微信扫码登录

0.3350s