IOC与DI的区别?

  IOC:控制反转(Inversion of Control是面向对象的一种设计原则,可以用来降低计算机之间的耦合度,其中最常见的是依赖注入).是实现的目标

  DI:是实现IOC的一种手段Dependency Injection ,依赖注入简称DI

  DL:依赖查找 Dependency Lookup,使用场景,数据库配置。

Dependency Injection依赖注入

  依赖:需要、基于。

  注入:进行解耦,需要的时候再进行使用

spring实现IOC的思路和方法
  spring实现IOC的思路是提供一些配置信息用来描述类之间的依赖关系,然后由容器去解析这些配置信息,继而维护好对象之间的依赖关系,前提是对象之间的依赖关系必须在类中定义好,比如A.class中有一个B.class的属性,那么我们可以理解为A依赖了B。既然我们在类中已经定义了他们之间的依赖关系那么为什么还需要在配置文件中去描述和定义呢?
spring实现IOC的思路大致可以拆分成3点

  1应用程序中提供类,提供依赖关系(属性或者构造方法)

  2把需要交给容器管理的对象通过配置信息告诉容器(xml、annotation,javaconfig)

  3把各个类之间的依赖关系通过配置信息告诉容器

  配置这些信息的方法有三种分别是xml,annotation和javaconfig
  维护的过程称为自动注入,自动注入的方法有两种构造方法和setter
  自动注入的值可以是对象,数组,map,list和常量比如字符串整形等
 
spring编程的风格
  schemal-based----基于模型---xml
  annotation-based---基于注解--annotation
  java-based---基于java-java Configuration
 
spring的注入方法
  构造方法
  set方法
  spring3中提供了接口注入,但是在spring4中被取消了,太不人性化。已经取消了
  取消的原因:有了set方式注入,接口注入就多次一举了,并且耦合度也提高了 https://blog.csdn.net/xuebing1995/article/details/75389143
  
 
spring中注解@component与@service、@controller的区别
  官网中有详细解释:Spring提供进一步典型化注解:@Component@Service,和 @Controller@Component是任何Spring管理组件的通用构造型。@Repository@Service和,@Controller@Component更具体的用例的专业化(分别在持久性,服务和表示层)。因此,您可以来注解你的组件类有 @Component,但是,通过与注解它们@Repository@Service或者@Controller ,你的类能更好地被工具处理,或与切面进行关联。例如,这些刻板印象注释成为切入点的理想目标。@Repository@Service并且@Controller还可以在Spring Framework的未来版本中携带其他语义。因此,如果您在使用之间进行选择@Component或者@Service对于您的服务层,@Service显然是更好的选择。同样,如前所述,@Repository已经支持将其作为持久层中自动异常转换的标记。
 
spring中的@autowirter与@resource的区别
  autowriter是默认的byType方式,如果根据byType没有找到,会根据byName去查找。如果spring容器中存在多个此类型的类则会根据byName查找,byName是根据属性的名字去查找对应的类。如果根据属性名字没有查找到相关则会报错,提示存在多个相同类型的类。
  resource是默认的byName方式,是根据属性的名字创建代理类中的方法。切记不是set方式
  什么是byType?就是spring基于类的类型通过上下文查找对象依赖。(个人理解,若理解错误请及时指出)
  什么是byName?就是spring基于方法名字查找对象依赖中的方法。(个人理解,若理解错误请及时指出)
  扩展:根据官网所说,我们可以重写BeanNameGenerator类,并重新设置spring中查找上下文中的依赖关系的命名规范。
 
bean的作用域
  此点本人再开发工作过程中确实遇到过,简单说一下经历。项目是改造项目,由很老的项目改造成springMVC项目,项目中的架构师没有处理bean的作用域,默认的(也就是singleton),本人在工作过程中遇到签单逻辑的时候,服务启动后,第一次签单成功,但是第二次之后总是失败,于是就打了断点,发现进入逻辑方法后,所有的全局属性都是有值的(刚刚进入方法,还没赋值),结果查找问题,发现bean的作用于问题导致。
  singleton、prototype、request、session、application、websocket

  

