zoukankan      html  css  js  c++  java
  • 1、Spring入门

     

    1. 课程 1-2

    1.1. 看透软件 1-2

    1.2. 看透框架 1-2

    1.3. 看透SPRING 1-2

    1.4. Spring IOC基本应用 1-2

    2. 课程内容 2-2

    2.1. 看透软件 2-2

    2.2. 看透框架 2-3

    2.3. 看透SPRING 2-3

    3. Spring IOC 3-3

    3.1. Spring IOC 概述 3-3

    3.2. Spring IOC 编程 3-4

    3.3. 基本步骤 3-4

    3.4. 基本实现 3-4

    3.4.1. 创建Java项目 3-4

    3.4.2. 添加项目依赖 3-4

    3.4.3. 添加配置文件 3-4

    3.4.4. 定义描述bean 3-5

    3.4.5. 初始化spring容器 3-5

    3.4.6. 获取bean对象 3-6

    3.5. Spring Bean对象 3-6

    3.5.1. Bean对象的定义及初始化 3-6

    3.5.2. Bean对象的作用域及生命周期 3-7

    3.5.3. Bean对象的延迟加载 3-7

    3.6. Spring Bean依赖 3-8

    3.6.1. 依赖注入 3-8

    4. 课程总结 4-10

    4.1. 重点和难点分析 4-10

    4.2. 常见FAQ 4-11

    4.3. 作业 4-11

    1. 课程目标

      1.1. 看透软件

        软件定义?

        软件作用?

        软件实现?

      1.2. 看透框架

        框架的定义

        框架在软件中的一个定位

        框架应用的动机

      1.3. 看透SPRING

        Spring 是什么

        Spring 应用场景

        Spring 应用理由

        Spring 基本应用

      1.4. Spring IOC基本应用

        Spring IOC 概述

        Spring IOC 容器

        Spring Bean 对象

    2. 课程内容

      2.1. 看透软件

        软件的定义:程序和文档的集合

        程序:数据结构(线性结构,树结构,图结构)+算法

        软件解决的共性问题:IPO=输入+处理+输出

        互联网永恒不变的的基本架构:C(Client)/S(Server)

      2.2. 看透框架

        框架(FrameWork):软件中的一个半成品。

        框架要解决软件中的什么问题:共性问题(对象构建,对象持久化,应用架构)

        例如:

          1) Spring 能帮我们解决对象构建问题

          2) Spring MVC 能帮我们简化MVC架构的处理过程

          3) MyBatis能帮我们更好的解决数据的持久化问题

          4) ……

      2.3. 看透SPRING

        Spring 是什么? 轻量级的框架(Framework)

        Spring 应用动机? 从多个维度更好的解决问题(面向对象,面向切面,面向服务

        Spring 应用核心?IOCAOPMVC,。。。

    3. Spring IOC 

      3.1. Spring IOC 概述

        Spring IOC Spring框架一个核心,称之为控制反转,严格来讲就是我们将软件项目中对象的创建以及管理交给Spring。当我们使用对象时,从spring容器获取就可以了。

        FAQ?

          1) Spring 框架如何知道你写了哪些类,哪些类的对象由spring管理。

          a) xml配置文件的方式告诉它

          b) 以注解方式告诉它。

          2) Spring 会如何构建这些对象?(通过反射Class.forName(包名.类名”)

          3) Spring 会如何存储这些对象?(底层会借助map存储对象)

      3.2. Spring IOC 编程

      3.3. 基本步骤

        step01:创建JAVA项目(CGB-SPRING-DAY01-IOC-01

        step02:添加SPRING依赖(创建lib目录,然后将jar放入,添加到buildpath)

        step03:拷贝项目配置模板(直接放入src根目录)

        step04:定义并配置bean对象(目前可以简单理解为普通的java对象)

        step05:初始化SPRING容器,获取我们需要的bean对象。

      3.4. 基本实现

         3.4.1. 创建Java项目

          在eclipse中创建一个java项目,命名为CGB-SPRING-DAY01-IOC-01

      3.4.2. 添加项目依赖

        下载jar包,并添加到项目的build path中。

       3.4.3. 添加配置文件

      3.4.4. 定义描述bean

        在配置文件中添加

               <bean id="date" class="java.util.Date"/>

      3.4.5. 初始化spring容器

        private static ClassPathXmlApplicationContext ctx;
    
          static{
    
          ctx=new ClassPathXmlApplicationContext(
    
          "applicationContext.xml");
    
        }

      3.4.6. 获取bean对象

    public static void main(String[] args) {
    
      System.out.println(ctx);
    
      Date date1=(Date)ctx.getBean("date");
    
      System.out.println(date1);
    
    }

      3.5. Spring Bean对象

        3.5.1. Bean对象的定义及初始化

          Bean类型的创建:

            1) 访问修饰符:public (尽量使用public

            2) 提供无参的构造函数(可以为私有)

            Bean 类型在xml文件中的配置(通过idname属性指定bean名称,class属性指定类全名)

              <bean id=”helloService” class=”bean.HelloService”/>

              说明:bean的这个名字必须具备全局唯一性。

            Bean对象的初始化:(由spring工厂负责创建,并存储到spring容器,例如map

              1) 直接通过无参构造函数构建

              2) 借助类型的静态工厂方法构建

              3) 借助实例对象相关方法获取对象

        3.5.2. Bean对象的作用域及生命周期

          Spring容器管理的Bean对象默认是单例作用域(singleton),假如希望每次获取对象都要创建新的对象可以采用prototype作用域。

          Spring Bean对象的作用域可以通过Bean元素中的scope属性进行指定,例如。

            将Bean作用域设置为singleton

    <bean id="helloService" class="bean.HelloService" scope="singleton" init-method="doInit" destroy-method="doDestroy"/>

             Bean作用域设置为prototype

      <bean id="date"  class="java.util.Date" init-method="doInit" scope="prototype"/>

          其中Bean中的init-method,destroy-method属性用于指定bean对象的生命周期方法,

            对于init-method属性指定的方法会在对象构建完成以后自动调用。

            对于destory-method属性指定的方法,假如bean的作用域是singleton,那在spring容器销毁时会自动执行。

          FAQ?

            1.Spring 中的作用域的配置是从哪些维度解决软件中的共性问题?

            1)对象创建(单例,多例)

            2)对象管理(单例对象会存储到map,需要时从map获取)

            3)对象销毁 (单例对象会在容器销毁时自动销毁,然后被GC)

        3.5.3. Bean对象的延迟加载

          对于Spring而言,它管理的Bean对象默认情况下会在bean容器启动时创建,并初始化。但是有些对象我们可能长时间不用,这样就会造成一定

          的资源浪费。此时我们可以对这些Bean设置为延迟加载,所谓延迟加载就是在容器启动时不会初始化它,只有在使用时才初始化。

          Bean对象延迟加载设置:

            1) bean元素内部设置(借助lazy-init属性 )

            2) beans根元素中设置(借助default-lazy-init属性)

        例如:

    <bean id="helloService"  class="bean.HelloService" scope="singleton" init-method="doInit" destroy-method="doDestroy" lazy-init="true"/>

        FAQ: 对象的延迟加载是spring从哪些维度解决软件中的共性问题。

          1) 内存使用(对象不使用时尽量先不要占用内容)

          2) 应用性能 (结合场景,大对象频繁就不适合延迟加载)

      3.6. Spring Bean依赖

        3.6.1. 依赖注入

          Spring 框架除了要实现对Bean对象的初始化以及管理,还要实现对这个Bean对象所依赖的属性值的注入,常用的注入方式有set注入和构造注入。

     

    4. 课程总结

    4.1. 重点和难点分析

    1. Spring IOC 理解
    2. Spring Bean 对象初始化及依赖注入

    4.2. 常见FAQ

    1. Spring 底层创建对象会借助什么技术?
    2. Spring Bean对象常用作用域有哪些?
    3. Spring Bean对象的延迟加载的实现目的是什么?
    4. Spring Bean对象依赖注入的实现方式有哪些?
    5. ……

    4.3. 作业

    1. 总结课堂知识点
    2. 完成课堂案例
    3. 预习Spring依赖(集合注入,自动装配)
    4. 尝试使用不同方式实现某个类单例设计(单例模式,至少5种)
    5. 尝试自己构建一个Spring工厂(xmlbean),例如ApplicationContext.
  • 相关阅读:
    HDU 1789 Doing Homework again(馋)
    Understanding and Using HRMS Security in Oracle HRMS
    BZOJ 1003 ZJOI2006 物流运输trans 动态规划+SPFA
    oracle常规任务
    征服OA 飞鱼工作流程的在线培训课程(两)HTML形成基于
    《iOS8 Swift编程指南》类书图像
    js css 实现简单的计算器
    Android四个基本组件(2)之Service 服务与Content Provider内容提供商
    Unity UGUI——Rect Transform包裹(Anchor Presets)
    NYOJ 1076 计划数(公式 要么 递归)
  • 原文地址:https://www.cnblogs.com/xiangyuqi/p/8653532.html
Copyright © 2011-2022 走看看