优点:
1.简化开发
2.框架整合
DI:
删除new 改成set方法 目的是容器能够给service层里提供dao对象
bean适合单例对象
容器获得bean对象的常用方式是用无参构造器来获得
第二种方法利用工厂来造对象
第三种方法利用工厂实例对象的方法来造对象
然后在这个界面运行就好了
创建工厂bean
重写的两个方法和泛型共同确定创建的对象类型单例非单例的修改 isSingleton
回到这个界面运行
写的是工厂bean对象 但是造出的对象实际是getObject的结果对象
配置bean的生命周期
(调用无参构造器)
如果想要看到destroy就需要先关容器再关虚拟机 所以调用close方法,但是原来那个没close方法,所以换一下如下↓
相比来讲close比较暴力,它在哪 哪里就关,上面这个意思就是close之后再关虚拟机
还有一种方法是利用接口
总结
1.因为构造器是必触发的,setter有可能没执行
2.灵活性
5.有可能别人给你的文件
6.构造器基本不写,还是setter方法比较常见
依赖注入和setter注入区别就是更改set方法变成构造器然后标签一换
集合注入
数据源对象管理
先去看那个对象有没有好的构造器方法,没有再用setter注入,property name value 的形式
druid(数据库连接池)
如何读取properties文件
1.开命名空间
文件内容
加了后边那个东西,系统环境变量就不会加载从而覆盖properties里面重名的值了
最规范的格式:
前面那个*是所有jar包范围,后边的*是指当前包下所有的properties文件
容器扩展