Spring的两种依赖注入方式:setter注入与构造方法注入,这两种方法的不同主要就是在xml文件下对应使用property和constructor-arg属性, 例如:

property属性:<property name="id" value="123"></property>(其中name的值为原类中的属性名)

constructor-arg属性:<constructor-arg index="0" value="456"></constructor-arg>(其中index的值为0~n-1,n代表构造函数中的输入参数的数量)


1.setter方法注入

   setter方法注入即是创建一个普通的JavaBean类,为需要注入的属性通过对应的setter方法即可,如:

(1)创建一个Id类:

package com.loster.li;  public class Id { 	private int id; 	private String name; 	public int getId() { 		return id; 	} 	public void setId(int id) { 		this.id = id; 	} 	public String getName() { 		return name; 	} 	public void setName(String name) { 		this.name = name; 	} }

(2)创建配置文件Id_Bean.xml

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"        xsi:schemaLocation="http://www.springframework.org/schema/beans            http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">             	<bean id="id" class="com.loster.li.Id"> 	<property name="id" value="123"></property> 	<property name="name" value="xiaoli"></property> 	</bean> </beans>

(3)编写测试类IdTest.java,并运行:

package com.loster.li;  import org.springframework.context.support.ClassPathXmlApplicationContext;  public class IdTest { 	public static void main(String[] args){ 		ClassPathXmlApplicationContext context = new  				ClassPathXmlApplicationContext("com/loster/li/Id_Bean.xml"); 		 		Id id = (Id)context.getBean("id"); 		System.out.println(id.getId()); 		System.out.println(id.getName()); 	} }

   
运行结果如下:

Spring的两种依赖注入方式:setter方法注入与构造方法注入

2.构造方法注入

(1)将上面的Id.class修改为:

package com.loster.li;  public class Id { 	private int id; 	private String name; 	public Id(int id,String name){ 		this.id = id; 		this.name = name; 	} 	public int getId() { 		return id; 	} 	public void setId(int id) { 		this.id = id; 	} 	public String getName() { 		return name; 	} 	public void setName(String name) { 		this.name = name; 	} }

(2)将上面的Id_Bean.xml修改为:

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"        xsi:schemaLocation="http://www.springframework.org/schema/beans            http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">             	<bean id="id" class="com.loster.li.Id"> 	<constructor-arg index="0" value="456"></constructor-arg> 	<constructor-arg index="1" value="dawang"></constructor-arg> 	</bean> </beans>

(3)再次运行IdTest.java,运行结果如下:

                                                                                                                    Spring的两种依赖注入方式:setter方法注入与构造方法注入


热门文章

领养宠物用不用钱(领养宠物要给红包吗)

摘要: 本篇文章给大家谈谈领养宠物用不用钱,以及领养宠物要给红包吗对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录一览:1、去宠物店收养小猫咪要钱吗?... 本

狗粮属于什么经营范围(狗粮属于什么商品类目)

摘要: 本篇文章给大家谈谈狗粮属于什么经营范围,以及狗粮属于什么商品类目对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录一览:1、50的米桶可以装30的狗粮吗...

宠物店领养宠物多少钱一天啊(宠物店领养宠物要钱吗)

摘要: 本篇文章给大家谈谈宠物店领养宠物多少钱一天啊,以及宠物店领养宠物要钱吗对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录一览:1、把狗狗放到宠物店寄养大概是多少钱一..

3月8日更新20M/S,2025年最新高速V2ray/SSR/Shadowrocket/Clash订阅链接免费节点地址分享

这一次的节点更新覆盖了加拿大、香港、美国、新加坡、韩国、日本、欧洲等地区,最高速度可达20 M/S。只需复制下方的Clash/v2ray订阅链接,在客户端添加后即可正常使用。

4月9日更新21.7M/S,2025年最新高速Clash/SSR/V2ray/Shadowrocket订阅链接免费节点地址分享

这一次的节点更新覆盖了日本、加拿大、欧洲、新加坡、韩国、香港、美国等地区,最高速度可达21.7 M/S。只需复制下方的Clash/v2ray订阅链接,在客户端添加后即可正常使用。

家养2个月小猫咬出血要紧吗(2个月的猫咬出血要紧吗)

摘要: 今天给各位分享家养2个月小猫咬出血要紧吗的知识,其中也会对2个月的猫咬出血要紧吗进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览:1、被2个月小.

4月6日更新20M/S,2025年最新高速Shadowrocket/SSR/Clash/V2ray订阅链接免费节点地址分享

这一次的节点更新覆盖了加拿大、日本、欧洲、香港、美国、新加坡、韩国等地区,最高速度可达20 M/S。只需复制下方的Clash/v2ray订阅链接,在客户端添加后即可正常使用。

动物接种疫苗后多久产生特异性抗体? 动物接种疫苗后多久产生特异性抗体呢

摘要: 大家好,今天小编关注到一个比较有意思的话题,就是关于动物接种疫苗后多久产生特异性抗体?的问题,于是小编就整理了2个相关介绍动物接种疫苗后多久产生特异性抗体?的解答,让我们一起看看吧

3月27日更新19.5M/S,2025年最新高速Shadowrocket/V2ray/SSR/Clash订阅链接免费节点地址分享

这一次的节点更新覆盖了韩国、美国、欧洲、香港、日本、新加坡、加拿大等地区,最高速度可达19.5 M/S。只需复制下方的Clash/v2ray订阅链接,在客户端添加后即可正常使用。

4月7日更新22.4M/S,2025年最新高速Shadowrocket/V2ray/Clash/SSR订阅链接免费节点地址分享

这一次的节点更新覆盖了日本、加拿大、新加坡、香港、美国、欧洲、韩国等地区,最高速度可达22.4 M/S。只需复制下方的Clash/v2ray订阅链接,在客户端添加后即可正常使用。

归纳