首先,什么是Spring的配置文件呢?上一篇【Spring】程序开发步骤https://mp.csdn.net/editor/html/113821302讲到的第三步创建spring核心配置文件,其实就是创建一个xml文件,第四步是配置Spring配置文件,接下来我们具体讲解一下Spring配置文件的配置:

说到Spring配置文件,那么一定离不开bean标签。

关于bean标签,上一篇文章只是简单地讲解了一下他的基本配置,比如作用,规则和组成,下面说点不一样的:

1、bean标签基本配置(以前说过的)

用于配置对象交由spring来创建

默认情况下它调用的是类中的无参构造函数创建的,如果没有无参构造函数则不能创建成功

xml文件bean标签组成及作用:

id作用:Bean实例在Spring容器中的唯一标识,不允许重复 ;

class:Bean的全限定名

2、bean标签范围配置

bean标签用scope属性来表示对象的作用范围,它有五个属性值:

接下来我们仅针对使用比较多的两个属性值进行测试:

i.将scope属性值设置为singleton

ii.我们先来创建一个测试包:

iii.测试需要借助于Junit单元测试,在pom文件中引入

iv.编写测试类

v.测试结果:

vi.将scope属性修改为prototype

vii.测试结果:

如何证明UserDaoImpl对象在容器中创建了呢?默认情况下,我们的配置代表找的是无参构造创建对象

将UserDaoImpl内部复写无参构造右键-->generate-->constructor

在控制台打印一次就说明方法调用一次,无参构造方法调用一次就说明创建一次

结论:

1)当scope的取值为singleton时

Bean的实例化个数:1个

Bean的实例化时机:当Spring核心文件被加载时,实例化配置的Bean实例

Bean的生命周期:

* 对象创建:当应用加载,创建容器时,对象就被创建了

* 对象运行:只要容器在,对象一直活着

* 对象销毁:当应用卸载,销毁容器时,对象就被销毁了

2)当scope的取值为prototype时

Bean的实例化个数:多个

Bean的实例化时机:当调用getBean()方法时实例化Bean

Bean的生命周期:

* 对象创建:当使用对象时,创建新的对象实例

* 对象运行:只要对象在使用中,就一直活着

* 对象销毁:当对象长时间不用时,被 Java 的垃圾回收器回收了

3.bean生命周期的配置

* init-method:指定类中的初始化方法名称

* destroy-method:指定类中销毁方法名称

写完之后需要告诉spring有初始化和销毁方法,怎么做呢?通过配置文件的int-method和destory-method方法

执行测试方法:

先通过无参构造创建,再调用方法

咦?怎么没有销毁方法呢?

我们现在执行的是单元测试,单元测试只要执行完毕,就会销毁了,但是为什么没有打印出来校销毁的呢?因为还没有来的及打印,方法就执行完毕了

测试:让容器手动关闭,调用close方法

效果:

4.bean实例化三种方式

* 无参构造方法实例化

* 工厂静态方法实例化

*工厂实例方法实例化

i.无参构造方法实例化:

不写,直接默认调用无参的构造方法;或者我们右键-->generate-->constructor生成一个无参的构造方法

工厂静态方法实例化:

ii.创建静态工厂

静态工厂可以直接调方法,不用实例化(静态方法,如果在调用的时候,不用实例化对象,直接调就可以;但是非静态方法,在调用之前需要先实例化才可以)

在配置文件中修改:

spring在解析的时候发现有factory—method,他就不会再找StaticFactory的无参构造了,他会找StaticFactory内部指定方法,也就是getUserDao。

执行测试方法:

iii.工厂实例方法实例化

步骤:

必须现有工厂对象,才能调方法,因此在配置文件中,先让spring容器产生工厂对象,然后再调方法;

然后通过无参对象创建工厂,调用工厂的getUserDao方法创建bean

执行测试方法:

哇哦,介绍了好多,大家掌握了多少呢?俗话说好记性不如烂笔头,实践出真知,多用就好啦!

