Spring 依赖注入

1、依赖注入(DI:Dependency Injection)

依赖: 指bean对象创建依赖于容器, bean对象的依赖资源
注入: 指bean对象的依赖的资源由容器来设置和装配

2、Spring 注入

2.1 构造器注入见IOC创建对象

2.2 setter注入:

      要求被注入的属性必须有set方法,set方法的方法名由set+首字母大写,如果属性是boolean没有get方法  是is

a:常量注入

	<bean id="user" class="spring.ioc.create.User">
		<property name="name" value="mayun"></property>
	</bean>

b:bean注入

Studnts.java
package spring.test;

public class Student {
	public String name;
	public Address addr;

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

	public void setAddr(Address addr) {
		this.addr = addr;
	}

	public void show() {
		System.out.println("name=" + name);
		System.out.println("addr=" + addr.getAddress());
	}

}

Address.java

package spring.test;

public class Address {
	private String address;
	public void setAddress(String address) {
		this.address = address;
	}
	public String getAddress() {
		return address;
	}
}

beans.xml配置

	<bean id="addr" class="spring.test.Address">
		<property name="address" value="皇家理工"></property>
	</bean>
	<bean id="student" class="spring.test.Student"> 
		<property name="name" value="zxl"></property>
		<property name="addr" ref="addr"></property>
	</bean>

运行:


c:数组注入

Student.java

package spring.test;

public class Student {
	private String name;
	private Address addr;
	private String[] book;

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

	public void setAddr(Address addr) {
		this.addr = addr;
	}

	public void setBook(String[] book) {
		this.book = book;
	}

	public void show() {
		System.out.println("name=" + name);
		System.out.println("addr=" + addr.getAddress());
		int i;
		for (i = 0; i < book.length; i++) {
			System.out.print("  " + book[i]);
		}
		System.out.println();
	}
}

beans.xml

		<property name="book">
			<array>
				<value>哈莫雷特</value>
				<value>李尔王</value>
				<value>奥赛罗</value>
			</array>
		</property>

运行



d:List注入
Student.java

package spring.test;

import java.util.List;

public class Student {
	private String name;
	private Address addr;
	private String[] book;
	private List<String> hobbies;

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

	public void setAddr(Address addr) {
		this.addr = addr;
	}

	public void setBook(String[] book) {
		this.book = book;
	}

	public void setHobbies(List<String> hobbies) {
		this.hobbies = hobbies;
	}

	public void show() {
		System.out.println("name=" + name);
		System.out.println("addr=" + addr.getAddress());
		int i;
		for (i = 0; i < book.length; i++) {
			System.out.print("  " + book[i]);
		}
		System.out.println();
		System.out.println("hobbies=" + hobbies);
	}
}

beans.xml

<property name="hobbies">
			<list>
				<value>gramming</value>
				<value>sport</value>
				<value>lenrn</value>
			</list>
		</property>

运行:


e: Map注入

Student.java

package spring.test;

import java.util.List;
import java.util.Map;

public class Student {
	private String name;
	private Address addr;
	private String[] book;
	private List<String> hobbies;
	private Map<String,String> cards;

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

	public void setAddr(Address addr) {
		this.addr = addr;
	}

	public void setBook(String[] book) {
		this.book = book;
	}

	public void setHobbies(List<String> hobbies) {
		this.hobbies = hobbies;
	}
	public void setCards(Map<String, String> cards) {
		this.cards = cards;
	}

	public void show() {
		System.out.println("name=" + name);
		System.out.println("addr=" + addr.getAddress());
		int i;
		for (i = 0; i < book.length; i++) {
			System.out.print("  " + book[i]);
		}
		System.out.println();
		System.out.println("hobbies=" + hobbies);
		System.out.println("cards="+cards);
	}
}

beans.xml

			<property name="cards">
			<map>
			<entry key="建设银行" value="101"></entry>
			<entry key="工商银行" value="102"></entry>
			<entry key="农业银行" value="103"></entry>
			<entry>
				<key><value>中国银行</value></key>
				<value>104</value>
			</entry>
			</map>
			</property>

f:set注入

Student.java

package spring.test;

