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()); } }
运行结果如下:

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,运行结果如下:
热门文章
- 2月5日 - 最高速度20.6M/S,2025年Surfboard每天更新免费节点订阅链接,干净IP机场推荐
- 1月8日 - 最高速度19M/S,2025年Surfboard每天更新免费节点订阅链接,干净IP机场推荐
- C#反射调用dll文件中的方法操作泛型与属性字段_C#教程
- 被猫抓伤渗了一点血超过24小时没***会不会马上发作?(被猫抓了一下轻微破皮过了24小时怎么办)
- 使用maven构建SpringBoot打包成war包,步骤,超级详细
- 2月23日 - 最高速度20M/S,2025年Surfboard每天更新免费节点订阅链接,干净IP机场推荐
- 2月22日 - 最高速度21.4M/S,2025年Surfboard每天更新免费节点订阅链接,干净IP机场推荐
- 1月30日 - 最高速度20.3M/S,2025年Surfboard每天更新免费节点订阅链接,干净IP机场推荐
- mysql数据库中字段为时间类型要怎么什么类型表示
- 宠物主粮上市公司排名 宠物主粮上市公司排名前十