Spring学习(五) Ioc控制反转

所谓的控制反转就是[b]应用本身不负责依赖对象的创建以及维护[/b],依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓的控制反转。
例如:
1.创建DAO接口

package com.bill.dao;
public interface PersonDao {
public void add();
}

2.创建DAO接口的实现类

package com.bill.dao.impl;
import com.bill.dao.PersonDao;

public class PersonDaoBean implements PersonDao {
public void add() {
System.out.println("this is add() of PersonDaoBean");
}

}

3.应用层代码如下:

package com.bill.impl;
import com.bill.PersonService;
import com.bill.dao.PersonDao;
/**
* @author Bill
*/
public class PersonServiceBean implements PersonService {
private PersonDao personDao;
public void setPersonDao(PersonDao personDao) {
this.personDao = personDao;
}
public PersonDao getPersonDao(){
return personDao;
}
public void save(){
personDao.add();
}
}

4.beans.xml

<bean id="personDao" class=" com.bill.dao.impl.PersonDaoBean"/>
<bean id="personService" class="com.bill.impl.PersonServiceBean">
<property name="personDao" ref="personDao"></property>
</bean>

5.测试代码

AbstractApplicationContext act = new ClassPathXmlApplicationContext("beans.xml");
PersonService personService = (PersonService)act.getBean("personService");
personService.save();
act.close();

控制台打印出:this is add() of PersonDaoBean

说明了,应用本身PersonServiceBean不负责PersonDaoBean对象的创建和维护,PersonDaoBean对象的创建和维护由Spring容器负责,PersonDaoBean对象通过依赖注入,注入到应用层PersonServiceBean的属性personDao中。这就是控制反转。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值