测试方法如下:
1 |
|
1.调用无参的构造器,创建实例对象。
1 | public class beanServiceImpl implements beanService{ |
2.调用参数的setter,为属性注入值。
1 | <bean id=“beanService” class=“com.bean.service2.beanServiceImpl”> |
1 | private String dao; |
3.若bean实现了beanNameAware接口,则会执行接口方法setBeanName(String beanId),使bean类可以获取其在容器中的id名称。
1 | public class beanServiceImpl implements beanService,BeanNameAware |
继承了BeanNameAware的默认方法
1 | public void setBeanName(String name) { |
4.若bean实现了beanFactoryAware接口,则会执行接口方法setBeanFactory(BeanFactrory factory),使bean类可以获取到beanFactory对象。
1 | public class beanServiceImpl implements beanService,BeanNameAware,BeanFactoryAware |
继承了BeanFactoryAware的默认方法
1 | public void setBeanFactory(BeanFactory beanFactory) throws BeansException { |
5.若定义并注册了bean后处理器beanpostProcessor,则执行接口方法postProcessBeforeInitialization();
创建beanpostprocessor实现BeanPostProcessor
1 | public class beanpostprocessor implements BeanPostProcessor{ |
6.若bean实现initializingBean接口,则执行接口方法afterPropertiesSet().该方法在bean的所有属性的set方法执行完毕后执行,是bean初始化的标志,实例化结束。
1 | public void afterPropertiesSet() throws Exception { |
7.若设置了init-method方法,则执行。
1 | <bean id=“beanService2” class=“com.bean.service2.beanServiceImpl” init-method=“doAfter”> |
8若定义并注册了bean后处理器beanpostProcessor,则执行接口方法postProcessAfterInitialization();
1 | public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { |
9.执行业务方法。
1 | public void dotest(); |
10.若bean实现了DisposableBean接口,则执行接口方法destroy().
1 | public void destroy() throws Exception { |
11.若设置了destrory-method方法,则执行。
1 | <bean id=“beanService2” class=“com.bean.service2.beanServiceImpl” init-method=“doAfter” destroy-method=“doDestroy”> |