spring 注入是指在启动spring容器加载bean配置的时候,完成对变量的赋值行为
常用的两种注入方式:设值注入;构造注入
<property name ="" ref='"/> 对应set方法对应注入;设值注入
<constructor-arg name = '' ref=‘’/>创建实例时即可进行对应注入;构造注入
public interface InjectDaoImpl implements InjectDaAO{
public void save(String arg){
System.out.print("数据保存"+arg);
}
}
public interface InjectService{
public void save(String arg);
}
pulblic class InjectServiceImol implements InjectService{
public InjectDAO injectDao;
//生成set方法进行设值注入
public void SetInjectDAO(InjectDAO injectDao){
this.injectDao = injectDao;
}
public void save(String arg){
Syetem.out.print("service接收参数 : "+ arg);
arg = arg+“:”+this.hashCode();
}
}
@Runwith(BlockUnit4ClassRunner.calss)
public class TestInject extends UnitTestBase{
public TestInject(){
super("classpath:spring-injection.xml");
}
@Test
public void testSetter(){
InjectService service = super.getBean("InjectService");
}
}
<bean id='injectService' class = '......serviceImpl'>
<property name = "injectDao" ref="injectDao"></property>
</bean>
<bean id = "injectDao" class='com....InjectDaoImpl'><bean>
bean 初始化,销毁
1. 实现org.springframework.beans.factory.initializingBean接口,覆盖afterPropertiesSet方法
2. 配置Init-method
<bean id = 'exampleInitBean' class=‘example.ExampleBean’ init-method=‘init’ />
public class ExampleBean {
public void init(){
//初始化工作
}
}
销毁
1. 实现org.springframework.beans.factory.DisposableBean接口,覆盖destroy方法
2. 配置destroy-method方法
<bean id ='exampleDestroyBean' class = ‘example.ExampleBean’ destroy-method='cleanup' />
public class ExampleBean{
public void cleanup{
//销毁动作
}
}