ssm 学习 ---(spring)

news2024/9/23 21:21:39

 一、spring框架

1、基本框架

2、Beanfactory快速入门

配置清单:xml文件

(1) 导入jar包或者maven坐标

(2) 定义UserService接口以及UserService实现类

(3) 创建bean.xml配置文件,将UserService信息配置到该xml文件中;

(4)编写测试代码,创建BeanFactory,加载配置文件,获取UserService对象

①、示例代码1

DefaultListableBeanFactory : 工厂对象

XmlBeanDefinitionReader : 工厂对应的读取器,读取xml文件到工厂中

读取器对象.loadBeanDefinitions("xml文件") : 读取过程

工厂对象.getBean("bean对象对应id") : 得到id对应的class对象

②、示例代码2

配置xml

ref : 从xml文件中读取id相同的bean对象

name = 从本bean对象中读取调用名字是userDao的方法(javabean方法)

userDao可以代表了UserDao的get或者set方法,像getter和setter这些标准javabean方法

3.ApplicationContext快速入门(重点)

①、简单示例

封装BeanFactory的方法流程,从而简化流程

ClassPathXmlApplicationContext("xml文件") : 读取对象

ApplicationContext : 对象

对象.getBean("方法名") : 调用方法,并获取对应类

4、两者关系(区别)

①、联系概述

②、继承体系

二、基于xml的spring应用

1、springBean配置详解

①、基于xml的bean配置(1)

(1)、<bean id> 会转化成<bean name>进行存储。

(2)、如果没有id 和 name(别名) 的话,id默认值就是<bean class>中class的值。

(3)、id 与 name(别名) 同时存在时,首选id

(4)、Bean - scope 范围配置

singleton : 单例池 每次获取对象(getbean)都是从这里取 (对象地址不变)

prototype : 每次getbean时才创建(对象地址改变),不放入单例池。

(5)、Bean - lazy-init 延迟加载 (只对ApplicationContext有效, 对BeanFactory无效)

(6)、Bean的初始化和销毁方法

构造方法先执行,然后init()方法执行,

容器关闭的时候才会调用 destroy()方法,

容器关闭 : 对象.close()

(7) 、 InitializingBean实现接口

(8)、Bean的实例化配置

静态工厂方法:

-------------------无需创建对象,直接调用方法即可。

实例工厂方法:

------------------需要创建对象,然后调用方法。

配置Bean时有参数的配置:

上面两个执行结果一样,说明参数都可以通过<constructor - arg> 进行参数的传递。

<constructor - arg> 传递的参数都是用来构造Bean的, (上图)不管是static还是非static。

实现FactoryBean规范延迟实例化Bean:

回看黑马spring源码讲解的p22章节。

②、基于xml的bean配置(2)

1、Bean的依赖注入

集合数据类型配置示例:

Set 和Map方法与List相同类比。

autowire自动装配 :

③、xml的其它配置标签

2、spring的get方法

3、spring配置非自定义Bean

上图信息放到配置文件中就是 =====>

配置connection

配置Date

4、Bean实例化基本流程

5、spring后处理器

①、springBean工厂后处理器

流程图:

BeanFactoryPostProcessor - Bean工厂后处理器

②、spring的Bean后处理器

BeanPostProcessor - Bean后处理器

bean示例流程完整图

6、Spring Bean生命周期

初始化阶段:

循环依赖:

三级缓存:

Aware接口:

7、Spring Ioc 整体流程总结

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

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

相关文章

超简单安装指定版本的clickhouse

超简单安装指定版本的clickhouse 命令执行shell脚本 idea连接 命令执行 参考官网 # 下载脚本 wget https://raw.githubusercontent.com/183461750/doc-record/d988dced891d70b23c153a3bbfecee67902a3757/middleware/data/clickhouse/clickhouse-install.sh # 执行安装脚本(中…

JVM监控及诊断工具-命令行篇--jcmd命令介绍

JVM监控及诊断工具-命令行篇5-jcmd&#xff1a;多功能命令行 一 基本情况二 基本语法jcmd -ljcmd pid helpjcmd pid 具体命令 一 基本情况 在JDK 1.7以后&#xff0c;新增了一个命令行工具jcmd。它是一个多功能的工具&#xff0c;可以用来实现前面除了jstat之外所有命令的功能…

【LeetCode】旋转链表

目录 一、题目二、解法完整代码 一、题目 给你一个链表的头节点 head &#xff0c;旋转链表&#xff0c;将链表每个节点向右移动 k 个位置。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], k 2 输出&#xff1a;[4,5,1,2,3] 示例 2&#xff1a; 输入&#xff…

MySQL事务管理(上)

目录 前言 CURD不加控制&#xff0c;会有什么问题&#xff1f; CURD满足什么属性&#xff0c;能解决上述问题&#xff1f; 事务 什么是事务&#xff1f; 为什么会出现事务 事务的版本支持 事务提交方式 查看事务提交方式 改变 MySQL 的自动提交模式: 事务常见操作方式 前…

源码安装 AMD GPGPU 生态 ROCm 备忘

0, 前言 如果初步接触 AMD这套&#xff0c;可以先在ubuntu上使用apt工具安装&#xff0c;并针对特定感兴趣的模块从源码编译安装替换&#xff0c;并开展研究。对整体感兴趣时可以考虑从源码编译安装整个ROCm生态。 1, 预制二进制通过apt 安装 待补。。。 2, 从源码安装 sudo …

北京交通大学《深度学习》专业课,实验4循环神经网络实验

