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 应用核心?IOC,AOP,MVC,。。。

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文件中的配置(通过id或name属性指定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工厂(xml,bean),例如ApplicationContext.

转载于:https://www.cnblogs.com/xiangyuqi/p/8653532.html

1、Spring入门相关推荐

  1. IDEA下——Spring入门程序

    创建一个Maven的项目,我的项目结构如下: 在pom文件里写下需要导入的依赖: <?xml version="1.0" encoding="UTF-8" ...

  2. spring入门详细教程(五)

    前言 本篇紧接着spring入门详细教程(三),建议阅读本篇前,先阅读第一篇,第二篇以及第三篇.链接如下: Spring入门详细教程(一) https://www.cnblogs.com/jichi/ ...

  3. Spring入门详细教程(四)

    前言 本篇紧接着spring入门详细教程(三),建议阅读本篇前,先阅读第一篇,第二篇以及第三篇.链接如下: Spring入门详细教程(一) https://www.cnblogs.com/jichi/ ...

  4. Spring入门详细教程(三)

    前言 本篇紧接着spring入门详细教程(二),建议阅读本篇前,先阅读第一篇和第二篇.链接如下: Spring入门详细教程(一) https://www.cnblogs.com/jichi/p/101 ...

  5. Spring入门详细教程(二)

    前言 本篇紧接着spring入门详细教程(一),建议阅读本篇前,先阅读第一篇.链接如下: Spring入门详细教程(一) https://www.cnblogs.com/jichi/p/1016553 ...

  6. Spring入门介绍:

    Spring入门介绍 Spring诞生: 创建Spring的目的就是用来替代更加重量级的的企业级Java技术 简化Java的开发 基于POJO轻量级和最小侵入式开发 通过依赖注入和面向接口实现松耦合 ...

  7. Spring入门5.事务管理机制

    Spring入门5.事务管理机制 20131126 代码下载 : 链接: http://pan.baidu.com/s/1kYc6c 密码: 233t 回顾之前的知识,Spring 最为核心的两个部分 ...

  8. “Spring入门”教程系列

    大家好, 我很高兴向您介绍"Spring入门"教程系列! 这是一系列文章,最初由我们的JCG合作伙伴 Michal Vrtiak在vrtoonjava博客上撰写 . 本系列中将逐步 ...

  9. Spring入门与常用配置

    什么是Spring Spring:SE/EE开发的一站式框架. 一站式框架:有EE开发的每一层解决方案.  WEB层 :SpringMVC   Service层 :Spring的Bean管理,Spri ...

  10. Spring入门示例及相关概念介绍

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Spri ...

最新文章

  1. 字符串翻转的两种方法(C++版本)
  2. oracle解密des乱码,Oracle中des等算法的加解密
  3. 六种 主流ETL 工具的比较(DataPipeline,Kettle,Talend,Informatica,Datax ,Oracle Goldengate)...
  4. SQL语言之DQL语言学习(八)多表查询/链接查询 SQL92学习
  5. 故乡与文学:一场别开生面的跨年代文学对话(一)
  6. dhclient常用命令
  7. [转载]Oracle监听器安装与设置(2)
  8. [交叉验证]机器学习中分类器的选择
  9. 异贝,通过移动互联网技术,为中小微实体企业联盟、线上链接、线上线下自定义营销方案推送。案例14
  10. ORACLE P6 21.12 系统虚拟机(VM)分享
  11. 终于有人把分布式机器学习讲明白了
  12. 知网免费下载期刊文献
  13. [K8S] PV动态供给
  14. 2018-8-10-WPF-修改图片颜色
  15. 悟以往之不谏,知来者之可追~
  16. 天津大学计算机学院考研复试名单,天津大学计算机学院09考研复试第一批名单...
  17. 软件测试b s环境如何配置,B/S架构测试环境搭建_SQLServer篇(Win32系统)
  18. 输出图片任意点的像素坐标
  19. Yii Framework 开发教程(30) Zii组件-ListView 示例
  20. ps 2022 保存打开文件闪退解决方法

热门文章

  1. finebi跳转到本地html文件,组件跳转- FineReport帮助文档|报表开发|报表使用|学习教程...
  2. 【数据库原理实验(openGauss)】实验报告
  3. java getResourceAsStream方法
  4. hdfs--Structured Streaming--console案例
  5. 【Spring】- 属性注入方式
  6. HBase实战 | 从MySQL到HBase:数据存储方案转型的演进
  7. Focus Stacking
  8. pandas.DataFrame.rank
  9. 搭建Discuz论坛的两种方式
  10. spring、spring-boot配置文件属性内容加解密