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

相关推荐
captain3762 分钟前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
楚山之石26 分钟前
【Lancet Neurology 】多发性硬化认知障碍的 SDMT 筛查、灰质萎缩标志与认知康复循证路径
图像处理·人工智能·学习·mri
步行cgn1 小时前
Spring MVC + Thymeleaf 模板解析失败:从 500 错误到页面正常显示
java·spring·mvc
学到老活到老2 小时前
第 24 集:配置文件写了 80,Spring Boot 为什么读到 90?
java·后端·spring
Flynn Liang2 小时前
RAG 答非所问/幻觉怎么破?Spring AI QuestionAnswerAdvisor 召回优化实战(TopK/重排/混合检索)
人工智能·算法·spring·rag·幻觉·springai
海海不掉头发2 小时前
CSDN博客_时序预测9模型复现对比
人工智能·学习·软件工程
香芋芋圆4 小时前
iD-editor 详解|OSM官方在线编辑器,基于D3.js的轻量地图编辑器
开发语言·javascript·编辑器
蓝祁子yoky4 小时前
Qt学习日记 Day13:网络编程(一)-TCP基础与Socket实战
网络·qt·学习
二哈赛车手4 小时前
新人笔记---hermes定时功能设计,具体讲解以及可优化点
java·人工智能·笔记·spring·ai·typescript
ZWZhangYu4 小时前
从 Dify 实践理解大模型上下文缓存
java·后端·spring