初识SpringSpring核心容器

news2024/11/26 11:37:40

初识Spring

Spring生态:

image-20230217122115493

Spring FrameWork发展:

image-20230217122327497

Spring FrameWork系统架构:

image-20230217122937601

Spring FrameWork学习路线:

image-20230217123213024

Spring核心概念

Ioc

image-20230217125548636

DI

image-20230217125916273

实现IoC

image-20230217130636746

1、导入Spring坐标

image-20230217143203203

2、定义Spring管理的类(接口)

image-20230217143247311

3、创建spring配置文件,配置对应类作为Spring管理的bean

image-20230217143312578

4、初始化IoC容器( Spring核心容器/Spring容器),通过容器获取bean

image-20230217143330348

实现DI

image-20230217143510625

1、删除使用new的形式创建对象的代码

image-20230217144015586

2、提供依赖对象对应的setter方法

image-20230217144031620

3、配置service与dao之间的关系

image-20230217144106439

bean

bean基础配置

bean基础配置

image-20230217144637281

bean别名配置

image-20230217144613718

bean作用范围配置

image-20230217144925080

为什么bean默认为单例?

image-20230217145056620

bean实例化

bean是如何创建的

bean本质上就是对象,创建bean使用构造方法完成

实例化bean的三种方式

构造方法:

image-20230217145714552

静态工厂造对象:

image-20230217150133354

实例工厂:

image-20230217150505933

FactoryBean实例化

image-20230217151029394

bean生命周期

image-20230217152426776

配置的方式:

image-20230217152452770

接口的方式:

image-20230217152505210

bean生命周期中做的事情:

image-20230217152600175

关闭容器的两种方式:

image-20230217152620888

依赖注入

image-20230217153001092

setter注入-引用类型

image-20230217153123032

setter注入-简单类型

image-20230217153557825

构造器注入-引用类型

image-20230217155258598

构造器注入-简单类型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MApooIHz-1677030393153)(https://typora-img1.oss-cn-beijing.aliyuncs.com/image-20230217155316925.png)]

依赖注入方式选择

image-20230217155347563

依赖自动装配

IoC容器根据bean所依赖的资源在容器中自动查找并注入到bean中的过程称为自动装配

image-20230217155657219

image-20230217161014878

image-20230217161053470

集合注入

image-20230217211713146

image-20230217211720374

image-20230217211734109

image-20230217211740684

image-20230217211747067

数据源对象管理

image-20230217214321277

加载properties文件

image-20230217214728054

注意:

image-20230217215014825

容器

创建容器

image-20230217220312252

image-20230217220325055

获取bean

按名称、按类型、指定名称和类型

容器类层次结构

image-20230217220721219

BeanFactory

顶层接口 延迟加载

ApplicationContext 立即加载

核心容器总结

容器相关

image-20230217221041088

bean相关

image-20230217221054612

依赖注入相关

image-20230217221140692

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/364989.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

tensorflow 学习笔记(三):神经网络八股

本节内容: 前两节使用 Tensorflow2 的原生代码大叫神经网络。本节使用 keras 搭建神经网络(八股:六步法,有 Sequential 和 class 两种)。 文章目录一、搭建网络八股 sequential1.1、keras 介绍1.2、六步法搭建 keras …

Mac搭建appium+python+Android自动化环境

mac搭建appium+python+Android自动化环境 一、安装jdk二、安装Android-SDK三、配置 Android 环境四、安装Appium五、打开appium一、安装jdk 自己百度 二、安装Android-SDK 1)下载地址: http://www.android-studio.org/index.php/download 下载mac版本的dmg 2) 下载完成后…

HTTPS:让数据传输更安全

鉴于 HTTP 的明文传输使得传输过程毫无安全性可言,且制约了网上购物、在线转账等一系列场景应用,于是引入加密方案。 从 HTTP 协议栈层面来看,我们可以在 TCP 和 HTTP 之间插入一个安全层,所有经过安全层的数据都会被加密或者解密…

关于虚拟数字人你想知道的都在这里

2022年底,微软旗下的人工智能实验室Open AI发布的对话式大型语言模型ChatGPT聊天机器人一夜蹿红,5天用户量超百万,在各大中外媒体平台掀起了一阵热潮。也带火了人工智能相关产业,AI虚拟数字人就是其中之一,一个随着元宇…

损失函数与反向传播

一、损失函数计算实际输出和目标之间的差距为我们更新输出提供一定的依据(反向传播)1.nn.L1Lossimport torch from torch.nn import L1Loss inputs torch.tensor([1,2,3],dtypetorch.float) targets torch.tensor([1,2,5],dtypetorch.float) # reshape…

Docker之路(4.Docker命令大全、docker镜像命令、docker容器命令以及docker常用命令)

