sping的InitializingBean是spring提供的一个接口,里面只有afterPropertiesSet()一个方法,实现了这个接口的类可以在spring注入完成后立刻调用这个方法,实现一些初始化数据或者记录日志之类的功能,感觉跟面向切面一样。
经验证,在这个方法里可以使用dubbo的consumer.xml配置文件中配置的service
举个例子:
定义一个普通的接口
public interface TestService{
}
定义他的实现类
@Service("testService")
public class TestServiceImpl implements TestService,InitializingBean{
@Autowired
public ConsumerService ConsumerService;
@Override
public void afterPropertiesSet() throws Exception {
}
}
其中ConsumerService是在dubbo的consumer.xml配置文件中配置的,并且已经作为provider注册到了zookeeper
<dubbo:reference id="consumerService"
interface="test.ConsumerService" protocol="dubbo"
check="false" registry="globalRegistry" timeout="3000" />
这样,在TestServiceImpl的afterPropertiesSet()方法中,就可以使用consumerService了,而afterPropertiesSet()方法在TestServiceImpl注入完毕的时候就会执行。