spring零碎知识点
1:spring是在启动spring容器时根据配置文件创建对象,不管是普通模式还是静态工厂模式还是实例工厂模式
2:spring懒加载
在配置对象时,添加 lazy-init 属性为 true ,打开懒加载后,对象将在getBean()方法调用的时候创建,而不是在启动spring容器时。因为是在调用的时候创建,所以不能像非懒加载一样,能在spring容器启动时就检查配置文件是否存在错误
3:spring 默认情况下默认情况是单例的
即当多次getBean()调用的是同一个对象的时候,这些对象是同一个(地址相同,hasCode码相同)
当单例模式时,需要注意安全的问题
因为对象是单例的,所以只要在类上声明一个属性,该属性含有数据,那么该属性是全局的(非常危险)
4: 当bean 中 添加scope="prototype"时
这时,spring容器产生的对象将不再是单例模式,即是多例
这时,将发生懒加载,即多例模式下,是在getBean()方法调用时创建对象,且调用一次getBean()创建一次对象
5:spring的初始化和销毁方法
在bean中配置init-method 和destroy属性,值为该类中对应的方法
当这个类的对象产生时,调用初始化方法,当spring容器执行close()方法时才调用销毁方法
6:DI 依赖注入
依赖注入就是给属性赋值,提供了(xml)两种方案给属性赋值,1:setter 方法 2 :构造函数
7:IOC和DI 结合的真正的意义,在于JAVA代码可以完全面向接口编程