Spring -ch01

Spring

认识spring

spring框架减轻了对项目模块间,类与类之间的管理难度,帮助开发人员创建对象,管理对象间的关系,实现模块间,类之间的解耦合

依赖:若classA使用了classB的属性和方法,叫做类A依赖B)

官网:https://spring.io/projects/spring-framework

image-20210120144055382

体系结构:

image-20210120152024017

前言:

学习框架,首先要知道:所谓框架,其实就是一个别人写好的软件,我们要做的是

  1. 知道框架能做什么,例如mybatis -- 访问数据库,对表中数据进行增删改查

  2. 学习框架语法,知道框架通过哪些步骤完成一个功能

  3. 有了以上运用基础后再去认识框架的内部实现原理,进而实现一个框架

现在正式开始进入Spring的学习:

Ioc控制反转(Inversion of Control)

概念

Ioc是一种思想,描述的是:把对象的创建,赋值,管理工作交给代码外的容器实现,也就是对象的创建是由其他外部资源完成

控制是指:创建对象,对象的属性赋值,对象间的关系管理

解释反转之前,先介绍其相反概念:开发人员在代码中使用new构造方法创建对象,开发人员主动管理对象,这种方式可以理解为正转,那么就不难理解所谓

反转即是:将原来的开发人员管理创建对象的权限交给代码之外的容器实现,由容器代替开发人员管理对象,创建对象,给属性赋值等工作。

这里的容器,就是一个服务器软件,一个框架(spring)

为什么要使用ioc?:目的就是减少对代码的改动,也能实现不同的功能,实现解耦合。

现在想一下 Java中创建对象有哪些方式?

  1. 构造方法new

  2. 反射

  3. 序列化

  4. 克隆

  5. 动态代理

  6. ioc:容器创建对象

ioc的体现

以servlet为例 :

  1. 创建类继承HttpServlet

  2. 在web.xml 注册servlet使用

    myservlet

    com.andy.controller.MyServlet

  3. 注意上面代码中并没有创建Servlet对象的语句:MyServlet myservlet = new MyServlet()

  4. 其实这里的Servlet就是由Tomcat服务器帮我们创建的,Tomcat就是一个容器,里面存放着Servlet对象,Listener,Filter等

IoC的技术实现:DI

DI(Dependency Injeciton)依赖注入,只需要在程序中提供要使用的对象名称即可,至于对象如何在容器中创建,赋值,查找都有容器内部实现

Spring使用DI实现了Ioc的功能,底层创建对象使用的是反射机制

例子:在idea中使用spring创建对象

配置beans文件

image-20210123160957362

测试

image-20210123161039050
image-20210125143933828

详细源码见https://github.com/GigoGigo-CH/Learn_Spring/tree/master/ch01-hello-spring

posted @ 2021-01-23 16:12  盐盐盐の锅  阅读(65)  评论(0编辑  收藏  举报