Spring相关概念和类

   1、IOC

            inverse of control    控制反转   反转了创建对象的方式

           以前:new 对象,管理和维护开发者来完成

           Spring:Spring创建和管理,维护对象,开发者只需要使用该对象。

 2、DI(Dependecy Injection): 依赖注入

         DI是为IOC做支持的  

         IOC创建的对象的内容是null,所以我们要注入内容

 3、BeanFactory    ApplicationContext,classPathXMLApplicationContext

         最原始的接口

         是BeanFactory的实现类

         是ApplicationContext的实现类,用于加载spring的配置文件

二、Spring的bean的创建方式(3种)

    1 、无参构造方法  <bean name=" " class="包名+类名">

           2 、静态工厂方式   <bean   name="  " class="包名+类名(工厂的类名)"  factory-method="工厂中的静态方法">

           3、实例工厂方式    首先先创建工厂对象

                                 <bean name="factory"   class="包名+类名(工厂类的名字)">

                                  <bean  name=" "   factory-bean="factory "   factory-method="工厂中的创建对象的方法"> 

三、Spring属性注入方式(DI)

        1、构造方法注入

     <constructor-arg name="" value=""></constructor-arg>(基本类型)

     <constructor-arg name="" ref=""></constructor-arg>     (引用类型) 

   指定参数位置    index  从0开始

        2、set方法注入

         <property name=""   value=""></property>(基本类型)

         <property  name=""  ref=""></property>(引用类型)

        3、p名称空间注入

            1、引入名称空间

            2、使用:

           3、基本类型:   p:属性名="值"   引用类型:  p:属性名-ref="值"

        4、spel注入

          #{表达式}    字符串的值要用单引号括起来

          也可以用对象点出来    #{user1.user.id}  都是 value

四、Spring复杂类型注入(4种)(DI)

         array:<array name="">  

                   <value></value>

                   <value></value>

                     </array>

         list:<list name="">  

                   <value></value>   

                    <ref   bean=""></ref>

                 </list>

         map:  <map name="">

                         <entry key="" value=""></entry>

                         <entry key="" value-ref=""></entry>

                      </map>

         

       properties:<property  name="">

                                <props>

                                       <prop  key="">value</prop>

                                        <prop  key="">value</prop>

                              </props>

                         </property>

                      

      

                            

Spring———bean的创建方式,注入方式,复杂类型注入 概括的更多相关文章

  1. spring Bean的三种配置方式

    Spring Bean有三种配置方式: 传统的XML配置方式 基于注解的配置 基于类的Java Config 添加spring的maven repository <dependency> ...

  2. Spring 源码(10)Spring Bean 的创建过程(1)

    Spring Bean的创建刚开始进行了一些准备工作,比如转换服务的初始化,占位符解析器的初始化,BeanDefinition元数据的冻结等操作,都是为了在创建Bean的过程中保证Bean的正确的创建 ...

  3. Spring 源码(11)Spring Bean 的创建过程(2)

    Spring Bean 的创建过程介绍了FactoryBean 的创建方式,那么接下来介绍不是FactoryBean的创建方式,在创建过程中,又会分为单例的Bean的创建,原型类型的Bean的创建等. ...

  4. Spring 源码(12)Spring Bean 的创建过程(3)

    继续上一篇Spring Bean的创建过程的解读,上一篇介绍了Spring在创建过程中doGetBean方法,在执行过程中会调用getSingleton方法并且设置一个lambda表达式,这个lamb ...

  5. Spring 源码(13)Spring Bean 的创建过程(4)

    Spring Bean的创建过程非常的复杂,上一篇重点介绍了Spring在创建Bean的过程中,使用InstantiationBeanPostProcessor进行提前创建Bean,我们可以通过CGL ...

  6. spring Bean装配的几种方式简单介绍

    Spring容器负责创建应用程序中的bean同时通过ID来协调这些对象之间的关系.作为开发人员,我们需要告诉Spring要创建哪些bean并且如何将其装配到一起. spring中bean装配有两种方式 ...

  7. Spring Bean自动装配有哪些方式?

    Spring 容器能够自动装配 Bean .也就是说,可以通过检查 BeanFactory 的内容让 Spring 自动解析 Bean 的协作者. 自动装配的不同模式: no - 这是默认设置,表示没 ...

  8. Spring Bean学习创建及使用<二>

    转自:http://blessht.iteye.com/blog/1162131 平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的 ...

  9. Spring Bean学习创建及使用<一>

    转自:http://glzaction.iteye.com/blog/1299441 Spring中依赖注入有三种注入方式: 一.构造器注入: 二.设值注入(setter方式注入): 三.Feild方 ...

随机推荐

  1. 原创《开源一个用 vue 写的树层级组件 vue-ztree》

    最近由于后台管理项目的需要,页面需要制作一个无限树的需求,我第一感就想到了插件 ztree,不过我觉得它太大了,还是自己动手丰衣足食吧. ztree 的 demo 地址:http://www.tree ...

  2. linux普通帐号可以临时切换到root(添加用户到sudoers中)

    一般,进入terminal之后,默认是普通账户能操作的功能,能访问的目录有限,需要临时切换到root账户 那么此时就需要配置sudoers文件,可以让普通用户通过sudo命令临时切换到root账户 首 ...

  3. bzoj 3597 [Scoi2014] 方伯伯运椰子 - 费用流 - 二分答案

    题目传送门 传送门 题目大意 给定一个费用流,每条边有一个初始流量$c_i$和单位流量费用$d_i$,增加一条边的1单位的流量需要花费$b_i$的代价而减少一条边的1单位的流量需要花费$a_i$的代价 ...

  4. SAP如何修改表的数据

     修改表: 事务代码:se16n  输入表名字   输入 /h 进入维护模式  修改 GD-EDIT 和 GD-SAPEDIT  内容为大写X.                          se ...

  5. topcoder srm 625 div1

    problem1 link 假设第$i$种出现的次数为$n_{i}$,总个数为$m$,那么排列数为$T=\frac{m!}{\prod_{i=1}^{26}(n_{i}!)}$ 然后计算回文的个数,只 ...

  6. ES6常用语法(上)

    ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了.它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应 ...

  7. JS(JavaScript)的初了解8(更新中···)

    1.函数都有返回值…… 而方法的本质也是函数,所以也有返回值. Document.getElementById() 返回的是获取的标签 getElementsByClassName()和getElem ...

  8. 解决 Cannot uninstall 'pyparsing' 问题

    参考 pyparsing 无法卸载导致安装 matplotlib 出错 解决 Cannot uninstall 'pyparsing' 问题 在安装 pydot 时遇到依赖 pyparsing 无法更 ...

  9. Nilearn 小记

    4.绘制脑图像 4.1 绘图功能 当打开了太多图像而不关闭时,会出现如下问题: 每次调用绘图函数都会创建一个新图像.当在非交互式设置(例如脚本或程序)中使用时,这些图像不会显示,但会常驻于内存中并最终 ...

  10. ZJOI2019游记

    Day-2 本蒟蒻有幸能去参加ZJOI2019,然而出发前就做好了爆0的准备. 坐了差不多6,7个小时的车,车上基本就是在颓知乎和打雀,然后就到了酒店. 招宝山酒店--本人住过的第一个四星级酒店,看上 ...