首页
学习
活动
专区
圈层
工具
发布

Spring MVC核心技术

目录 异常处理 类型转换器 数据验证 文件上传与下载 拦截器 ----  异常处理 Spring MVC中, 系统的DAO, Service, Controller层出现异常, 均通过throw Exception...常用的Spring MVC异常处理方式主要有三种: 使用系统定义好的异常处理器SimpleMappingExceptionResolver 使用自定义异常处理器 使用异常注解 SimpleMappingExceptionResolver...上传 Spring MVC中文件上传需要添加Apache Commons FileUpload相关的jar包, 基于该jar, Spring中提供了MultipartResolver实现类: CommonsMultipartResolver...Spring MVC中拦截器需要实现HandlerInterceptor接口, 该接口包含三个方法 preHandle(req, res, handler) 在处理器方法之前执行, 返回boolean...) 在处理器方法之后执行, 处理器方法若未执行, 则该方法不执行.

1K70

记录(一)

RDB:快照形式是直接把内存中的数据保存到一个 dump 文件中,定时保存,保存策略。(会丢数据) b. AOF:把所有的对Redis的服务器进行修改的命令都存到一个文件里,命令的集合。...指向下一条指令的地址。 2.方法区: a. 保存装载的类的元信息:类型的常量池,字段、方法信息,方法字节码; jdk6时,String等常量信息置于方法区,jdk7移到了堆中; b....类加载机制。 概念:虚拟机把描述类的数据文件(字节码)加载到内存,并对数据进行验证、准备、解析以及类初始化,最终形成可以被虚拟机直接使用的java类型(java.lang.Class对象)。...初始化阶段:类初始化阶段是类加载过程的最后一步。初始化阶段就是执行类构造器()方法的过程。 f. 使用阶段: g....原理:将原有的内存空间分为两块,每次只使用其中一块,在垃圾回收时,将正在使用的内存中的存活对象复制到未使用的内存块中,之后清除正在使用的内存块中的所有对象,交换两个内存的⻆色,完成垃圾回收。 b.

