标题静态工厂注入bean、实例工厂注入bean及autowirted

标题静态工厂注入bean、实例工厂注入bean及autowirted自动配置综合练习

一、静态工厂方法注入bean

将对象创建的过程封装到静态方法中 。
在XML文件中配置bean时,要声明通过静态方法创建的 bean , 需要在 bean 的 class 属性里面指定拥有该工厂的方法的类 , 同时在 factory-method 属性里指定工厂方法的名称。最后 , 使用 元素为该方法传递方法参数。

用静态工厂来实例bean的话需要我们创建一个工厂类,提供一个静态的方法,此方法负责bean的实例化。

二、实例化静态工厂注入bean

将对象的创建过程封装到另外一个对象实例的方法里。当客户端需要请求对象时 , 只需要简单的调用该实例方法。
要声明通过实例工厂方法创建的 bean:
1.在 bean 的factory-bean 属性里指定拥有该工厂方法的bean。
2.在 factory-method 属性里指定该工厂方法的名称。
3.使用 元素为工厂方法传递方法参数。
注意!!!在配置文件中,bean的factory-bean属性值是工厂id。

三.静态工厂方法和实例工厂方法的区别

实例工厂与静态工厂的区别就是前者需要在容器中将工厂实例化,后者不需要实例化工厂,直接调用静态方法即可,因为静态方法可以直接通过类名调用,所以不用将工厂实例化。

四.autowired自动装配

Autowired注解,它可以对类成员变量、方法及构造函数进行标注,完成IOC容器自动装配的工作。
属性:
byName:通过名字自动赋值,属性名字。
byType:通过类型自动赋值。
constructor:通过有参构造器自动赋值。

五.例子
题目如图:

1.静态工厂实例化

建立一个student的实体类在这里插入图片描述
建立一个静态方法在这里插入图片描述
对xml进行配置,id和value都是之前在静态方法里面设置的key值
在这里插入图片描述
进行测试,输出结果
在这里插入图片描述
2.实例工厂实例化

建立一个方法,可以看出区别是new的地方不同以及一个静态一个非静态
在这里插入图片描述
xml配置 ,注意factory-bean的值和工厂方法id一样在这里插入图片描述
测试并输出结果在这里插入图片描述
3.autowired自动配置

只简单实现了byType的自动配置,又分别建立了course和teacher实体类
在原本的student类中加入course和teacher属性
在这里插入图片描述
xml配置,这里运用了p命名空间在这里插入图片描述
测试并输出结果
在这里插入图片描述


版权声明:本文为m0_56260962原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。