首页 > 其他分享 >Spring笔记1——核心容器

Spring笔记1——核心容器

时间:2023-02-22 08:45:00浏览次数:33  
标签:容器 spring 笔记 bean Spring IoC 注入

2023.02.16

spring是一大套技术集,包括:

  • Spring Framework:举足轻重,底层框架,被其他所有技术所依赖。
  • Spring Boot:加速开发。
  • Spring Cloud:分布式开发。

  spring5.0全面支持jdk8(想做spring开发,jdk必须在8以上)。

 

Spring Framework系统架构

系统架构图中上层依赖于下层

Data Integration:spring内部不仅提供了访问数据集的技术 而且允许spring技术与其他的技术整合使用 集成即包容其他技术

Transactions:spring在事务上做了很大突破 提供了一种效率很高的事务开发方案

AOP:和面向对象编程一样 也是一种编程思想 增强原始程序的功能

Core Container:容器用来装对象(spring是用来管对象的架构)

 

IoC(Inversion of Control)控制反转和DI(Dependency Injection)依赖注入

使用对象时,由主动new产生对象转换为由外部提供对象,此过程中对象创建控制权由程序转移到外部,此思想称为控制反转。

Spring技术对IoC思想进行了实现

Spring提供了一个容器,称为IoC容器,用来充当ToC思想中的外部

IoC容器负责对象的创建、初始化等一系列工作,被创建或被管理的对象在IoC容器中统称为 在容器中建立bean与bean之间的依赖关系的整个过程,称为DI(Dependency Injection)依赖注入

目标:充分解耦
·使用IoC容器管理bean (IoC)
·在IoC容器内将有依赖关系的bean进行关系绑定(DI)

最终效果
·使用对象时不仅可以直接从IoC容器中获取,并且获取到的bean已经绑定了所有的依赖关系

Ioc入门案例(XML版)

 

 

 

 

 

 

 DI入门案例(XML版)

 

 

(这个setter方法是容器在执行)

 

 

Bean 

bean基本配置

 

 

 bean别名配置

 

 

 bean的别名,可以在getBean()里被使用,也可以在ref里被使用。

bean作用范围

 

 

 

 若spring造出的bean不是非单例的,那么bean的数量会很多。spring管理的对象是可以复用的对象(所以就默认用单例模式创造)。

实例化bean的三种方法——构造方法(常用)

 

spring创造bean的时候调的是无参的构造方法(使用对象时传参会报错)。

看spring的报错:拉下去看最后一行,大概率能解决,不行就再看倒数第二个。

实例化bean的三种方法——静态工厂(了解)

 

 

实例化bean的三种方法——实例工厂(了解)

 

 

实例化bean的四种方法——FactoryBean

 

 

 

 bean生命周期控制——两种方法

 

 

 

 

 

 

bean生命周期

 

bean销毁时机

 

 

 依赖注入

四种注入方式

引用类型就是对象之类的,简单类型就是数字,字符串之类的。

 

setter注入——引用类型

 

 

 可以在一个bean标签下面写多个property标签以注入多个引用类型对象。

setter注入——简单类型

 

 

 

引用数据类型用rel,基本数据类型用value。

构造器注入——引用类型(了解)

 

 

构造器注入——简单类型(了解)

构造器注入相比setter注入,只是方法从setter方法换成了构造方法,都是在这两种方法内传值。还有就是xml配置文件的标签与格式有所不同。

使用构造器注入时,标签<constructor-arg>中的属性name是对应类的构造函数中形参的名字,故而这种方法耦合度比较高。

构造器注入——参数适配(了解)

 

 

 依赖注入方法选择

 

 依赖自动装配

 

 

依赖自动装配方式

 

 

 

 集合注入

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 spring加载properties文件

 

 

 

在spring中开辟了一个新的命名空间context。(把beans改成context)

 

 

 

 

有个系统环境变量名也叫username,优先级高于properties里的username,所以properties里的命名为username时会出现错误。把context标签里的system-properties-mode设置成NEVER后就不会加载系统变量,也就不会出现这个问题。

 

最规范的格式:

 

 

 表示可以读取多个properties文件,而且不仅可以从当前工程里读,还可以从jar包里读。

 

 

 容器

  创建容器

 

 

 

 获取bean

 

 

 

 容器类层次结构图

 

 

 

BeanFactory

 

 BeanFactory是所有容器类的顶层接口

总结

 

 

 

 

 

标签:容器,spring,笔记,bean,Spring,IoC,注入
From: https://www.cnblogs.com/ban-boi-making-dinner/p/17126815.html

相关文章

  • 读Java实战(第二版)笔记17_反应式编程
    1. 再次出现在聚光灯下的原因1.1. 基本思想已经有二三十年的历史1.2. 大数据1.2.1. 以PB计量的大数据1.2.2. 当前互联网中流量最大的部分是移动流量1.2.3. 物......
  • ssm学习笔记23001-log4j的接入和使用
    log4j的接入和使用1、在pom文件中配置log4j的依赖新建配置文件log4j.xml,名字必须是这个配置内容如下:这样我们执行的sql语句等日志信息就能查看了<?xmlversion="1.0"......
  • Vue笔记
    Vue快速入门笔记七大属性学习vue我们必须之到它的7个属性,8个方法,以及7个指令。787原则。el属性用来指示vue编译器从什么地方开始解析vue的语法,可以说是一个占位符......
  • ssm学习笔记23001-mybatis接入和数据库连接实现一个插入数据的操作
    mybatis:是什么,用来干嘛的,同类竞品中有何种优势?mybatis在idea中的引入:1、创建一个空工程2、创建一个空的maven文件:会自动生成一个pox文件,打包类型配置为jar,添加mybat......
  • 小程序笔记(2)
    小程序笔记(2)rpx(responsivepixel,把屏幕等分为750份,即100vw=750rpx)尺寸单位与@import样式导入是wxss中特有的rem是网页中独有的,无法在小程序中使用总而言......
  • Servlet一笔记
    Servlet一笔记一、web相关概念1.软件架构目标理解B/S和C/S的优缺点讲解C/S架构C:Client,客户端;S:Server,服务器比如:QQ,微信,网游优点:显示效果好安全性高服务......
  • Spring Boot banner
              .::::.                 .::::::::.                :::::::::::             ..::::::......
  • SpringCloud GateWay+Nacos 集群
    新建模块gateway port:8888 POM<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w......
  • TypeScript学习笔记
    TypeScript是什么可以编译成JavaScript。添加了类型系统的JavaScript;「类型」是其最核心的特性JavaScript的灵活使得它的代码质量参差不齐,维护成本高,运行时错误多。T......
  • 韦东山2440-学习笔记-字符设备驱动
    1.button阻塞输入#include<linux/module.h>#include<linux/interrupt.h>#include<linux/device.h>#include<linux/cdev.h>#include<linux/kernel.h>#include......