• Spring第一天


    框架部分:

    Spring5

    SpringMVC1

    Mybatis2

     

    Spring

    第一天:学习IOCDI

    第二天:简化配置

    第三天:AOP面向切面编程

    第四天:AOP重点练习

    第五天:JDBC整合和声明式事务

    SSH

    Sturs2(替代Servlet) 、SpringHibernate(取代JDBC操作)

    SpringMVC(替代Servlet)、SpringMybatis(取代JDBC操作)

    Spring框架:

    特点:1.轻量级低侵入性框架 降低耦合度

    2.具有整合多种三方框架的能力

    2. Spring框架的IOC(控制反转)

    //原来对象的创建 是由 程序员控制

      Girl g = new Girl();

    //控制反转 是由Spring容器来创建

    Girl g2 = Spring框架.getBean(“美女”);

     

    3. 创建Spring框架的Helloworld

    1. 导入jar包 (7个)
    2. 创建业务中的类
    3. 去配置文件中添加配置内容
    4. 创建Spring容器
    5. 通过容器获取对象

     

     

    Pojoentitysbeans 一样

    3.1导入jar

     

    3.2创建类

    3.3添加约束文件

     

     

     

    3.4创建配置文件

    3.4.1最简单最常用 从别的工程复制过来

    3.4.2src下面创建xml文件

     

    3.5.通过自定义模板代码添加约束

    3.6 .在配置文件里面添加内容

     

    3.7.创建Spring容器 进行测试

    1. Spring框架创建对象的过程:

    创建Spring容器对象的时候 加载了 Spring的核心配置文件,在配置文件中加载了被Spring框架管理的对象的信息,当Spring容器创建时容器所管理的对象同时创建出来,当用户需要使用对象的时候通过容器的getBean()写进去对象的id 获取对象,实际上在Spring容器中存在一个map对象 用来保存所管理的对象 用户配置的beanid 就是 map对象中的key ,用户所以可通过key去获取spring中的对象

     

    1. Spring框架获取对象的方式有两种

    a) 通过ID获取

    b) 通过Class(类型获取)

    在工作中通过id获取更常用,因为通过类型获取有可能在配置文件中出现多个同类型的bean 会报以下错

     

    1. Spring框架创建对象的方式

    3+1种方式创建对象

    6.1构造方法创建对象

    必须包含无参的构造方法

    如果需要有有参构造方法 必须自己添加无参构造方法

    6.2 静态工厂创建对象

    通常通过工厂创建抽象类对象或接口类的实现类

    bean标签中 添加一个 factory-method =”创建对象的方法名称”

    6.3 实例工厂创建对象

    需要在配置文件中添加两个bean标签 见下图

    6.4 Spring工厂创建对象

    让工厂类实现 FactoryBean接口并实现接口中的三个方法:

    1. getObject   返回创建的对象
    2. getObjectType 返回对象的类型
    3. isSingleton 控制是否是单例

    总结:四种创建对象的方式中 通过构造方法创建的对象的方式最常用

    1. 别名标签

    可以给spring所管理的对象起多个别名 获取对象的时候可以起到id的作用

    1. 单例和多例

    如果把对象设置为多例 Spring容器不再维护对象的生命周期 并且对象的创建变成了 懒加载模式

    9.懒加载

    1. Spring框架中对象的生命周期方法

    Init为初始化方法  destroy为销毁方法

    对象的生命周期:

    创建对象的时候会先调用构造方法  对象创建完之后调用init方法  执行对象的各种业务方法 最后容器销毁的时候执行对象的destroy方法

    1. SpringDI(属性注入/依赖注入)

    有两种注入方式:

    10.1 set方法注入

    此注入方式 依赖于属性的set方法

    10.2 构造方法注入

    <bean id="person" class="cn.tedu.pojo.Person" >

     <property name="name" value="诸葛亮"></property>

      <property name="age" value="18"></property>

       <property name="friends">

        <list>

        <value>蔡文姬</value>

        <value>黄忠</value>

        <value>马可波罗</value>

        </list>

        </property>

         <property name="map">

          <map>

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

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

          </map>

         </property>

         

         <property name="set">

          <set>

          <value>大乔</value>

          <value>小乔</value>

          <value>貂蝉</value>

          </set>

         </property>

         <property name="properties">

          <props>

          <prop key="p1">pppp1</prop>

          <prop key="p2">pppp2</prop>

          </props>

         </property>

         

         <property name="strings">

          <array>

          <value>aaa</value>

          <value>bbb</value>

          </array>

         </property>

         <property name="myDog" ref="dog"></property>

       

    </bean>

    1. 介绍Spring框架
    2. 创建了一个Helloworld
    3. 手动导入jar7
    4. 获取对象的2id  类型
    5. 创建对象的41.构造方法创建 2.静态工厂 3.实例工厂3.spring工厂
    6. 单例 scope=singleton/prototype
    7. 懒加载  单例默认是非懒加载  多例是懒加载 全局配置
    8. 生命周期方法 init  destroy
    9. DI注入

     

     

  • 相关阅读:
    深入理解计算机系统(3.2)---数据格式、访问信息以及操作数指示符
    深入理解计算机系统(3.1)---走进汇编的世界
    linux下的usb抓包方法
    Linux中查看系统资源占用情况的命令
    中药介绍
    shell中的for循环用法详解
    Linux上shell脚本date的用法
    linux下的shell运算(加、减、乘、除)
    [linux time命令学习篇] time 统计命令执行的时间
    一文简述多种强化学习算法,重要概念和术语一览
  • 原文地址:https://www.cnblogs.com/dxp5201/p/8921741.html
Copyright © 2020-2023  润新知