1.帮助命令 1.1 docker version(显示docker的版本信息) sudo docker version1.2 docker info(显示docker的系统信息,包括镜像和容器数量) sudo docker info1.3 --help (万能命令) sudo 命令 --help1。4 帮助文档的地址 https://docs.docker.com/engine/referenc…

纯手动搭建hadoop3.x集群记录001_搭建虚拟机_调通网络_配置静态IP_安装JDK---大数据之Hadoop3.x工作笔记0162

1.首先准备机器,172.19.126.115 172.19.126.116 172.19.126.117 我准备了3台 Windows机器 2.然后我打算在Windows机器上使用虚拟机,搭建3台Centos虚拟机来进行安装hadoop 3.这里我们的3台windows机器中的,3台linux虚拟机也使用了3个IP,分别是 172.19.126.120 172.19.126.1…

自然语言处理(NLP)之跳字(元)模型<skip-gram>与连续词袋模型<continuous bag of words>

自然语言处理(Natural Language Processing, NLP)是AI里的一个非常重要的领域,比如现在很火爆的ChatGPT,首先就需要很好的理解输入内容的意思才能够做出合理的回复。自然语言处理应用非常广泛,比如机器翻译、问题回答、文本语义对比、语音识别…

整合Swagger2

整合Swagger2 1、Swagger介绍 前后端分离开发模式中,api文档是最好的沟通方式。 Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。 1、及时性 (接口变更后,能够及时准确地通知相关前后端开发人员…

Java企业开发学习笔记(4)采用Java配置类管理Bean

该文章主要为完成实训任务,详细实现过程及结果见【http://t.csdn.cn/1fwEO】 文章目录一、采用Java配置类管理Bean1.1 创建子包1.2 创建杀龙任务类1.3 创建勇敢骑士类1.4 创建Spring配置类1.5 创建测试类1.6 运行测试类二、课堂练习2.1 创建救美任务类和救美骑士类2…

BERT模型系列大全解读

前言 本文讲解的BERT系列模型主要是自编码语言模型-AE LM(AutoEncoder Language Model):通过在输入X中随机掩码(mask)一部分单词,然后预训练的主要任务之一就是根据上下文单词来预测这些单词,从…

阅读笔记7——Focal Loss

一、提出背景 当前一阶的物体检测算法,如SSD和YOLO等虽然实现了实时的速度,但精度始终无法与两阶的Faster RCNN相比。是什么阻碍了一阶算法的高精度呢?何凯明等人将其归咎于正、负样本的不平衡,并基于此提出了新的损失函数Focal L…

JUC并发编程(上)

✨作者:猫十二懿 ❤️‍🔥账号:CSDN 、掘金 、个人博客 、Github 🎉公众号:猫十二懿 学习地址 写在最前 JUC(Java Util Concurrent)学习内容框架: #mermaid-svg-r5jN6ICeVruSjU0I …

MySQL一隐式转换

我相信90%以上的同学们在平时开发时,或多或少都被隐式转换(CONVERT_IMPLICIT)坑过,甚至测出bug前你都浑然不知。你还别不信,“无形之刃,最为致命!” mysql> SELECT * from t_user; ---------…

【LeetCode】剑指 Offer 11. 旋转数组的最小数字 p82 -- Java Version

题目链接:https://leetcode.cn/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-zi-lcof/ 1. 题目介绍(11. 旋转数组的最小数字) 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 给你一个可能存在 重复 元素值…

关于微前端,你想知道的都在这!

更多请关注微前端专题 https://codeteenager.github.io/Micro-Frontends/ 介绍 微前端官网:https://micro-frontends.org/ 问题:如何实现多个应用之间的资源共享? 之前比较多的处理方式是npm包形式抽离和引用,比如多个应用项目之…

浅谈Redisson实现分布式锁的原理

1.Redisson简介 Redis 是最流行的 NoSQL 数据库解决方案之一,而 Java 是世界上最流行(注意,我没有说“最好”)的编程语言之一。虽然两者看起来很自然地在一起“工作”,但是要知道,Redis 其实并没有对 Java…

windows共享文件夹(目录)(SMB服务)

SMB服务,文件共享服务,俗称文件夹(目录)、打印机等共享 一、创建共享用户 windos系统中,文件夹共享需要设置指定用户与密码,通过输入用户和密码进行连接,在设置共享时系统中有Everyone所有人设…

【Linux学习笔记】1.Linux 简介及安装

前言 本章介绍Linux及其安装方法。 Linux 简介 Linux 内核最初只是由芬兰人林纳斯托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。 Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多…

【基础语法】JavaScript 全栈体系(四)

JavaScript 基础 第五章 类型转换 一、为什么需要类型转换? JavaScript是弱数据类型: JavaScript也不知道变量到底属于那种数据类型,只有赋值了才清楚。 坑: 使用表单、prompt 获取过来的数据默认是字符串类型的,此…