SSM框架学习笔记(仅供参考)

(当前笔记简陋,仅供参考)

第一节课:

(1)讲述了Spring框架,常用jar包,以及框架中各个文件的作用

(2)演示了一个入门程序

(3)解释了控制反转和依赖注入两个概念(两个概念意思相同)IOC

第二节课:

1.回忆java知识点:(1)java中构建一个类,系统会默认创建一个无参的构造方法

(2)当我们手动创建了一个有参的构造方法时,系统默认创 建的无参的构造方法将被覆盖替代(不能调用)

(3)再想用无参构造函数的话

2.java中直接输出一个对象名,是默认调用了该对象的.toString()方法,输出路径和哈希Code

例:

public static void main(String[] args) {Object obj = new Object();System.out.println(obj);System.out.println(obj.toString());
}

3.Bean创建实例的几种方式

(1)普通模式

(2)静态工厂模式

(3)实例工厂模式

4.创建实例时的两种作用域模式

(1)单例作用域模式(singelton,默认)

(2)原型作用域模式(prototype)

5.用Bean来装配实例对象时的几种注入方式

(1)设值注入

要有无参构造方法、要有每个属性的setter方法

(2)构造注入

要有有参构造方法,参数有对应的注入顺序index01、index02、index03......

第三节课:

1.Beng创建实例化的几种简化方法

(1)注解装配方法

(2)自动装配方法

2.数据库概念

(1)事务,检查权限,记录日志....

3.几种面向切面变成的方法

(1)JDK动态代理(就是用Java JDK中自带的接口进行代理)

(2)CGLIB代理(用Spring Framework中整合的CGLIB开源包进行代理)

第四节课(面向切面编程)

1.面向切面编程的框架AspectJ(简化了之前的代理过程)

(1)基于Xml的代理

(2)基于Annotation(注解)的代理

2.学Spring数据库开发-JDBC

第十章

基于Spring和MyBatis的两种开发模式

1.Dao模式(对于接口,要有一个实现类)

2.Mapper模式(省去了手写实现类,Mapper会自动创建接口的实现类)

拓展笔记:

1.在jsp或html页面中 &nbsp 代表一个空字节

(一个字符占一个字节;一个汉字占三个字节;所以用三个&nbsp可以表示一个空汉字,用来对齐)

2.在jsp中,name=属性名 其中的属性名要和set方法名一致

3.Jsp中type为"submit"的按钮,执行的是form标签中action属性后面的地址

4.在写项目中,前端能完成的需求,就用前端来写,不要抛给后端

一.SpringMVC中的异常处理

3种方式:

1.基于xml配置文件

2.基于注解的方式

3.基于Handler管理类的方式

4.无论是在jsp页面中还是java的Serverlet中,都可以设置重定向和请求转发。

5.forward请求转发和redirect重定向的区别:

①forward请求转发:客户端只发送一此请求,服务端收到此请求后会自动将该请求转发到另一个服务端去处理;

②redirect重定向:客户端发出第一次请求到服务端后,服务端会反馈一个新的网址;客户端要根据该网址再发送一次请求;

6.jsp页面中内置有九个隐式对象(不用引入或创建实例,可以直接用)

①out对象

(1)、注意:用out输出时,out对象有一个单独的缓冲区; 输出时会以这个缓冲区大小为单位进行输出; 若输出的内容大小不够这个缓冲区的大小,会先输出Response这个默认缓冲区中的内容,待默认缓冲区输出完后才会输出out缓冲区中的内容。(一般将out对象的缓冲区大小设置为0kb,确保输出顺序正确)

二、名词解释

DAO = Data Access Object : 数据存取对象

Service = 服务

Controller = 控制器

Util = 工具

Model = 模型

三、工厂模式简单理解

1.简单工厂(只能创建有限种类的产品【产品就指的是实例】,产品种类都是工厂类中提前敲好的,不满足开闭原则)

3.抽象工厂模式()

4.超级工厂模式(借助Java映射机制按照类名来创建类的实例,不再局限于之前工厂模式下:想创建多少种类的实例还得提前写好,解决了简单工厂不满足开闭原则的问题;缺点:每创建出一个实例都是一个新的实例【都是原型模式】)

5.容器工厂模式(借助注解和映射机制,根据注解上的value值【value值一般都设置成类名】来创建实例,满足开闭原则;在实现了超级工厂相同功能的基础上,还可以通过设置注解中scope的值来决定,创建的实例是单例模式还是原型模式)

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端项目本地的node_modules直接上传到服务器上无法直接使用(node-sasa模块报错)

跑 jekins任务的服务器不能连接外网下载依赖包,就将本地下载的 node_modules直接上传到服务器上,但是运行时node-sass模块报错了ERROR in Missing binding /root/component/node_modules/node-sass/vendor/linux-x64-48/binding.node >> 报错信息类…

不会编程怎么办?量化交易不会编程可以使用吗?

量化交易使用计算机模型程序代替人工进行交易,一般需要投资者自己编写程序建模,然后回测无误之后再进行实盘交易,那么不会编程的投资者能使用量化软件进行量化交易吗? 不会编程使用量化软件有两种方法 一种是请人代写代码&#x…

浅谈后置处理器之JSON提取器

浅谈后置处理器之JSON提取器 JMeter 的 JSON 提取器(JSON Extractor)是一个强大的后置处理器,它允许用户从HTTP响应、数据库查询或其他类型的响应中提取JSON数据,并将这些数据存储为变量,以便在后续的请求中重用。这对…

LabVIEW人工模拟肺控制系统开发

开发了一种创新的主被动一体式人工模拟肺模型,通过LabVIEW开发的上位机软件,实现了步进电机驱动系统的精确控制和多种呼吸模式的模拟。该系统不仅能够在主动呼吸模式下精确模拟快速呼吸、平静呼吸和深度呼吸,还能在被动模式下通过PID控制实现…

