java吧 关注:1,246,776贴子:12,726,473
  • 2回复贴,共1

关于spring用工厂类创建对象的一个疑惑

取消只看楼主收藏回复

无论是spring利用工厂类的静态方法创建对象还是非静态的。
结果无疑例外都还是受到配置文件中scope属性的约束
放例子


IP属地:浙江1楼2015-11-13 14:56回复
    <bean id="userFactory" class="iocdemo.userFactory"></bean>
    <bean id="userFromFac" factory-bean="userFactory" factory-method="getInstance">
    </bean>
    这一段 是用非静态
    user u1 = (user) ac.getBean("userFromFac");
    user u2 = (user) ac.getBean("userFromFac");
    System.out.println(u1);
    System.out.println(u2);
    结果为:
    iocdemo.user@32408add
    iocdemo.user@32408add
    可以看到是一样的
    假如加上scope="prototype"属性
    结果为:
    iocdemo.user@32408add
    iocdemo.user@2b5cccf1


    IP属地:浙江2楼2015-11-13 14:58
    收起回复
      同样的方法测试单例
      加上scope="prototype"
      iocdemo.user@2b5cccf1
      iocdemo.user@5992f874
      如此一来工厂的意义何在?


      IP属地:浙江3楼2015-11-13 15:00
      收起回复