美文网首页
spring入门(二)-----依赖注入

spring入门(二)-----依赖注入

作者: 探索的影子 | 来源:发表于2018-11-05 09:03 被阅读0次

DI依赖注入

要说什么是依赖注入,我们首先得知道什么是依赖?什么是注入?

依赖

在uml统一建模语言uml中对象关系分为来源更多

继承

指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的>新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明>>确标识,在设计时一般没有争议性;

实现

指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系;在Java中>此类关系通过关键字implements明确标识,在设计时一般没有争议性;

依赖

可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、、临时性的、非常>弱的,但是B类的变化会影响到A;比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖;表现在代码层面,为类B作为参数被类A在某个method方法中使用;

关联

他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友;这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的、关联可以是单向、双向的;表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量;

聚合

聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、公司与员工的关系等;表现在代码层面,和关联关系是一致的,只能从语义级别来区分;

组合

组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;比如你和你的大脑;表现在代码层面,和关联关系是一致的,只能从语义级别来区分;

代码实现

class B{
  private A a;//B依赖A
}

注入

注入:通过setter方法进行了另一个对象实例设置

例子


public interface BookDao {
}


public class BookDaoImpl implements BookDao {
}

需要注入的类
常见的注入方法:通过new注入


public class BookServiceImpl implements BookService {
    private BookDao bookDao = new BookDaoImpl();

}

spring:通过setter方法注入

public class BookServiceImpl implements BookService {
    //private BookDao bookDao = new BookDaoImpl();
    private BookDao bookDao;

    public void setBookDao(BookDao bookDao) {
        this.bookDao = bookDao;
    }
}

模拟spring的执行过程

创建serivce实例 --->IOC

BookService bookService = new BookServiceImpl();

创建dao实例 --->IOC

BookDao bookDao = new BookDaoImpl();

将dao注入到service里面 --->DI

bookService.setBookDao(bookDao);

相关文章

  • spring入门(二)-----依赖注入

    DI依赖注入 要说什么是依赖注入,我们首先得知道什么是依赖?什么是注入? 依赖 在uml统一建模语言uml中对象关...

  • Spring学习手册(5)—— bean作用域

    Spring学习手册(4)—— Spring 依赖注入中介绍了Spring依赖注入的基本方式以及各种类型的参数注入...

  • Spring三种bean注入方式

    Spring中依赖注入有三种注入方式:一、构造器注入;二、设值注入(setter方式注入);三、Feild方式注入...

  • Spring学习之依赖注入

    Spring学习之依赖注入 依赖注入的基本概念 依赖注入(Dependecy Injection),也称为IoC(...

  • 2018-05-05

    spring源码分析(三) 目录五、Spring 源码解读--5.4、IOC 容器的依赖注入----1、依赖注入发...

  • Spring bean注解

    Spring自带依赖注入注解 @Required,依赖检查 @Autowired,根据Type注入 @Value,...

  • JAVA 核心笔记 || [xxx] Spring 之 依赖注入

    Spring 依赖注入 DL Spring 两种注入方式 Setter 方法注入 构造器注入 使用App.java...

  • 依赖注入

    依赖注入 Spring支持两种依赖注入方式,分别是属性注入和构造函数注入.除此之外,Spring 还支持工厂方法注...

  • spring源码解析-循环依赖

    讲解内容: spring的循环依赖---属性注入--自动注入 spring bean的生命周期 spring be...

  • Spring框架-学习笔记2

      该学习笔记是《尚学堂spring视频教程》的学习笔记第二部分。 6、依赖注入 依赖注入(dependency ...

网友评论

      本文标题:spring入门(二)-----依赖注入

      本文链接:https://www.haomeiwen.com/subject/iscztqtx.html