Spring-1-IOC的更多相关文章

  1. Spring的IOC和AOP之深剖

    今天,既然讲到了Spring 的IOC和AOP,我们就必须要知道 Spring主要是两件事: 1.开发Bean:2.配置Bean.对于Spring框架来说,它要做的,就是根据配置文件来创建bean实例 ...

  2. Spring框架IOC容器和AOP解析

    主要分析点: 一.Spring开源框架的简介  二.Spring下IOC容器和DI(依赖注入Dependency injection) 三.Spring下面向切面编程(AOP)和事务管理配置  一.S ...

  3. Spring总结—— IOC 和 Bean 的总结

    一.Spring 官方文档中给出的 Spring 的整体结构. 二.我自己所理解的 Spring 整体结构图. 三.本次总结 Spring 核心部分 1.从上面图中可以看出,Beans 和 Conte ...

  4. spring的IOC和AOP

     spring的IOC和AOP 1.解释spring的ioc? 几种注入依赖的方式?spring的优点? IOC你就认为他是一个生产和管理bean的容器就行了,原来需要在调用类中new的东西,现在都是 ...

  5. spring容器IOC创建对象<二>

    问题?spring是如何创建对象的?什么时候创建对象?有几种创建方式?测试对象是单例的还是多例的 ?对象的初始化和销毁? 下面的四大模块IOC的内容了!需要深刻理解 SpringIOC定义:把对象的创 ...

  6. Spring中IoC的入门实例

    Spring中IoC的入门实例 Spring的模块化是很强的,各个功能模块都是独立的,我们可以选择的使用.这一章先从Spring的IoC开始.所谓IoC就是一个用XML来定义生成对象的模式,我们看看如 ...

  7. Spring中IOC和AOP的详细解释

    我们是在使用Spring框架的过程中,其实就是为了使用IOC,依赖注入,和AOP,面向切面编程,这两个是Spring的灵魂. 主要用到的设计模式有工厂模式和代理模式. IOC就是典型的工厂模式,通过s ...

  8. Spring的IoC应用

    IoC(Inversion of Control,控制反转) Spring的IoC应用是其框架的最大的特点,通过依赖注入可以大大降低代码之间的耦合度,从而实现代码和功能之间的分离.在代码中可以不直接和 ...

  9. Spring 实践 -IoC

    Spring 实践 标签: Java与设计模式 Spring简介 Spring是分层的JavaSE/EE Full-Stack轻量级开源框架.以IoC(Inverse of Control 控制反转) ...

  10. 挖坟之Spring.NET IOC容器初始化

    因查找ht项目中一个久未解决spring内部异常,翻了一段时间源码.以此文总结springIOC,容器初始化过程. 语言背景是C#.网上有一些基于java的spring源码分析文档,大而乱,乱而不全, ...

随机推荐

  1. Ubuntu中字体的改变

    1.sudo dpkg-reconfigure console-setup 2.弹出 Configuring console-setup 界面,选择适当的编码格式,我们一般选择默认的UTF-8,选择O ...

  2. $(function() {}),即$(document).ready(function(),什么时候执行?以此为准

    $(function() { //执行操作 }); $(function() {}) 是$(document).ready(function()的简写. 这个函数什么时候执行的呢? 答案:DOM加载完 ...

  3. sourceTree 的使用

    一.拉取其他分支代码 1.git clone 代码是下载master分支 2.在未做修改的情况下,合并分支 二.提交代码到其他分支 1.创建分支(名称可以与远程不同) 2.(正常提交步骤)将作出的修改 ...

  4. JAVA基础--异常10

    一.Object类简介 1.Object类简介 Object,是Java一切对象的最高父类:如果一个类没有显示继承一个类,他的父类就是Object: 它描述的是Java世界里所有对象最最共性的信息,它 ...

  5. hdoj1728【搜索的两种写法】

    以前的一道题目,现在拿到总觉得是DFS,然后T掉就没什么想法了,很狗的看了以前的写法(以前还是看题解的AC的),是BFS,每次都要转弯,但是之前你的达到一种他走到了死路,所以才是不得不转弯,写法也是非 ...

  6. 二分匹配ZOJ3646

    //题意:类比线代里:把矩阵中的U看作[1],是否满足一个满秩矩阵 //利用二分匹配就是 //每一行都有相对应的列: #include<iostream> #include<stri ...

  7. bzoj2064: 分裂(状压dp)

    Description 背景: 和久必分,分久必和... 题目描述: 中国历史上上分分和和次数非常多..通读中国历史的WJMZBMR表示毫无压力. 同时经常搞OI的他把这个变成了一个数学模型. 假设中 ...

  8. bzoj4145 [AMPPZ2014]The Prices(状压dp)

    Description 你要购买m种物品各一件,一共有n家商店,你到第i家商店的路费为d[i],在第i家商店购买第j种物品的费用为c[i][j], 求最小总费用. Input 第一行包含两个正整数n, ...

  9. h5-17-元素拖放

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. h5-24-百度地图-地址解析

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...