55510
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python基本概念

    在 IDLE 环境中,我们可以通过 File-->new 创建 Python 文件,并可以编辑该文件内 容。我们也可以通过 File-->save/save as 保存文件。...一般保存成扩展名为 py 的文件。 需要执行编辑好的文件,可以用快捷键 F5 或者点击 Run-->Run module。...标识用于唯一标识对象,通常对应于对象在计算机内存中的地址。使用内置函数 id(obj)可返回对象 obj 的标识。 类型用于表示对象存储的“数据”的类型。类型可以限制对象的取值范围以及可执行的操作。...【操作】变量在使用前必须先被初始化(先被赋值) >>> my_name Traceback (most recent call last): File "", line 1, in... my_name NameError: name 'my_name' is not defined 变量 my_name 在被使用前未做赋值,因此报错:’my_name’is not

    47840

    Quartz、Schedule、XXL-Job 3种任务的极简使用教程 - Docker 自动化配置自动导入库表!

    其中像 Spring-Schedule 小傅哥还添加了一些 Spring 组件开发的能力可自动扩展任务、对 XXL-Job 的配置引入了 Docker Compose 自动化安装和自动初始化 MySQL...在此位置找到执行文件,如果你本机已经安装过 Docker 那么在 IntelliJ IDEA 中直接执行即可。 1....IDEA 中打开 rocketmq-docker-compose-mac-amd-arm.yml 你会看到一个绿色的按钮在左侧侧边栏,点击即可安装。...在 compose 中提供了 xxl-job 所需要的库的依赖安装,以及自动加载文件下的初始化库表数据。...- Quartz - 02"); } } Quartz 支持在一个类中,配置多个任务,每个任务方法都可以配置自己执行策略。

    2.8K31

    基于 Kubernetes 的 Spring Cloud 微服务 CICD 实践

    如图所示, Spring Cloud 中的各个微服务将以 Deployment 方式部署,Pod 启动后会自动向 Nacos 注册,并获取 Spring Cloud 的配置文件。...右侧继续点击 添加嵌套步骤,选择 Shell,在弹窗中如下输入以下命令基于仓库中的 Dockerfile 构建 Docker 镜像,完成后点击确认保存: docker build -f ..../pig-register 点击 添加嵌套步骤,右侧选择 添加凭证,在弹窗中填写如下信息,完成后点击 确定保存信息: 说明:因为考虑到用户信息安全,账号类信息都不以明文出现在脚本中,而以变量的方式。...图形化建微服务 由于 Pig 未提供 Kubernetes 部署所需的 yaml 文件。因此第一次构建流水线后,还不能立即部署微服务。...替换 image 与 tag 名称为上一步 build 中的 docker image。并将密码设置为 root ? 点击部署继续 注:一般生产环境使用 flyway 进行数据库初始化脚本及升级管理。

    3.3K41

    大数据技术之_31_Java 面试题_01_JavaSE 面试题 + SSM 面试题 + Java 高级面试题 + Java 项目面试题

    单:唯一 例:实例 单例设计模式,即某个类在整个系统中只能有一个实例对象可被获取和使用的代码模式。 例如:代表 JVM 运行环境的 Runtime 类。...(jdk1.8 中,常量池在元空间中;jdk1.7 中,常量池在堆中)         Integer num = 200; // 值大于 127,对象在堆中         int[] arr = {...在 Spring 中,可以在 元素的 scope 属性里设置bean的作用域,以决定这个 bean 是单实例的还是多实例的。   ...第三种解决方案:在 Mapper 的映射文件中使用 resultMap 来自定义映射规则。 ? 第3章 Java 高级面试题 1、Linux 常用服务类相关命令 CentOS 6 ? 运行级别 ?...b) Redis 中有五条记录                 c) 合并后,真正展示的时候应该是小于或等于八条记录 5、消息队列在项目中的使用 背景:在分布式系统中是如何处理高并发的。

    1K50

    再议String-字符串常量池与String.intern()

    JVM常量池主要分为Class文件常量池、运行时常量池,全局字符串常量池,以及基本类型包装类对象常量池 1.1.0 方法区 方法区的作用是存储Java类的结构信息,当创建对象后,对象的类型信息存储在方法区中...类型信息是定义在Java代码中的常量、静态变量、以及类中声明的各种方法,方法字段等;实例数据则是在Java中创建的对象实例以及他们的值。...文件被编译成class文件之后,会生成上面的class文件常量池,JVM在执行某个类的时候,必须经过加载、链接(验证、准备、解析)、初始化的步鄹,运行时常量池则是在JVM将类加载到内存后,就会将class...");创建了两个对象,一个在堆中的StringObject对象,一个是在堆中的“2”对象,并在常量池中保存“2”对象的引用地址。...new String("3");创建了两个对象,一个在堆中的StringObject对象,一个是在堆中的“3”对象,并在常量池中保存“3”对象的引用地址。

    60020

    JVM 类加载过程与字节码执行深度解析

    类或接口解析:验证目标类是否存在并加载2. 字段解析:查找字段在类或父类中的位置3....初始化阶段:执行类构造器()触发条件(主动引用场景):实例化类对象(new操作)调用类的静态方法或访问静态字段(除final修饰的编译期常量)使用反射调用类方法子类初始化时(先初始化父类)JVM 启动时指定的主类...注意:final修饰的编译期常量(如static final int CONSTANT=10)在准备阶段赋值,不触发初始化。Q:如何证明类加载的双亲委派模型?...A:动态生成的类加载器未正确释放(如 Web 容器热部署时未卸载旧加载器),导致元空间内存无法回收,最终引发Metaspace OOM。典型案例:使用未注册弱引用的监听器或缓存强引用类加载器。...(热部署、依赖隔离)字节码分析工具使用(javap -v查看指令细节,jclasslib可视化字节码结构)面试中,需结合具体场景(如 “Spring 框架如何处理不同版本的依赖冲突”)展示类加载器机制的理解

    29910

    如何基于 Docker 快速搭建 Springboot + Mysql + Redis 项目

    初始化数据库 3.创建项目 4.初始化代码 测试 前言 有时候我们需要快速启动一些项目,但是环境往往折腾了好久,因此弄一个可以重用的快速搭建的教程,docker简直就是这方面的神器,Docker 是一个开源的应用容器引擎...本教程基于的前提条件: 机器已经安装配置好JDK1.8,并且环境变量已经配置成功 Maven已经配置好,IDEA中项目使用的默认Maven也配置成功 本地机器安装好Docker 顺便提一句,我用navicat...初始化数据库 主要是创建数据库以及测试使用的数据表,初始化数据库的语句: drop database IF EXISTS test; CREATE DATABASE test; use test; DROP...: 3.创建项目 在IDEA中,File --> New --> Project --> Spring Initializr(选择JDK 8): 点击Next: 选择Web 下面的Spring Web...4.初始化代码 4.1 全局配置文件以及启动类 全局配置文件application.yml: server: port: 8081 spring: #数据库连接配置 datasource:

    1.9K20

    毕业设计——基于深度学习的交通流量检测系统

    基于深度学习的交通流量检测系统 深度学习|人工智能|数据分析|VUE|SpringBoot 简介 项目主要分为三部分,算法、前端和后端,算法读取摄像头数据并实时处理,将处理后的结果发给后端保存...,处理后的视频经流媒体发给前端显示;前端使用Vue框架,结合element-ui、Echarts实现了对人流量数据的图表分析功能。...项目运行 数据库 创建mysql数据库 根据mysql文件夹下的sql文件初始化数据 后端 进入Spring boot文件夹 修改application.yml,配置数据源和端口 运行入口文件:PeopleDetectionSystemSpringBootApplication.class...修改vite.config.js文件的target为后端地址 修改video.vue中的流媒体服务器地址。...建议使用 docker-nginx-rtmp,环境都集成好了,直接用就可以了。

    90810

    夯实Java基础系列14:深入理解Java枚举类

    在枚举常量初始化时,会自动为初始化这两个字段,设置相应的值,所以才在构造方法中添加了两个参数。即: 另外三个枚举常量生成的内部类基本上差不多,这里就不重复说明了。...它保证了枚举类型的不可变性,不能通过克隆,不能通过序列化和反序列化来复制枚举,这能保证一个枚举常量只是一个实例,即是单例的,所以在effective java中推荐使用枚举来实现单例。...Season.SPRING.getMsg(); 枚举类总结 其实枚举类懂了其概念后,枚举就变得相当简单了,随手就可以写一个枚举类出来。...(比如实战二中的枚举类或其它枚举类都行,只要使用得当都可以使用此方法) values() 获取枚举类中的所有枚举值(比如在实战三中就使用到了) 总结 枚举本质上是通过普通的类来实现的,只是编译器为我们进行了处理...而每个枚举常量是一个静态常量字段,使用内部类实现,该内部类继承了枚举类。所有枚举常量都通过静态代码块来进行初始化,即在类加载期间就初始化。

    61720

    【Python3之异常处理】 转

    IndexError 序列中没有此索引(index) KeyError 映射中没有这个键 MemoryError 内存溢出错误(对于Python 解释器不是致命的) NameError...未声明/初始化对象 (没有属性) UnboundLocalError 访问未初始化的本地变量 ReferenceError 弱引用(Weak reference)试图访问已经垃圾回收了的对象...输出 内容写入文件成功 注: 异常类只能用来处理指定的异常情况,如果非指定异常则无法处理。(异常是由程序的错误引起的,语法上的错误跟异常处理无关,必须在程序运行前就修正) ?...>>:gg invalid literal for int() with base 10: 'gg' 万能异常 在python的异常中,有一个万能异常:Exception,他可以捕获任意异常 s1 =...该参数是可选的,如果不提供,异常的参数是"None"。 最后一个参数是可选的(在实践中很少使用),如果存在,是跟踪异常对象。

    2.1K20

    关于Python异常处理,你需要了解的知识点

    1.写出多行except 异常/错误,指定捕获多个不同类型的异常。2.使用 except (异常1,异常2..),使用元组,在一行中捕获多个不同类型的异常。...if a < 0: raise MyError('自定义的异常') return a + b print(add(-1, 5)) 异常定义好之后,与内置类的用法一样,在需要的时候...常见的使用异常的场景 •网络请求相关,比如网络超时、连接异常等。•资源访问相关,比如文件的权限问题、文件的路径、文件是否存在等。•代码逻辑相关,比如越界访问、KeyError 等。...) KeyError 映射中没有这个键 MemoryError 内存溢出错误(对于Python 解释器不是致命的) NameError 未声明/初始化对象 (没有属性) UnboundLocalError...访问未初始化的本地变量 ReferenceError 弱引用(Weak reference)试图访问已经垃圾回收了的对象 RuntimeError 一般的运行时错误 NotImplementedError

    1.8K61

    超详细的编码实战,让你的springboot应用识别图片中的行人、汽车、狗子、喵星人(JavaCV+YOLO4)

    docker环境运行,所以,整个实战简单来说分为三步 :制做基础镜像、开发SpringBoot应用、把应用做成镜像,如下图: 上述流程中的第一步制做基础镜像,已经在《制作JavaCV应用依赖的基础Docker...这个SpringBoot应用的功能很单一,如下图所示: 整个开发过程涉及到这些步骤:提交照片的网页、神经网络初始化、文件处理、图片检测、处理检测结果、在图片上标准识别结果、前端展示图片等,完整步骤已经整理如下图...application.properties,如下可见,除了常见的spring配置,还有几个文件路径配置,实际运行时,这些路径都要存放对应的文件给程序使用,这些文件如何获取稍后会讲到: ### FreeMarker...的每一行,如下图: postprocess方法执行完毕后,一张照片的识别结果就被放入名为detections的集合中,该集合内的每个元素代表一个识别出的物体,来看看这个元素的数据结构,如下所示,这些数据够我们在照片上标注识别结果了...命令,会编译源码,在target目录下生成文件yolo-demo-1.0-SNAPSHOT.jar 执行以下命令,可以从jar文件中提取出制作docker镜像所需的内容: mkdir -p target

    2.7K21

    【Python基础】Python3十大经典错误及解决办法

    三、 NameError 名字错误 当变量名、函数名或类名等书写错误,或者函数在定义之前就被调用等情况下,就会导致名字错误。...解决方法: 正确书写变量名、函数名或类名等,在使用变量前先进行赋值,将函数的定义放在函数调用之前,在使用第三方库前先进行导入、调包等等。即保证某个名字(标识符)先存在,才能被使用。...七、 UNboundLocalError 未初始化本地变量错误 在函数中,如果对未声明的全局变量进行修改操作,将会遇到这个错误。...9# Python将变量s视为一个本地的局部变量,但该变量未初始化。 解决方法: 在函数内使用全局变量时,使用global关键字对其进行声明即可。...解决方法: 在确保该路径下确实存在所写文件后,在读取文件路径前面加'r',表示只读,作为文件路径读取;或者使用双斜杠'\ \'来进行转义,形如:'E:\ \test\ \test_data.csv'。

    2.7K30

    SolidUI AI生成可视化,0.1.0版本模块划分以及源码讲解

    在这个 POM 文件中,主要有以下三个部分: Properties: 定义了各种依赖库的版本号。这是一种常见的管理项目中所有依赖库版本的方法,可以在一个地方定义和更新所有依赖的版本。...所有在此定义的依赖,都可以在子模块中直接使用而不用指定版本号。如果子模块中的依赖和此处的依赖冲突,那么会优先使用此处定义的版本。...4.2 solidui-common Constants: 这个类定义了一些全局常量,这些常量在整个项目中可能会用到。例如,HTTP头的键名、加密的密钥等。...在这个文件中,定义了几个服务:solidui-entrance、solidui-web、mysql 和 soliduimodelui。这些服务将会被 Docker 以容器的形式运行。...ConstantsSPI: 这个类定义了一些常量,这些常量在 SPI(服务提供接口)中可能会用到。

    47820

    如何基于 Docker 快速搭建 Springboot + Mysql + Redis 项目

    TOC 前言 有时候我们需要快速启动一些项目,但是环境往往折腾了好久,因此弄一个可以重用的快速搭建的教程,docker简直就是这方面的神器,Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中...本教程基于的前提条件: 机器已经安装配置好JDK1.8,并且环境变量已经配置成功 Maven已经配置好,IDEA中项目使用的默认Maven也配置成功 本地机器安装好Docker 顺便提一句,我用navicat...初始化数据库 主要是创建数据库以及测试使用的数据表,初始化数据库的语句: drop database IF EXISTS test; CREATE DATABASE test; use test; DROP...: [20211121195036.png] 3.创建项目 在IDEA中,File --> New --> Project --> Spring Initializr(选择JDK 8): [20211121212707...4.初始化代码 4.1 全局配置文件以及启动类 全局配置文件application.yml: server: port: 8081 spring: #数据库连接配置 datasource:

    1.1K20

    【Python】【天池龙珠计划笔记】Python中的异常处理

    索引超出序列的范围 KeyError:字典中查找一个不存在的关键字 MemoryError:内存溢出(可通过删除对象释放内存) NameError:尝试访问一个不存在的变量 UnboundLocalError...:访问未初始化的本地变量 ReferenceError:弱引用试图访问已经垃圾回收了的对象 RuntimeError:一般的运行时异常 NotImplementedError:尚未实现的方法 SyntaxError...ImportWarning:用于在导入模块过程中触发的警告 UnicodeWarning:与Unicode相关的警告 BytesWarning:与字节或字节码相关的警告 ResourceWarning...: 首先,执行try子句(在关键字try和关键字except之间的语句) 如果没有异常发生,忽略except子句,try子句执行后结束。...注意:else语句的存在必须以except语句的存在为前提,在没有except语句的try语句中使用else语句,会引发语法错误。

    1.2K10

    深入理解JVM,包含字节码文件,内存结构,垃圾回收,类的声明周期,类加载器

    组成-常量池 常量池的作用:保存字符串常量,类名,接口名,字段名,用于字节码指令的符号引用,可以避免相同内容的重复定义 常量池工作流程:常量池中的常量都有一个从1开始的编号,在字节码指令中通过编号可以快速找到对应的数据...方法区-概述 方法区的概述:方法区是存放基础信息的位置,线程共享,主要包括: 类的元信息:保存了所有类的基本信息 运行时常量池:保存了字节码文件中的常量池内容 静态常量池:字节码文件通过编号查表的方式找到常量...运行时常量池:当静态常量池加载到内存中后,可以通过内存地址快速查找常量池中的内容 字符串常量池:保存了字符串常量 7.7.2....,当代码编译成字节码后,abc字符串会存入静态常量池中,当程序运行字节码读取到内存后,abc字符串就会存入字符串常量池中,由于字符串对象是new关键字创建出来的,所以这个对象会存储在堆内存中,在栈内存中使用...复制算法 复制算法 介绍:开辟两块一模一样的内存空间,先标记未应用的对象后,将已引用的对象复制到未使用的内存空间,清空原来空间,再交换两者的位置 优点:不会产生内存碎片 缺点:占用双倍内存空间 8.4.

    34010

    IntelliJ IDEA 2023.1 最新变化

    如果您进一步调整布局,可以使用 Save Changes in Current Layout(保存当前布局中的更改)选项更新当前设置,或将这些更改保存为单独的自定义布局。...Classes(类)标签页中的排序算法现在也默认由机器学习驱动,与 Actions(操作)和 Files(文件)标签页中的结果相同。...在 Coverage(覆盖率)视图中筛选类的选项 在 IntelliJ IDEA 2023.1 中,您可以在 Coverage(覆盖率)视图中筛选类,关注最近更新的类和测试时需要特别注意的方法。...默认情况下,您将看到一个包含未提交更改的类列表。 第二个筛选选项可以隐藏完全覆盖的类。 九. 框架和技术 1....升级了 Scala 检查 Unused declaration(未使用的声明)检查得到许多修正和改进。 IntelliJ IDEA 现在可以检测项目 XML 文件中的符号用法。

    2.7K10
    领券