一、实验要求 1. 手动实现循环神经网络RNN&#xff0c;并在至少一种数据集上进行实验&#xff0c;从训练时间、预测精度、Loss变化等角度分析实验结果&#xff08;最好使用图表展示&#xff09; 2. 使用torch.nn.rnn实现循环神经网络&#xff0c;并在至少一种数据集上进行实验…

STM32学习(2)-GPIO输出

GPIO输出 2.1 GPIO输出1.GPIO简介2.GPIO基本结构3.GPIO位结构4.GPIO模式5.硬件电路 2.2LED闪烁&LED流水灯&蜂鸣器1.LED闪烁main函数代码 2.LED流水灯3.蜂鸣器 2.1 GPIO输出 1.GPIO简介 GPIO&#xff08;General Purpose Input Output&#xff09;通用输入输出口 可配…

【LeetCode】翻转二叉树

目录 一、题目二、解法完整代码 一、题目 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1] 示例 2&#xff1a; 输入&#xff1a;root…

人话讲下如何用github actions编译flutter应用-以编译windows为例

actions的脚本看下这个&#xff0c;有简单的说明&#xff0c;有关于编译个平台的脚本&#xff1a; https://github.com/marketplace/actions/flutter-action 打开你要编译的项目点击那个Actions按钮 然后随便点击一个脚本会跳到白框编辑界面 打开上文提到的网址随便抄下就ok …

Web开发:图片九宫格与非九宫格动态切换效果(HTML、CSS、JavaScript)

目录 一、业务需求 二、实现思路 三、实现过程 1、基础页面 2、图片大小调整 3、图片位置调整 4、鼠标控制切换 5、添加过渡 四、完整代码 一、业务需求 默认显示基础图片&#xff1b; 当鼠标移入&#xff0c;使用九宫格效果展示图片&#xff1b; 当鼠标离开&#…

基于术语词典干预的机器翻译挑战赛笔记 Task3 #Datawhale AI 夏令营

书接上回&#xff0c;上回在这捏&#xff1a; 基于术语词典干预的机器翻译挑战赛笔记Task2 #Datawhale AI 夏令营-CSDN博客文章浏览阅读223次&#xff0c;点赞10次&#xff0c;收藏5次。基于术语词典干预的机器翻译挑战赛笔记Task2https://blog.csdn.net/qq_23311271/article/…

华为智慧交通-高速公路视频云联网解决方案

华为高速公路视频云联网解决方案摘要&#xff1a; 智慧高速愿景智慧高速旨在实现人、车、路互信协同&#xff0c;提供更安全、高效、便捷的出行体验。通过全路段感知、全过程管控、全天候通行&#xff0c;以及智慧路段、服务区的建设&#xff0c;实现数字化、知识型、安全型、高…

微服务实战系列之玩转Docker(四)

前言 幸福&#xff0c;就是继续追寻已经拥有的东西。 ——圣奥古斯丁 什么算已经拥有的&#xff1f;比如爱你的人在等你&#xff0c;比如每日热腾腾的三餐&#xff0c;比如身边可爱的同事&#xff0c;又比如此刻的你&#xff0c;看见了这篇博文&#xff08;&#x1f601;&#…

搞一个boostrap主题,用django的mtv去对接

nginx的配置,设定这个模板映射的路径 location /assets/{alias /home/luichun/lc/Pyfile/Pyhome/app/statichome_to_nginx/pifu/dist/assets/;}1&#xff1a;设定一个主页的路由【django主要用来设定逻辑】 2&#xff1a;设定主页的响应内容【使用boostrap框架来对前端展示进行…

SVN与Git功能差异对比分析

最近在调研学习Git管理和分支模型相关内容&#xff0c;外延到了SVN和Git差异、工作原理等相关细节&#xff0c;学习整理如下。 SVN&#xff08;Subversion&#xff09;与 Git 的最大不同&#xff0c;主要包括以下几个方面&#xff1a; 交流探讨&#xff0c;加入群聊【Java学习…

微信小程序canvas 使用案例(一)

一、cavans 对象获取、上线文创建 1.wxml <!-- canvas.wxml --><canvas type"2d" id"myCanvas"></canvas> 2.js /*** 生命周期函数--监听页面加载*/onLoad(options) {const query wx.createSelectorQuery()query.select(#myCanvas).f…

Github报错:Kex_exchange_identification: Connection closed by remote host

文章目录 1. 背景介绍2. 排查和解决方案 1. 背景介绍 Github提交或者拉取代码时&#xff0c;报错如下&#xff1a; Kex_exchange_identification: Connection closed by remote host fatal: Could not read from remote repository.Please make sure you have the correct ac…

STM32智能安防监控系统教程

目录 引言环境准备智能安防监控系统基础代码实现&#xff1a;实现智能安防监控系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;安防监控与优化问题解决方案与优化收尾与总结 1. 引言 智能安防监控系统通…

【HarmonyOS开发】Navigation使用

简介 Navigation是路由容器组件&#xff0c;包括单栏(Stack)、分栏(Split)和自适应(Auto)三种显示模式。适用于模块内和跨模块的路由切换。 在页面跳转时&#xff0c;应该使用页面路由router&#xff0c;在页面内的页面跳转时&#xff0c;建议使用Navigation达到更好的转场动效…

VSCODE 下 openocd Jlink 的配置笔记

title: VSCODE 下 openocd Jlink 的配置笔记 tags: STM32HalCubemax 文章目录 内容VSCODE 下 openocd Jlink 的配置笔记安装完成后修改jlink的配置文件然后修改你的下载器为jlink烧录你的项目绝对会出现下面的问题那么打开下载的第一个软件 &#xff08;点到这个jlink右键&…