设置注入是指IOC容器使用属性的setter方法来注入被依赖的实例,此方法很直观;
这里有两层结构service和action
service层的实现类personserviceImpl部分代码如下:
private PersonAction personAction;
/**
* @return the personAction
*/
public PersonAction getPersonAction() {
return personAction;
}
/**
* @param personAction the personAction to set
*/
public void setPersonAction(PersonAction personAction) {
this.personAction = personAction;
}
public void save() {
System.out.println("这是service层的实现类save()");
personAction.add();
}
其中personserviceImpl调用了personAction的add()方法;
这里就需要我们在spring的配置文件中对它进行配置
applicationContext.xml中我们需要先配置两个实现类的bean实例
<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.0.xsd">
<bean id="personAction" class="com.ncut.action.PersonActionImpl"></bean>
<bean id="personService" class="com.ncut.service.PersonServiceImpl">
<property name="personAction" ref="personAction"></property>
</bean>
</beans>
然后在personservice中设置属性引用personaction 这里id是bean实例的唯一标志位需要按照spring的官方命名方式命名,class是类对象的位置,ref则是依赖对象spring会自动在配置文件中寻找ref所指的对象。
到此我们的设置注入就算完成了,接下来就要测试是否注入成功,那就在junit测试类中进行测试即可。
public class springTest {
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
@Test
public void instanceSpring() {
ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
PersonService personService=(PersonService)ctx.getBean("personService");
personService.save();
}
}