黑马程序员SSM系列课程——Spring(一)

本文介绍了Spring框架中的IoC控制反转机制,如何通过Ioc容器管理和创建对象,包括依赖注入的实践,以及bean的生命周期管理,特别关注了构造函数、静态工厂和实例工厂的区别,以及如何处理Java虚拟机退出时bean的销毁问题。
摘要由CSDN通过智能技术生成

IOC控制反转:对象的创建控制权由程序转移到外部。

背景:企业中代码耦合度较高,若想修改代码,需要重新编译、打包、发布等一系列操作,较麻烦、解决方案:使用对象时在程序中不要主动使用new产生对象,转换为由外部提供对象。

spring提供了一个容器,成为Ioc容器,充当Ioc思想中的外部。

Ioc容器负责对象的创建、初始化等一系列工作,被创建或被管理的对象 在容器中成为Bean。

依赖注入:在容器中建立bean与bean之间的依赖关系的整个过程。

需要编写set方法,set方法由容器调用。

第一个bookDao是类的成员变量名字第二个是引用,对另一个bean对象的引用,也在配置文件中定义。

Spring中默认bean为单例的,即先后两次创建对象,两次对象的地址是同样的。

一个对象用了一次后下次还是使用该对象,从容器中拿,这样效率才会高。

记录成员变量属性值的对象不适合交给容器管理。

bean实例化:

1.构造方法

Spring创建对象本质上还是通过构造函数,且调用的为无参构造函数。若只编写一个有参构造函数将会报错。且构造函数private、public都可以正常创建对象。(使用反射)

2.静态工厂

早些年使用的方式,制造对象不要自己new,使用工厂的方式。(了解即可)

3.实例工厂

了解

bean的生命周期

在配置中添加 init-method、destory-method即可在bean创建和销毁时添加一些业务逻辑。自己实现该方法即可。

但是Java程序运行在虚拟机中,程序运行完虚拟机就退出了,没有给销毁bean的机会。

解决方案:

1.在虚拟机退出之前将容器关闭,调用容器.close();  (很暴力,且代码位置固定)

2.设置关闭钩子。

类的构造函数最优先调用,然后到set方法,最后才是初始化方法(即init-method)。

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值