LeetCode加油站(贪心算法/暴力,分析其时间和空间复杂度)

题目描述 一.原本暴力算法 最初的想法是:先比较gas数组和cost数组的大小,找到可以作为起始点的站点(因为如果你起始点的油还不能到达下一个站点,就不能作为起始点)。当找到过后,再去依次顺序跑一圈,如果剩余的油为负数…

【代码随想录】【算法训练营】【第64天】 [卡码117]软件构建 [卡码47]参加科学大会

前言 思路及算法思维,指路 代码随想录。 题目来自 卡码网。 day 64,周三,继续ding~ 题目详情 [卡码117] 软件构建 题目描述 卡码117 软件构建 解题思路 前提: 思路: 重点: 代码实现 C语言 [卡码…

GO channel 学习

引言 单纯地将函数并发执行是没有意义的。函数与函数间需要交换数据才能体现并发执行函数的意义。 虽然可以使用共享内存进行数据交换,但是共享内存在不同的goroutine中容易发生竞态问题。为了保证数据交换的正确性,必须使用互斥量对内存进行加锁&#…

喰星云·数字化餐饮服务系统 多处 SQL注入漏洞复现

0x01 产品简介 喰星云数字化餐饮服务系统是一款专为餐饮企业设计的综合性管理软件,旨在通过信息化手段提升餐饮企业的运营效率、降低运营成本,并实现数据驱动的决策管理。该系统包括供应链管理、财务管理、巡店管理、人力资源管理等多个模块,可全面覆盖餐饮企业的日常运营需…

[RoarCTF2019]polyre

参考博客 buu-[RoarCTF2019]polyre(控制流平坦化,虚假控制流程)-CSDN博客 [RoarCTF2019]Polyre | bypass ollvm - 暖暖草果 - 博客园 (cnblogs.com) buu-[RoarCTF2019]polyre(控制流平坦化,虚假控制流程&#xff09…

Java 设计模式系列:外观模式

简介 外观模式(Facade Pattern)是一种设计模式,又名门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部…

VUE_TypeError: Cannot convert a BigInt value to a number at Math.pow 解决方法

错误信息 TypeError: Cannot convert a BigInt value to a number at Math.pow vue 或 react package.json添加 "browserslist": {"production": ["chrome > 67","edge > 79","firefox > 68","opera >…

树的结构(b,b+树)

无论线性表,栈还是队列,都是一对一,查询的时候,效率较低,数据量比较的大的情况 1.树的定义 一种数据结构,有层次关系的集合,根朝上,叶朝下 除了根节点外,每个子节点都…

【自动驾驶汽车通讯协议】UART通信详解:理解串行数据传输的基石

文章目录 0. 前言1. 同步通讯与异步通讯1.1 同步通信1.2 异步通信 2. UART的数据格式3. 工作原理3.1 波特率和比特率3.2 UART的关键特性 4. UART在自动驾驶汽车中的典型应用4.1 UART特性4.2应用示例 5. 结语 0. 前言 按照国际惯例,首先声明:本文只是我自…

【周末闲谈】Stable Diffusion会魔法的绘画师

个人主页:【😊个人主页】 系列专栏:【❤️Python】 文章目录 前言Stable Diffusion介绍 使用ComfyUI 和 WebUIComfyUIWebUI 配置需求 Stable Diffusion资源分享吐司AiAUTOMATIC1111Civitai绘世整合包Nenly同学stability.ai 前言 在很早之前&…

香橙派AIpro部署YOLOv5:探索强悍开发板的高效目标检测能力

香橙派AIpro部署YOLOv5:探索强悍开发板的高效目标检测能力 一、香橙派AIpro开箱使用体验 1.1香橙派AIpro开箱 拿到板子后第一件事情就是开箱: 开箱后可以看见一个橘子的标识,也就是香橙派了,并且还有四个大字:为AI…

取消文字默认选中效果

点击的时候会选中文字 .user-select-none {user-select: none;}<div class"model user-select-none" onclick"createRipple(event)">Click me for ripple effect outside </div>点击再快也不会选中了

【C++】——类和对象(上)

文章目录 什么是类和对象类的定义类的访问限定符及其封装类的作用域类的实例化类的对象的大小计算this指针 什么是类和对象 类是一个用户定义的类型&#xff0c;它封装了数据&#xff08;称为属性或成员变量&#xff09;和操作这些数据的方法&#xff08;称为成员函数或方法&a…

Seven layers of the metaverse

看到一篇关于元宇宙的文章&#xff0c;分享给大家&#xff0c;供大家参考。 随着物理世界和数字世界的融合&#xff0c;元宇宙正在推动我们数字能力的新边界。从人类身份、个性和声誉到资产、情感和历史&#xff0c;元宇宙的虚拟现实中可以以全新的方式进行交互、控制和体验。因…

OpenGL笔记十之Shader类的封装

OpenGL笔记十之Shader类的封装 —— 2024-07-10 晚上 bilibili赵新政老师的教程看后笔记 code review! 文章目录 OpenGL笔记十之Shader类的封装1.运行2.目录结构3.main.cpp4.application4.1.CMakeLists.txt4.2.Application.h4.3.Application.cpp 5.assets5.1.shaders&#xf…

【吊打面试官系列-ZooKeeper面试题】简述 Zookeeper 文件系统?

大家好&#xff0c;我是锋哥。今天分享关于 【简述 Zookeeper 文件系统?】面试题&#xff0c;希望对大家有帮助&#xff1b; 简述 Zookeeper 文件系统? Zookeeper 提供一个多层级的节点命名空间&#xff08;节点称为 znode&#xff09;。与文件系统不同的是&#xff0c;这些节…