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,运行结果如下: