java吧 关注:1,281,186贴子:12,802,898
  • 10回复贴,共1

求助,求助,求助,懂的大佬进来帮帮我

只看楼主收藏回复

spring创建Bean的三中方式,通过构造方法创建bean(最常用),通过静态工厂创建bean以及通过实例工厂创建bean。第一种我懂,第二种和第三种的意义何在?就拿通过静态工厂创建bean来说:
public class User {
public static AccountService getAccount() {
return new AccountServiceImpl();
}
}
<bean id="accountService1" class="com.spring.cn.User" factory-method="getAccount"></bean>
这种方法主要是为了获取AccountService 实例,但是,我在XML中直接写入AccountService 的路径不就可以了吗?
为什么要通过User来创建?不是很懂,很迷惑?


IP属地:江苏1楼2020-11-24 14:56回复
    顶顶


    IP属地:江苏来自Android客户端2楼2020-11-24 15:02
    回复
      2025-10-03 12:10:39
      广告
      不感兴趣
      开通SVIP免广告
      大佬们,来看看那


      IP属地:江苏来自Android客户端4楼2020-11-24 15:43
      回复
        hello


        IP属地:江苏来自Android客户端5楼2020-11-24 17:51
        回复
          你自己了解下Java的反射机制和spring的依赖注入就明白工厂模式创建bean实例的好处了


          IP属地:广西6楼2020-11-24 17:59
          收起回复
            工作5年了不会


            IP属地:上海来自Android客户端7楼2020-11-25 08:49
            收起回复
              可能是某些复杂的类,不仅仅是new这么简单,还有初始化的操作,所以通过方法来创建。


              IP属地:四川8楼2020-11-25 15:07
              回复
                当你引入第三方依赖的时候,就会使用到工厂创建实例,因为第三方依赖的类是不受用户控制的,你可能无法使用构造方法注入。


                IP属地:吉林9楼2020-11-25 15:21
                收起回复