Spring IOC(DI)

 

我的理解:简单来讲,依赖注入 类比 hibernate的二级缓存。  把东西(hibernate-数据【hashmap】,DI-类)集中放进一个容器(内存)中 ,方便其余(hibernate—QL语句、DI—类使用。spring

这样hibernate取数据时先从二级缓存找,减小访问数据库,提升效率。某个类依赖注入后,就不用经过new个对象(保存内存堆中)来使用它,直接经过注解从容器中获取,方便管理(使用)对象

自动扫描

  <context:component-scan base-package="com.ssm"/> (多个包用逗号隔开)
  代表com.ssm包及其子包中,若是某个类的头上带有特定的注解
数据库

  @Component,@Repository,@Service,@Controller,就会将这个对象做为Bean注入进Spring容器。缓存

IOC-反转控制(DI-依赖注入)自我理解

  spring配置文件中扫描注解把Bean注入IOC容器编码

  须要哪一个对象从IOC容器取,而后赋值(注入)。(spring 经常使用注入方式:属性注入)spa

  把初始化的数据放入配置文件中,经过注解匹配对应的bean赋值。hibernate

  IOC:(经过代理(中介)获取对象或其属性)不需经过程序代码实例化对象。把对象当成bean注入IOC容器。须要什么对象,经过注解从容器获取。代理

  DI:初始化(赋值)。component

  依赖注入和控制反转是对同一件事情的不一样描述,从某个方面讲,就是它们描述的角度不一样。依赖注入是从应用程序的角度在描述,能够把依赖注入描述完整点:应用程序依赖容器建立并注入它所须要的外部资源;而控制反转是从容器的角度在描述,描述完整点:容器控制应用程序,由容器反向的向应用程序注入应用程序所须要的外部资源。对象

  IOC:内存

    实现反转控制,实现代码解耦。

    不须要编码实例对象,而把对象直接放入到 IOC容器中。须要用到某些对象或其属性直接从IOC容器经过注入的方式获取。

    使用注解代替配置文件(预编译报错问题)来注入属性,解耦,方便管理。

  DI:

    IOC容器相似于颜料盒(放置全部颜料的地方),当咱们须要画一幅画(实现某些功能),要先用调色板从颜料盒中取所需的颜料(类中注入对象或其属性)。

 

我的理解:简单说,依赖注入 类比 hibernate的二级缓存(把东西(hibernate-数据【hashmap】,DI-类)集中放进一个容器(内存)中),方便其余(hibernate—QL语句、DI—类使用

这样hibernate取数据时先从二级缓存找,减小访问数据库,提升效率。某个类依赖注入后,就不用经过new个对象(保存内存堆中)来使用它,直接经过注解从容器中获取,方便管理(使用)对象

相关文章
相关标签/搜索