去掉对Spring BeanFacotry的getBean方法的依赖
在使用Spring时,有时会碰到这种情况:
这样定义之后,Spring就会使用CGLIB自动生成一个实现了createBean方法的ClazzA的一个实现类,并让createBean返回ClazzB。
上面所说的那个createBean方法必须符合下面的方法签名:
<public|protected> [abstract] <return-type> theMethodName(no-arguments);
详细信息可以参见Spring文档的3.4节。
解决方案二:使用ServiceLocatorFactoryBean。
这种方案交第一种方案更加灵活一点,但是付出的代价是要单独定一个工厂接口。这种方法在Spring的ServiceLocatorFactoryBean类的API文档中有详细介绍,这里就不再累述了。