自学内容网 自学内容网

Spring通过工厂方法进行配置

在Spring的世界中, 我们通常会利用 xml配置文件 或者 annotation注解方式来配置bean实例!

在第一种利用 xml配置文件 方式中, 还包括如下三小类

  1. 反射模式(我们前面的所有配置都是这种模式)
  2. 工厂方法模式
  3. Factory Bean模式

其中反射模式最常见, 我们需要在bean 配置中配置我们需要的bean object的全类名。

上面bean 里面的class属性就是全类名, Spring利用java反射机制创建这个bean object。

工厂方法模式

在工厂方法模式中, Spring不会直接利用反射机制创建bean对象, 而是会利用反射机制先找到Factory类,然后利用Factory再去生成bean对象。

而Factory Mothod的具体使用方式也分两种, 分别是静态工厂方法 和 实例工厂方法。

静态工厂方法方式

所谓静态工厂方式就是指Factory类不本身不需要实例化, 这个Factory类中提供了1个静态方法来生成bean对象

下面是例子

里面定义了1个静态的bean 容器map. 然后提供1个静态方法根据Car 的id 来获取容器里的car对象。

然后我们再定义1个工厂类CarStaticFactory

xml配置

 

小结

由上面的例子, 静态工厂方法方式是非常适用于作为1个bean容器, 只不过bean集合定义在工厂类里面而不是项目xml配置文件里面。 

缺点也比较明显, 把数据写在class里面而不是配置文件中违反了我们程序猿的常识和spring的初衷。当然优点就是令人恶心的xml配置文件更加简洁。所以,工厂方法的配置,了解一下就行了,个人建议不要在项目中使用。

实例工厂方法方式

所谓实例工厂方式也很容易看懂, 就是工厂类里面的getBean 方法不是静态的, 也就是说要先实例1个工厂的对象, 才能依靠这个工厂对象去调用getBean 方法获得bean 对象。

看代码:

小结

显然,实例化工厂方法比静态工厂方法,要灵活一些,没把数据写死在工厂类里,但是实际开发中,用的最多的还是反射模式! 

 

 

 


原文地址:https://blog.csdn.net/weixin_43227851/article/details/140588631

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!