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

相关推荐
Chef_Chen6 分钟前
从0开始学习R语言--Day18--分类变量关联性检验
学习
键盘敲没电24 分钟前
【IOS】GCD学习
学习·ios·objective-c·xcode
拉不动的猪28 分钟前
管理不同权限用户的左侧菜单展示以及权限按钮的启用 / 禁用之其中一种解决方案
前端·javascript·面试
西陵39 分钟前
前端框架渲染DOM的的方式你知道多少?
前端·javascript·架构
海的诗篇_1 小时前
前端开发面试题总结-JavaScript篇(一)
开发语言·前端·javascript·学习·面试
AgilityBaby1 小时前
UE5 2D角色PaperZD插件动画状态机学习笔记
笔记·学习·ue5
じ☆ve 清风°1 小时前
理解JavaScript中map和parseInt的陷阱:一个常见的面试题解析
开发语言·javascript·ecmascript
AgilityBaby1 小时前
UE5 创建2D角色帧动画学习笔记
笔记·学习·ue5
江城开朗的豌豆1 小时前
eval:JavaScript里的双刃剑,用好了封神,用不好封号!
前端·javascript·面试
江城开朗的豌豆2 小时前
JavaScript篇:前端定时器黑科技:不用setInterval照样玩转循环任务
前端·javascript·面试