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

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、付费专栏及课程。

余额充值