发布于2021-03-10 18:02 阅读(592) 评论(0) 点赞(3) 收藏(4)
原文链接http://zhhll.icu/2021/01/03/%E6%A1%86%E6%9E%B6/spring/spring%E4%BE%9D%E8%B5%96%E6%B3%A8%E5%85%A5/
IOC(Inversion of Control)一般分为两种类型:依赖注入DI(Dependency Injection)和依赖查找(Dependency Lookup)
org.springframework.beans.factory.BeanFactory是IOC容器的具体实现,是Spring IOC容器的核心接口
Spring IOC负责创建对象,管理对象,装配对象,配置对象,并且管理这些对象的整个生命周期。
优点:把应用的代码量降到最低。最小代价和最小侵入式是松散耦合得以实现。IOC容器支持加载服务时的饿汉式初始化和懒加载
DI依赖注入是IOC的一个方面,不需要创建对象,只需描述如何被创建,在配置文件中描述组件需要哪些服务,之后IOC容器进行组装
IOC的注入方式:1、构造器依赖注入 2、Setter方法注入 3、工厂方法注入(很少使用)
通过Setter方法注入bean的属性值或依赖的对象,是最常用的注入方式
<!-- property来配置属性
name为属性名
value为属性值
-->
<bean id="helloWorld" class="com.zhanghe.study.spring4.beans.helloworld.HelloWorld">
<property name="name" value="Spring Hello"/>
</bean>
构造器注入需要提供相应的构造器
<!-- 可以使用index来指定参数的顺序,默认是按照先后顺序 -->
<bean id="car" class="com.zhanghe.study.spring4.beans.beantest.Car">
<constructor-arg value="法拉利" index="0"/>
<constructor-arg value="200" index="1"/>
</bean>
但是如果存在重载的构造器的话,只使用index索引方式无法进行精确匹配,还需要使用类型type来进行区分,index和type可以搭配使用
public Car(String brand, double price) {
this.brand = brand;
this.price = price;
}
public Car(String brand, int speed) {
this.brand = brand;
this.speed = speed;
}
<bean id="car" class="com.zhanghe.study.spring4.beans.beantest.Car">
<constructor-arg value="法拉利" index="0"/>
<constructor-arg value="20000.0" type="double"/>
</bean>
<bean id="car2" class="com.zhanghe.study.spring4.beans.beantest.Car">
<constructor-arg value="玛莎拉蒂" index="0"/>
<constructor-arg value="250" type="int"/>
</bean>
由于本身的博客百度没有收录,博客地址http://zhhll.icu
原文链接:https://www.cnblogs.com/life-time/p/14445012.html
作者:天天在家
链接:http://www.javaheidong.com/blog/article/112357/873b5fdef8c76af5a338/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!