您的位置:首页 > 其它

依赖注入与控制反转

2017-11-02 23:40 225 查看
记得大学开的有一门课是软件工程,而且还是两个学期,可能实践的机会少有的理论可能也只是记住的,比如软件设计的六大原则:单一原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则、开闭原则,但没真正的理解明白为什么要这样。现在毕业也3年多了,项目也接触了几个,还有一些开源的框架,记得在中软给华为做外包时帮悍马其他组的支援了几天,当时还不知道ABP框架,对IOC也只是听说过,并没有理解。当接触了ABP框架才发现,原来当时做的项目就是采用的ABP框架啊。其实像这些设计原则、还有模式这些,主要还是为了系统的高内聚,低耦合。最近在自学javaweb,学javaweb自然不能少了spring,spring的核心就是IOC和AOP,今天主要来说下IOC——Inversion of Control/控制反转。

一、依赖注入DI—Dependency Injection

1.依赖

在说IOC之前先聊下依赖注入,依赖注入可以分两部分一是依赖二是注入。那什么是依赖?不是我自身的但没有就活不下去,人没了空气、水、阳光,那就活不下去。所以人依赖空气、水、阳光。下面代码定义了一个Person和一个CleanAir的类,Person依赖CleanAir。

package Cuiyw.SpringAop;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import Cuiyw.Spring.IService.IService;

public class App
{
public static void main( String[] args )
{
ApplicationContext context=new ClassPathXmlApplicationContext(new String[]{"ApplicationContext.xml"});
BeanFactory factory=context;
IService service=(IService)factory.getBean("ServiceImpl");
service.service("Cuiyw");
}

}


View Code
7.项目结构



8.运行main方法



上面几步算是简单的实现了spring的ioc,但只是大概简单的了解,并未深入。我们在mian中并为进行new创建,而是通过spring来自动填充,找到对应的依赖注入给service。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: