第一天

作者: 承诺被后的承诺 | 来源:发表于2019-05-12 12:16 被阅读0次

    1.2 Spring4学习路线

    Spring第一天:Spring的概述、SpringIOC入门(XML)、Spring的Bean管理、Spring属性注入

    Spring第二天:Spring的IOC的注解方式、Spring的AOP开发(XML)

    Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

    Spring第四天:SSH的整合、HibernateTemplate的使用、OpenSessionInViewFilter的使用。

    1.3 Spring的概述

    1.3.1 Spring的概述

    1.3.1.1 什么是Spring##

    11.png

    Spring:SE/EE开发的一站式框架。

    一站式框架:有EE开发的每一层解决方案。

    WEB层 :SpringMVC

    ervice层 :Spring的Bean管理,Spring声明式事务

    DAO层 :Spring的Jdbc模板,Spring的ORM模块

    1.3.1.2 为什么学习Spring

    1.png

    1.3.1.3 Spring的版本

    Spring3.x和Spring4.x

    1.3.2 Spring的入门(IOC)

    1.3.2.1 什么IOC

    IOC: Inversion of Control(控制反转)。

    控制反转:将对象的创建权反转给(交给)Spring。

    1.3.2.2 下载Spring的开发包

    官网:http://spring.io/

    1.3.2.3 解压Spring的开发包

    2.png

    docs :Spring的开发规范和API

    libs :Spring的开发的jar和源码

    schema :Spring的配置文件的约束

    1.3.2.4 创建web项目,引入jar包

    3.png
    4.png

    1.3.2.5 创建接口和类

    5.png
    6.png

    问题:
    如果底层的实现切换了,需要修改源代码,能不能不修改程序源代码对程序进行扩展?


    7.png

    1.3.2.6 将实现类交给Spring管 6.png

    理 ###

    在spring的解压路径下spring-framework-4.2.4.RELEASE\docs\spring-framework-reference\html\xsd-configuration.html


    8.png

    1.3.2.7 编写测试类##

    9.png

    1.3.2.8 IOC和DI(*****)##

    IOC:控制反转,将对象的创建权反转给了Spring。
    DI:依赖注入,前提必须有IOC的环境,Spring管理这个类的时候将类的依赖的属性注入(设置)进来。
    面向对象的时候
    依赖
    Class A{

        }
        
        Class B{
            public void xxx(A a){
        
        }
        }
        继承:is a
        Class A{
        
        }##  ##
        Class B extends A{
        
        }
        聚合:has a
    

    1.4 Spring的工厂类

    1.4.1 Spring的工厂类

    1.4.1.1 Spring工厂类的结构图

    10.png

    ApplicationContext继承BeanFactory。

    1.4.1.2 BeanFactory :老版本的工厂类

    BeanFactory:调用getBean的时候,才会生成类的实例。

    1.4.1.3 ApplicationContext :新版本的工厂类

    ApplicationContext:加载配置文件的时候,就会将Spring管理的类都实例化。
    ApplicationContext有两个实现类

    ClassPathXmlApplicationContext :加载类路径下的配置文件

    FileSystemXmlApplicationContext :加载文件系统下的配置文件

    1.5 Spring的配置

    1.5.1 XML的提示配置

    1.5.1.1 Schema的配置

    12.png

    1.5.2 Bean的相关的配置

    1.5.2.1 <bean>标签的id和name的配置

    id :使用了约束中的唯一约束。里面不能出现特殊字符的。

    name :没有使用约束中的唯一约束(理论上可以出现重复的,但是实际开发不能出现的)。里面可以出现特殊字符。

    Spring和Struts1框架整合的时候

    <bean name=”/user” class=””/>

    1.5.2.2 Bean的生命周期的配置(了解)

    init-method :Bean被初始化的时候执行的方法

    destroy-method :Bean被销毁的时候执行的方法(Bean是单例创建,工厂关闭)

    1.5.2.3 Bean的作用范围的配置(重点)

    scope :Bean的作用范围

    singleton :默认的,Spring会采用单例模式创建这个对象。

    prototype :多例模式。(Struts2和Spring整合一定会用到)

    request :应用在web项目中,Spring创建这个类以后,将这个类存入到request范围中。

    session :应用在web项目中,Spring创建这个类以后,将这个类存入到session范围中。

    globalsession :应用在web项目中,必须在porlet环境下使用。但是如果没有这种环境,相对于session。

    1.6 Spring的Bean管理(XML方式)

    1.6.1 Spring的Bean的实例化方式(了解)

    Bean已经都交给Spring管理,Spring创建这些类的时候,有几种方式:

    1.6.1.1 无参构造方法的方式(默认)

    编写类


    13.png

    编写配置


    14.png

    1.6.1.2 静态工厂实例化的方式

    编写Bean2的静态工厂


    15.png

    配置


    16.png

    1.6.1.3 实例工厂实例化的方式

    Bean3的实例工厂


    17.png

    配置


    18.png

    1.6.2 Spring的属性注入

    1.6.2.1 构造方法的方式的属性注入

    构造方法的属性注入


    19.png

    1.6.2.2 Set方法的方式的属性注入

    Set方法的属性注入


    20.png

    Set方法设置对象类型的属性


    21.png

    1.6.2.3 P名称空间的属性注入(Spring2.5以后)

    通过引入p名称空间完成属性的注入:

    写法:

    普通属性 p:属性名=”值”

    对象属性 p:属性名-ref=”值”

    P名称空间的引入


    22.png

    使用p名称空间


    23.png

    1.6.2.4 SpEL的属性注入(Spring3.0以后)

    SpEL:Spring Expression Language,Spring的表达式语言。

    语法:#{SpEL}


    24.png

    1.6.3 集合类型属性注入(了解)

    1.6.3.1 配置

    <!-- Spring的集合属性的注入============================ -->
    <!-- 注入数组类型 -->
    <bean id="collectionBean" class="com.itheima.spring.demo5.CollectionBean">
        <!-- 数组类型 -->
        <property name="arrs">
            <list>
                <value>王东</value>
                <value>赵洪</value>
                <value>李冠希</value>
            </list>
        </property>
        
        <!-- 注入list集合 -->
        <property name="list">
            <list>
                <value>李兵</value>
                <value>赵如何</value>
                <value>邓凤</value>
            </list>
        </property>
        
        <!-- 注入set集合 -->
        <property name="set">
            <set>
                <value>aaa</value>
                <value>bbb</value>
                <value>ccc</value>
            </set>
        </property>
        
        <!-- 注入Map集合 -->
        <property name="map">
            <map>
                <entry key="aaa" value="111"/>
                <entry key="bbb" value="222"/>
                <entry key="ccc" value="333"/>
            </map>
        </property>
    </bean>
    

    1.7 Spring的分模块开发的配置

    1.7.1 分模块配置

    1.7.1.1 在加载配置文件的时候,加载多个

    25.png

    1.7.1.2 在一个配置文件中引入多个配置文件

    26.png

    相关文章

      网友评论

          本文标题:第一天

          本文链接:https://www.haomeiwen.com/subject/fgqcaqtx.html