控制反转————
- 控制:谁来控制对象的创建
传统应用程序对象是由程序本身控制创建的,使用Spring后,对象是由Spring来控制创建的(经由xml文件配置)
- 反转:程序本身不再创建对象,而是反过来被动的接受对象(getBean(String id))
- 依赖注入:就是利用set方法来进行注入的
所以,Ioc(控制反转)其实就是:对象由Spring来创建,管理,装配!
Ioc创建对象的方式(xml装配bean)
- 使用无参构造创建对象,然后调用set方法(底层)
<bean id="user" class="com.woshi.pojo.User"> <property name="name" value="张三"></property> </bean>
- 使用构造器,利用下标索引赋值(索引从0开始,存在歧义风险,类型正确的情况下可能把值付错)
<bean id="user2" class="com.woshi.pojo.User"> <constructor-arg index="0" value="李四"></constructor-arg> </bean>
- 使用构造器,通过参数类型赋值(存在歧义风险,如果由同类型的成员变量,会按顺序为他们赋值,提供的多余构造器需要的,会报错,少于没事,会赋给null,要是涉及到基础数据类型就会报错)
<bean id="user3" class="com.woshi.pojo.User"> <constructor-arg type="java.lang.String" value="王五"></constructor-arg> </bean>
- 使用构造器,通过成员变量名称赋值(不容易有歧义)
<bean id="user4" class="com.woshi.pojo.User"> <constructor-arg name="name" value="刘六"></constructor-arg> </bean>
初级的装配bean的方法就以上4种,如果使用property来装配就不要干掉无参构造器,并且保证提供相应的set方法;
如果使用构造器来装配bean,就要提供相应的构造器(倒是不必提供set方法)
原文地址:https://www.cnblogs.com/woshi123/p/12436784.html
时间: 2024-10-30 06:40:12