1. 两者都是接口;
  2. BeanFactory主要是用来创建Bean和获得Bean的;
  3. FactoryBean跟普通Bean不同,其返回的对象不是指定类的一个实例,而是该FactoryBeangetObject方法所返回的对象;
  4. 通过BeanFactorybeanName获取bean时,如果beanName不加&则获取到对应bean的实例;如果beanName加上&,则获取到FactoryBean本身的实例
  5. FactoryBean 通常是用来创建比较复杂的bean(如创建mybatisSqlSessionFactory很复杂),一般的bean 直接用xml配置即可,但如果创建一个bean的创建过程中涉及到很多其他的bean 和复杂的逻辑,用xml配置比较困难,这时可以考虑用FactoryBean