Spring学习笔记

JavaEE_Spring

知识点

  1. IOC & DI 的概述
  2. 配置 Bean 方式: 1) 基于XML文件的方式 2)基于注解的方式
  3. Bean 的配置方式: 1)经过全类名(反射)、 2)经过工厂方法(静态工厂方法 & 实例工厂方法)、 3)FactoryBean
  4. IOC 容器 BeanFactory & AApplicationContext 概述 1) BeanFactory 2)AApplicationContext
  5. 依赖注入的的方式: 1)属性注入 2)构造器注入 3)工厂方法注入,不多用不推荐
  6. 注入属性细节
  7. 自动装配
  8. bean 之间的关系: 1)继承 2)依赖
  9. bean 的做用域 1)singleton 2) prototype 3) WEB 环境做用域
  10. 使用外部属性文件
  11. spEL
  12. IOC 容器中 Bean 的生命周期
  13. Spring4.X 新特性:泛型依赖注入

1. IOC & DI 的概述

IOC : 思想 - 反转资源的获取的方向。【控制反转】
传统的资源查找方式 要求组件向容器发起请求查找资源,做为回应,容器适时的返回资源。
        应用了 IOC 以后,则是 容器主动的将资源推送给它所管理的组件,组件所要作的仅是选择一种合适的方式来接受资源。
        这种行为也被称为查找的 被动形式
DI : IOC 的另外一种表达方式。【依赖注入】
更为直接的:组件以一些预约好的方式(如:setter方法)来接受来自 容器的资源注入。

2. 基于XML文件的方式 配置 bean

`配置 bean 全类名(反射)`
         bean.id : 标识做用,可自定义名字。经过 id  来应用bean
         bean.class : bean 的全类名,经过反射的方式 在ioc 容器中建立 bean 。因此要求 bean 中要有无参构造
         property.name : bean setter方法名字(若是没有刻意更改就是属性名)
         property.value : 
                    传输值:1) 能够用构造器 —— 不推荐,由于多参数的时候,须要顺序一直,一个错都错
                           2)set 方法。灵活自由,此时须要无参构造
         
        <bean id="bean1" class="HelloWorld">
            <property name="name" value="lsy"></property>
        </bean>

5. 依赖注入的的方式:

一、属性注入——setter方法 最经常使用
二、构造器注入,用 <constructor-arg> 须要考虑构造器 参数 数量类型和顺序,错一个都不行
工厂注入法,不多用,不推荐
<constructor-arg>
三、 级联属性须要 get 方法
<!--
        给级联属性赋值
         注意:给级联属性赋值,须要有对应的getter方法
         -->
        <bean id="carItem" class="ashley.spring.beans.CartItem">
            <property name="book" ref="book"></property>
            <!-- 赋值 -->
            <property name="book.id" value="2"></property>
            <property name="book.name" value="Oracle"></property>
            <property name="count" value="30"></property>
            <property name="amount" value="10.2"></property>
        </bean>
四、 集合属性赋值

可使用<list> <map> <set> 集合里也能够套嵌集合spring

<bean id="person" class="ashley.spring.beans.collections.Person">
                <property name="name" value="小李"></property>
                <property name="age" value="100"></property>
                <property name="cars">
                    <list>
                        <ref bean="car1"></ref>
                        <ref bean="car2"></ref>
                        <ref bean="car3"></ref>
                    </list>
                </property>
          </bean>
相关文章
相关标签/搜索