人世繁华|spring框架之IOC容器

今天是刘小爱自学Java的第121天 。
感谢你的观看 , 谢谢你 。
而在spring框架中可以将对象交给spring管理 , 再通过spring工厂直接获取 。
所以我们也称之为spring容器 。
今天的学习内容就是关于bean标签:
Bean的作用域:单例与多例说明 。 Bean属性依赖注入的两种方式 , 以及p名称空间、seEL表达式的引入 。 补充说明一个IDEA插件 。 一、bean的作用域作用域也就是指:由spring创建的bean对象在什么情况下有效?主要有单例和多例两种 。
值为singleton即为单例 , 默认值 , 可省略 。 值为prototype即为多例 。1单例测试
我们会发现:如果是单例的话 , 构造方法只运行一次 , 多次获取的是同一个对象 。
在springIOC容器中仅存在一个bean实例 , bean以单例方式存在 。
注意:这边我大致提下 , 昨天忘记说明了 , 通过spring工厂获取对象时 , 参数可以是id , 也可以是bean的类型 , 也就是对应接口/类的Class对象 。
使用id获取最稳妥 , 如果根据类型获取 , 配置了多个类型的话 , 会抛出异常 。
2多例测试
我们会发现:多例构造方法会运行多次 , 多次获取的都是不同的对象 。
每次从容器中调用bean时 , 都会返回一个新的实例 , 即每次调用getBean()的时候 , 相当于new了一次bean对象 。
二、bean属性的依赖注入什么是Bean属性的依赖注入?
就可以理解成对一个对象的属性赋值 , 这个我们昨天就接触过 , 其有两种注入方式:
1构造器参数注入constructor-arg
既然是通过构造器参数注入 , 那肯定需要有参构造方法 , 其中为了方便测试时观看 , 还在该类中重写一个toString方法 。
②spring配置构造器参数
constructor-arg:该标签相当于在告诉spring容器 , 要调用有参构造方法了 , 不再调用默认的构造方法了 。
所以必须要有有参构造方法 , 不然会报错 。
index:根据索引定位属性 , 0表示首位 。 name:根据属性参数名称定位属性 。 type:根据属性数据类型定位属性 。 value:简单的值 , 字符串 。 ref:复杂的值 , 就是通过该属性可以引用由spring容器创建的其它bean对象 。一般都是使用name属性赋值 , 这样最合理 , 也一目了然 , name和type这两种都不靠谱 。
配置完成 , 做一个测试