spring提供3种注入方式
1.setter方法注入
Person类,一定要有setter方法
package com.spring;
public class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
}
beams.xml
<bean id="person1" class="com.spring.Person">
<property name="name" value="李四"></property>
<property name="age" value="22"></property>
</bean>
@Test
public void test(){
// ApplicationContext是接口
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); // 实例化Spring容器
Person person1 =(Person)ctx.getBean("person1");
System.out.println(person1);
}
打印结果:Person [name=李四, age=22]
2.构造器注入
在Person里添加构造函数()
public Person(String name, int age) {
this.name = name;
this.age = age;
}
<bean id="person2" class="com.spring.Person">
<constructor-arg name="name" value="王麻子"></constructor-arg>
<constructor-arg name="age" value="25"></constructor-arg>
</bean>
3.接口注入
接口注入模式因为具备侵入性,它要求组件必须与特定的接口相关联,因此并不被看好,实际使用有限。