import java.util.List;
import java.util.Map;
import java.util.Set;

public class Student {
	private String name;
	private Address addr;
	private String[] book;
	private List<String> hobbies;
	private Map<String,String> cards;
	private Set<String> games;

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

	public void setAddr(Address addr) {
		this.addr = addr;
	}

	public void setBook(String[] book) {
		this.book = book;
	}

	public void setHobbies(List<String> hobbies) {
		this.hobbies = hobbies;
	}
	public void setCards(Map<String, String> cards) {
		this.cards = cards;
	}
	public void setGames(Set<String> games) {
		this.games = games;
	}

	public void show() {
		System.out.println("name=" + name);
		System.out.println("addr=" + addr.getAddress());
		int i;
		for (i = 0; i < book.length; i++) {
			System.out.print("  " + book[i]);
		}
		System.out.println();
		System.out.println("hobbies=" + hobbies);
		System.out.println("cards="+cards);
		System.out.println("games="+games);
	}
}

beans.xml

			<property name="games">
			<set>
				<value>王者荣耀</value>
				<value>枪战王者</value>
				<value>阴阳师</value>
			</set>
			</property>

运行


g: null注入

Student.java

package spring.test;

import java.util.List;
import java.util.Map;
import java.util.Set;

public class Student {
	private String name;
	private Address addr;
	private String[] book;
	private List<String> hobbies;
	private Map<String,String> cards;
	private Set<String> games;
	private String wife;

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

	public void setAddr(Address addr) {
		this.addr = addr;
	}

	public void setBook(String[] book) {
		this.book = book;
	}

	public void setHobbies(List<String> hobbies) {
		this.hobbies = hobbies;
	}
	public void setCards(Map<String, String> cards) {
		this.cards = cards;
	}
	public void setGames(Set<String> games) {
		this.games = games;
	}
	public void setWife(String wife) {
		this.wife = wife;
	}

	public void show() {
		System.out.println("name=" + name);
		System.out.println("addr=" + addr.getAddress());
		int i;
		for (i = 0; i < book.length; i++) {
			System.out.print("  " + book[i]);
		}
		System.out.println();
		System.out.println("hobbies=" + hobbies);
		System.out.println("cards="+cards);
		System.out.println("games="+games);
		System.out.println("wife="+wife);
	}
}
beans.xml
		<property name="wife">
			<null/>
		</property>

运行


h: properties

package spring.test;

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

public class Student {
	private String name;
	private Address addr;
	private String[] book;
	private List<String> hobbies;
	private Map<String, String> cards;
	private Set<String> games;
	private String wife;
	private Properties info;

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

	public void setAddr(Address addr) {
		this.addr = addr;
	}

	public void setBook(String[] book) {
		this.book = book;
	}

	public void setHobbies(List<String> hobbies) {
		this.hobbies = hobbies;
	}

	public void setCards(Map<String, String> cards) {
		this.cards = cards;
	}

	public void setGames(Set<String> games) {
		this.games = games;
	}

	public void setWife(String wife) {
		this.wife = wife;
	}

	public void setInfo(Properties info) {
		this.info = info;
	}

	public void show() {
		System.out.println("name=" + name);
		System.out.println("addr=" + addr.getAddress());
		int i;
		for (i = 0; i < book.length; i++) {
			System.out.print("  " + book[i]);
		}
		System.out.println();
		System.out.println("hobbies=" + hobbies);
		System.out.println("cards=" + cards);
		System.out.println("games=" + games);
		System.out.println("wife=" + wife);
		System.out.println("info" + info);
	}
}

		<property name="info">
			<props>
				<prop key="学号">2017</prop>
				<prop key="姓名">alllen</prop>
				<prop key="班级">计算本1601</prop>
			</props>
		</property>


i: p命名空间注入


xml配置

<bean id="userpname" class="spring.ioc.create.User" p:name="周黑鸭"/>

运行



j :  c命名空间注入

需要在命名空间中加入:xmlns:p="http://www.springframework.org/schema/p" 
<bean id="usercname" class="spring.ioc.create.User" p:name="andy" p:age="18"/>

运行:








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值