DI/IOC  <bean>  代表由容器构建的对象(通过反射构建,且类必须有无参的构造方法)

            公共属性  id=“唯一的id”  在容器中是唯一的

                  name=“类似id属性”  可以同时指定多个使用逗号、分号、或空格分隔

                  如果不指id和name定就可以使用全类名获取

                  class=“类的全路径”

            注入方式  属性注入  <property name="属性名"></property>   value=“字面值”

                                               ref=“容器内对象的ID”

                        在<property>或<constructor-arg>内部可以设置内部bean。内部bean不需要设置id,只给当前属性或参数使用,外部不能使用  

                  构造器注入<constructor-arg>  inde“参数索引”

                                  name=“参数名”

                                  type=“参数数据类型”

                  工厂方法注入(不常用)

      集合  <util:集合类型>  添加util文件才能支持  (集合类型为list,set,map)

                  list和set有 id,value,ref 值

                  map有 id 和 entry(key,value,key-ref,value-ref)

    简化  p标签  p:属性名=“字面值”

              p:属性名-ref=“引用对象的id”

        自动装配  特点:两种方法不能同时使用,还会降低代码可读性

              autowire=“byType”  容器内对应数据类型的对象只能有一个

              autowire=“byName”  对象名和属性名要一致

    继承  特点:子bean可以继承和覆盖父bean的属性,父bean中自动装配的属性不能被继承

        parent=“父bean的id”

        abstract=“true”  只能在容器内被继承,不能被外部使用

    作用域  scope=“singleton”  默认的,在容器内创建一个实例,并共享。在创建容器时就进行对象的实例化

         scope=“prototype”  每次调用getBean()方法都会产生新的实例

         scope=“session”  在web项目对每个会话产生新的实例

         scope=“request”  在web项目对每个请求产生新的实例

    外部属性文件  定义:命名为*.porperties  一般放在src目录下,保存的是key=value的键值对,多个键值对用回车换行

            加载:导入context的标签定义 <context:property-placeholder location="classpath:外部属性文件名"/>

            使用:属性名=“${key}”

    注解  对classpath下的类进行扫描和检测,对具有特定注解的类进行实例,并进行装配

        启动扫描  <context:component-scan base-package="包名1,包名2"></context:component-scan>  扫描包及子包下的类

              resource-pattern=“过滤的类名”

        分类  @Component  基本组件

            @Reqository  持久化组件

            @Service  业务逻辑组件

            @Controller  控制其组建

        用法  把注解定义在类名前,可以用 (value-“组件名”) 指定组件名。如果不指定组件名,默认为首字母小写的类名

        自动装配  把注解放在属性前可实现自动装配

              @Auotwired  requried=false  不是必需的

              @Qualifier(“指定组建的id”)

