Spring—Bean工厂进一步学习

基于xml的spring应用

XML配置方式: 功能描述:

bean的id和全限定名配置

通过name设置bean的别名,通过别名也能直接获取到bean实例

bean的作用范围

bean的实例化时机,是否延迟加载

bean实例化后自动执行的初识方法,method指定方法

bean实例销毁前的方法

设置自动注入模式

<bean factory-bean="factory-method=""/"> 指定工厂完成bean的创建。

小细节:

当为配置的时候,getBean("");中,得到的会是权限名。

name为别名

scope的类型有两种:prototype和singleton

其中,singleton为默认,当spring容器刚开始创建时,就已经进行了bean的实例化

prototype为创建时,不会进行bean的实例化,但每次使用getbean方法方法时,就进行一次bean的实例化。

singleton实例:

com.zzz.service.impl.UserServiceImpl@7b227d8d

com.zzz.service.impl.UserServiceImpl@7b227d8d

com.zzz.service.impl.UserServiceImpl@7b227d8d

prototype实例:

com.zzz.service.impl.UserServiceImpl@7b227d8d

com.zzz.service.impl.UserServiceImpl@7219ec67

com.zzz.service.impl.UserServiceImpl@45018215

创建对象后,创建初始化方法,在创建实例前首先执行需要的方法,有两种途径实现目的:

1.创建init-method初始化方法

2.实现接口InitializingBean,并且实现afterPropertiesSet方法

Spring实例化方式,也就是Spring创建bean的方式:

构造方式实例化:底层通过构造方法对bean进行实例化

工厂化方式实例化:底层通过调用自定义的工厂方法对bean进行实例化。

实例化的方式-构造方法方式:

public UserServiceImpl(String name){

System.out.println("UserService有参构造");

}

public UserServiceImpl(){

System.out.println("UserService无参构造");

}

实例化时,默认为无参构造优先,需要配置有参构造时,需要配置aplicationContext.xml文件

就会优先优先输出有参构造方法。

注意:constructor-arg为构造参数,但是注意构造参数不仅是构造方法的参数,只要需要传参数时,都可以使用constructor-arg标签进行传输。

工厂化实例bean,又分为以下三种:

1.静态工厂方法实例化bean

2.实例工厂方法实例化bean

3.实现factoryBean规范延迟实例化bean

相关推荐
Dragon Wu1 分钟前
前端框架 react 性能优化
前端·javascript·react.js·性能优化·前端框架·react
legend_jz13 分钟前
【Linux】线程的互斥和同步
linux·运维·服务器·开发语言·笔记·学习·学习方法
ydl112814 分钟前
机器学习周志华学习笔记-第7章<贝叶斯分类器>
笔记·学习·机器学习
韩明君30 分钟前
Spring WebFlux学习笔记(二)
笔记·学习·spring
研一计算机小白一枚1 小时前
Which Tasks Should Be Learned Together in Multi-task Learning? 译文
人工智能·python·学习·机器学习
9毫米的幻想1 小时前
【Linux系统】—— 基本指令(三)
linux·c语言·c++·学习
努力小贼1 小时前
Vue小项目(开发一个购物车)
前端·javascript·vue.js
dreamsever2 小时前
Glide源码学习
android·java·学习·glide
武昌库里写JAVA2 小时前
SpringBoot+SpringCloud面试题整理附答案
java·开发语言·算法·spring·log4j
Eternity-5272 小时前
第十章JavaScript的应用
开发语言·javascript·ecmascript