【Spring】配置文件相关推荐

  1. 转 spring配置文件

    spring配置文件 pom文件: <properties><commons-lang.version>2.6</commons-lang.version>< ...

  2. java spring 配置文件_[Java教程]Spring配置文件

    [Java教程]Spring配置文件 0 2016-03-19 00:00:08 Spring配置文件是集成了Spring框架的项目的核心,引擎从哪里开始,中间都执行了哪些操作,小谈一下它的执行流程. ...

  3. 系统启动时,spring配置文件解析失败,报”cvc-elt.1: 找不到元素 'beans' 的声明“异常...

    现象:spring加载配置文件applicationContext.xml出错,抛出nested exception is og.xml.sax.SAXParseException; lineNumb ...

  4. 通过Spring配置文件中bean中的property赋值

    基本数据类型赋值-通过spring配置文件中bean中的property 扩展-以此方式可以通过配置为连接数据的属性赋值 1.如果是基本数据类型,可以通过setter方法为对象中的属性设置初始值,应用 ...

  5. spring配置文件import标签中使用${}占位符获得配置文件的属性值

    2019独角兽企业重金招聘Python工程师标准>>> 一般情况下我们在Spring的配置文件中使用<import>标签是这样的,<import resource= ...

  6. (转)使用Spring配置文件实现事务管理

    http://blog.csdn.net/yerenyuan_pku/article/details/52886207 前面我们讲解了使用Spring注解方式来管理事务,现在我们就来学习使用Sprin ...

  7. 三大框架开发时,spring配置文件出现异常

    在最近利用三大框架进行项目开发时,spring配置文件里出现了一个橘***的双向箭头,鼠标放上去,会提示你advised by  org.springframework.transaction.int ...

  8. XML配置文件的命名空间与Spring配置文件中的头

    一直以来,写Spring配置文件,都是把其他配置文件的头拷贝过来,最多改改版本号,也不清楚哪些是需要的,到底是干嘛的.今天整理一下,拒绝再无脑copy. 一.Spring配置文件常见的配置头 < ...

  9. spring配置文件中分别使用多个properties文件

    spring配置文件中分别使用多个properties文件 在使用spring时,有时候需要为了模块配置方便有时候需要针对不同的模块建立不同的applicationContext的配置文件,然后在对应 ...

  10. Spring配置文件详解三:Spring声明式事务管理

    1.声明式事务管理 Spring提供了声明式事务管理,这是通过Spring AOP实现的. 原理:Spring中进行事务管理的通常方式是利用AOP(面向切片编程)的方式,为普通java类封装事务控制, ...

最新文章

  1. 程序员:我不学Python了!!
  2. visio取消首字母大写
  3. GNU/Linux的历史
  4. WINCE6.0+S3C2443的启动过程---eboot3
  5. 神策分析 1.16 版本上线场景库,实操方法论融入产品,全方位赋能多角色应用...
  6. 成不了天才,但为何也没成人材?(转)
  7. 热血沙城-3.2移植-古月-cocos2dx源码
  8. 【kafka】kafka 启动 KafkaController 相关源码分析
  9. VSCode Vim
  10. linux驱动位置_Linux驱动程序学习一 (续)
  11. 给大家推荐一个前端非常好用的量图软件(只能量psd的哦)像素大厨 PxCook 像素大厨使用方法
  12. linux 文件可视化工具下载,Linux 可视化管理工具
  13. 千亿级数仓项目(三)
  14. Win11 ARM64深度解析
  15. Latex通过bib文件转出bbl文件
  16. 学计算机的女生选择公务员还是考研,女生本科毕业!考研好,还是考公务员更好?...
  17. 再也不用手动复制粘贴收集Taptap游戏评论了,还可以制作好看的热词词云图~
  18. 华硕ROG|玩家国度冰刃6双屏GX650RX Windows11原厂预装系统 工厂模式恢复安装带ASUSRecevory一键还原
  19. 搞不定Eclipse TPTP
  20. 忍者必须死3 通关 服务器维护,忍者必须死3进不去怎么办 进不去解决方法详解[多图]...

热门文章

  1. python 3d绘图 拖动_在python中以交互方式旋转3D绘图 - matplotlib
  2. iex : 使用“3”个参数调用“SetEnvironmentVariable”时发生异常:“尝试执行未经授权的操作。”
  3. 什么样的程序员简历,最能吸引HR?(附47套简历模板下载地)
  4. 手机服务器物品不掉落,[娱乐|其他]InventoryKeeper —— 死亡护符|消耗物品来开启死亡不掉落吧[1.7.10-1.17]...
  5. python接收微信消息_【Python写微信防撤回脚本】02 接收记录聊天信息
  6. 8数码无解,拼图问题
  7. Python新手实战爬取表情包
  8. IPv6 静态路由及路由汇总 配置与详解
  9. 2-APP启动过程2+ActivityThread源码分析
  10. 四小时挣六万,这个CTF比赛在撒钱吗?