Spring入门——day1

一 . 简介

  Java EE编程领域的一个轻量级开源框架(容器)

  优点:   

    轻量级、非入侵式(不会对原有代码产生影响)

    其目的是解决企业应用开发中的复杂性

    控制反转(IOC)和面向切片编程(AOP)

    支持对事物的处理,对框架的整合

  依赖

    <dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-webmvc</artifactId>
    <version>5.3.16</version>
    </dependency>

  组成

  

 

   

 

   1 . Spring:一个快速开发的脚手架,可以快速开发单个微服务,约定大于配置

   2 . Spring Cloud:基于SpringBoot实现

 

二 . IOC理论

   1 . 前言:

       在入门学习中,我们会通过需求去改写源代码,但是如果设计代码量十分大时,其成本极高

       所以我们可以使用一个 set()接口实现

      

 

       以前程序都是主动创建对象,控制权在程序员

       使用 set 注入后,程序不再具有主动性,而是被动接受对象,主动权交给用户

       好比需要在外部使用 java 中 private 类中的属性时,需要使用 set 和 get 方法进行注入和获取

       这就是控制反转的意思,程序耦合性大大降低  

 

  2 . 控制反转:Inversion of Control

    一种设计思想,DI(依赖注入)时实现 IOC 的一种方法

    在没有 IOC 的程序中,我们使用面向对象编程,对象的创建与其依赖关系完全硬编写在代码中,对象的创建由程序自己控制,其他人无法控制

    使用控制反转后,对象的创建交由第三方(或者说是用户),反转由此而来

    

     spring 相当于图二中间位置的齿轮,将各部分的对象存放在容器中,需要时从容器中取出即可

    

    所以控制反转是一种通过描述(XML活泼注解) 并通过第三方来生产或获取特定对象的方式

    在Spring中实现控制反转的是 IOC 容器,其实现方式是依赖注入(DI:Dependency Injection)

    PS:如果要在Java程序中实现一些面向对象编程的常见需求,只能手写大量胶水代码。

       Java Bean正是编写这套胶水代码的惯用模式或约定。这些约定包括getXxx、setXxx、isXxx、addXxxListener、XxxEvent等

       通俗点讲,java Bean 就是一个程序通用的模板

 

三 . 第一个程序:hello Spring

  1 . 

    

  2 . 

    

 

  3 . 

    

 

   4 . 总结:

      用了Spring后就不用再去程序中改动代码来实现不同的操作了,

      只需要在 XML 配置文件中的 Beans 标签下注册 bean 来实现对 对象的一系列操作

      IOC 用一句话描述就是:对象由 Spring 来创建,管理,装配

 

 四 . IOC 的创建方式

  1 . 默认使用 无参构造 创建对象

     

 

  2 . 使用有参构造 , 通过参数下标 创建

      

 

 

  3 . 使用有参构造,通过参数类型 创建(不推荐使用)

      

 

 

  4 . 使用有参构造,直接通过 参数名 创建 (重点掌握)

      

 

 

  5 . 我们再创建一个 UserT 的实体类,但是测试类中还是调用的 User 类,结果输出结果如下:  

    

 

 

  PS:说明在 getBean 的时候,配置文件中(容器中)所管理的所有对象都已经被创建了,都执行了每个类的构造方法,

     所以会有即使没有调用 UserT类但还是执行了 UserT类 中构造方法中的输出语句

 

五 . Spring 配置说明

  1 . 

    

 

  2 . import :一般用于团队开发使用,可将多个配置文件,导入合并为一个

        使用时直接使用 applicationContext 这个总配置文件即可

    

 

     也可以在引用 配置文件时,写入多个(不规范)

    

 

 

 

    

posted @ 2022-03-03 12:02  TRUENO-86  阅读(37)  评论(0)    收藏  举报