BeanFactory是Spring IOC容器的重要接口,用于实例化、获取bean实例和bean相关信息,重要的方法有:
FactoryBean主要用于定制化实例bean,主要接口有:
通过重写getObject方法我们可以实例化我们想要的bean。
Spring IOC实例化bean后会判断该bean是否是FactoryBean的子类,如果是就调用getObject,并将结果返回。
基于FactoryBean我们可以自己实现对象的实例化,实现类似DUBBO中配置远程服务的spring配置,编写一个类实现FactoryBean,该类中包含应用相关的属性、load balance属性、服务类型属性和代理接口的属性,在getObject中通过ProxyFactory返回指定接口的代理实现,在代理实现中可以根据配置的load balance策略和服务类型从注册的服务器提供者中选取一个进行端到端的服务调用,如果服务类型是RMI可以直接使用RMI协议调用,如果是RPC可以使用thrift调用。这样就可以在spring中使用实现的类来代理远程服务了。