Spting--DI/IOC的更多相关文章

  1. Atitit js中的依赖注入di ioc的实现

    Atitit js中的依赖注入di ioc的实现 全类名(FQCN)为标识符1 混合请求模式1 使用类内  builder  即可..2 Service locator method走ok拦2 Jav ...

  2. 一个由正则表达式引发的血案 vs2017使用rdlc实现批量打印 vs2017使用rdlc [asp.net core 源码分析] 01 - Session SignalR sql for xml path用法 MemCahe C# 操作Excel图形——绘制、读取、隐藏、删除图形 IOC,DIP,DI,IoC容器

    1. 血案由来 近期我在为Lazada卖家中心做一个自助注册的项目,其中的shop name校验规则较为复杂,要求:1. 英文字母大小写2. 数字3. 越南文4. 一些特殊字符,如“&”,“- ...

  3. ASP.NET MVC不可或缺的部分——DI(IOC)容器及控制器重构的剖析

    ASP.NET MVC不可或缺的部分——DI(IOC)容器及控制器重构的剖析   IoC框架最本质的东西:反射或者EMIT来实例化对象.然后我们可以加上缓存,或者一些策略来控制对象的生命周期,比如是否 ...

  4. Helloworld之Spring依赖注入/控制反转(DI/IoC)版

    Helloworld之Spring依赖注入/控制反转(DI/IoC)版 作者:雨水, 日期:2014-10-29 摘要:本文主要用于培训刚開始学习的人理解Spring中的依赖注入的基本概念. 先介绍依 ...

  5. Spring专题2: DI,IOC 控制反转和依赖注入

    合集目录 Spring专题2: DI,IOC 控制反转和依赖注入 https://docs.spring.io/spring/docs/2.5.x/reference/aop.html https:/ ...

  6. ASP.NET MVC不可或缺的部分——DI(IOC)容器及控制器重构的剖析(DI的实现原理)

    IoC框架最本质的东西:反射或者EMIT来实例化对象.然后我们可以加上缓存,或者一些策略来控制对象的生命周期,比如是否是单例对象还是每次都生成一个新的对象. DI实现其实很简单,首先设计类来实现接口, ...

  7. spring的DI.IoC是什么

    最近要搞spring的单元测试,不得已啊啊啊啊啊啊啊啊啊又要开始搞spring…… 日目晶…… 搞这几个概念,先甩一部分代码: UserDao 接口 package com.itheima.ioc; ...

  8. IOC,DIP,DI,IoC容器

    定义 IOC(Inversion of Control  控制反转),DIP(Dependency Inverson Principle 依懒倒置)都属于设计程序时指导原则,并没有具体的实现.比较常用 ...

  9. 对于Spring中AOP,DI,IoC概念的理解

    IOC IoC(inversion of Control),控制反转.就好像敏捷开发和SCRUM一样,不是什么技术,而是一种方法论,一种工程化的思想.使用IoC的思想意味着你将设计好的对象交给容器控制 ...

  10. Spring基础篇——DI/IOC和AOP原理初识

    DI(Dependency Injection),依赖注入,和我们常听说的另一个概念 IOC(控制反转)其实归根结底实现的功能是相同的,只是同样的功能站在不同的角度来阐述罢了.这里博主就不去过多的辨析 ...

随机推荐

  1. sublime代码片段

    创建方法:Tools > New Snippet 这时你会看到如下示例代码: <snippet>      <content><![CDATA[ Hello, ${ ...

  2. Node.js-Socket.IO【1】-身份验证

    Websocket身份验证失败的时候,希望向前台传输错误信息,但是Socket.IO目前最新版本1.4.6在后台使用 next(new Error('unauthorization')); 前端的代码 ...

  3. 基于Proteus仿真的Arduino学习(1)——Arduino Uno最小系统及LED的简单使用

    一.前言:  A.Arduino简介 Arduino是由一个欧洲开发团队于2005年冬季开发.其成员包括Massimo Banzi.David Cuartielles.Tom Igoe.Gianluc ...

  4. 几种经典排序算法的R语言描述

    1.数据准备 # 测试数组 vector = c(,,,,,,,,,,,,,,) vector ## [] 2.R语言内置排序函数 在R中和排序相关的函数主要有三个:sort(),rank(),ord ...

  5. CodeForces Round#313

    第一题想当然了,结果被坑.. 有1的肯定能构成所有的其他数,没有1的肯定构不成1 ,这题T T #include <iostream> #include <cstring> # ...

  6. Main 程序的入口要做哪些事情

    Main 程序的入口要做哪些事: 1.从主类中实例化程序(UIApplication)对象 2.如果有委托的话,从给定的类实例化委托和设置程序(UIApplication) 的代理. 3.开启主事件的 ...

  7. Android入门(八):使用RadioGroup 和RadioButton组件建立单选清单

    这一章,我们学习RadioGroup 和RadioButton组件,我们新建一个项目,编码过程与前几章的项目类似. 1.建立字符串资源文件strings.xml: <resources> ...

  8. Python实战2( 接上):扫描多余中文

    还是接上一篇,扫描多余中文,支持自定义忽略字段 源代码,详看   http://pan.baidu.com/s/1ntC78Zv   ScanChinese.zip

  9. Cookie案例:简单登录界面中的应用

    ServletDemo1.java package ztq.servlet.study; import java.io.IOException; import java.io.PrintWriter; ...

  10. Select Option

    jQuery获取Select元素,并选择的Text和Value: 1. $("#select_id").change(function(){//code...}); //为Sele ...