spring setter流入
spring setter注入
setter注入,是通过在通过构造器、静态工厂或实例工厂实例好Bean后,通过调用Bean类的setter方法进行注入依赖。
spring中 bean配置文件中:
<!-- 通过setter方式进行依赖注入 --> <bean id="setterBean" class="com.spring.service.impl.HelloApiImpl2"> <property name="message" value="Hello World!"/> <property name="index" value="1"/> </bean>
传统setter方法:
HelloApi helloApi=new HelloApiImpl2() helloApi.setMessage("hello world"); helloApi.setIndex(1);
setter注入方式:
setter注入方式只有一种根据setter名字进行注入:
<property name="message" value="Hello World!"/>
name是setter注入名字,value是注入的常量值。
1.创建HelloApi接口类:
package com.spring.service; public interface HelloApi { public void sayHello(); }
2.创建实现HelloApi接口HelloApiImpl2类:
package com.spring.service.impl; import com.spring.service.HelloApi; public class HelloApiImpl2 implements HelloApi { private String message; private int index; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } @Override public void sayHello() { System.out.println(index+":"+message); } }
3.创建Bean 配置spring-setterDependencyInject.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.xsd"> <!-- 通过setter方式进行依赖注入 --> <bean id="setterBean" class="com.spring.service.impl.HelloApiImpl2"> <property name="message" value="Hello World!"/> <property name="index" value="1"/> </bean> </beans>
4.创建SetterDependencyInjectTest测试类:
package com.spring.test; import org.junit.Test; import org.springframework.beans.factory.BeanFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.spring.service.HelloApi; public class SetterDependencyInjectTest { @Test public void setterDI(){ BeanFactory beanFactory=new ClassPathXmlApplicationContext("spring-setterDependencyInject.xml"); HelloApi bean=beanFactory.getBean("setterBean",HelloApi.class); bean.sayHello(); } }
5.测试结果:
1:Hello World!