Spring 四种实例(instance)方法

bean四种实例(instance)方法
第一种方式:构造器实例方法(经常用到的)
必须有一个无参数的构造器,否则报错!

第二种方式:静态工厂方式实例化方法(解决历史遗留问题)–了解就好
首先使用工厂方法创建对象,必须知道工厂类和工厂类里面能返回对象的方法(工厂方法)
然后只需要把这两个东西告诉Spring,
最后让Spring帮我们创建实例对象。
在xml进行配置–>解释:ID:随意取一个名字,class为返回所需对象的工厂类,factory-method:返回所需对象的工厂的方法

注意:xml配置文件一定要和测试类的保持一直且xml配置文件单独加一个(-context)
原理:工厂类.工厂方法,返回结果对象

第三种方式:实例工厂方式实例化方法(解决历史遗留问题)–了解就好
原理:工厂类对象.工厂方法,返回结果对象
在xml进行配置–>解释:ID:随意取一个名字,class为返回所需对象的工厂类,

在xml进行配置–>解释:ID:随意取一个名字,factory-bean为上一个工厂类对象的id,factory-method:返回所需对象的工厂的方法

注意:在xml中配置了两个东西,一个是工厂对象,另一个是工程对象的方法

第四种方式:实现FactorBean接口实例化,实例工厂的变种,如果集成Mybaties框架使用;
为什么会配置两个东西呢?
因为:我们有两个东西是未知的,一个是工程类(对象),另一个是工程方法
如果配置一个bean的话,这两个中必须有一个是固定的,工厂方法是固定的(getObject()),这样的话只需要一个工厂类(对象)的配置就好了
有两个概念:
FactoryBean:工厂对象,强调的是bean
BeanFactory:对象工厂,强调的是Factory
首先创建一个Factory对象(class类)–> 实现FactoryBean接口–>解释:接口的类型就是想要返回的对象类型 -->
接口有两个方法,一个是getObject(固定的)–>另一个是返回对象的class类型 --> 只需要在xml配置文件中配置一个FactoryBean对象–>
因为返回的对象的方法固定了(getObject)

返回的对象都是单例的(相同的对象)
如果想要返回不是单例的对象,需要在工厂类中覆盖一个之前的方法

原理:
首先获取对象的方法固定
然后创建xml工厂对象
最后进行测试

Bean实例化和销毁:

-------开启资源----------
欢迎使用Springwillxaaaxx
-------释放资源----------

-------开启资源----------
欢迎使用Springwillxaaaxx
加上:scope=“prototype”
相比之前:没有了释放资源,原因就是这个是多例状态,在开启资源创建完多个对象之后,后续不知道会不会还会用到这些对象,如果关闭
再重现创建消耗的资源会更大。所以就不会调用销毁的方法。–只有手动调用

见Spring-4Instance4/src/LifeCycle

源码百度云盘自取:链接:https://pan.baidu.com/s/1HI1s3waJptW76RPO2u-guw  密码:nmxv

猜你喜欢

转载自blog.csdn.net/m0_37871296/article/details/88571052
今日推荐