自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 收藏
  • 关注

原创 SpringBoot整合Mybatis快速入门

一. 前言​ 首先来介绍一下什么是SpringBoot简单来说就是约定大于配置,很多集成方案已经帮你选择好了,能不配置就不配置。回想当初Maven创建SSM工程,我们在pom.xml文件写了多少依赖,而在Spring和SpringMVC的配置文件写了多少配置;现在有了SpringBoot,它会为我们选择最合适的依赖,没有冗余代码生成和XML配置的要求(都给默认了)。二. 基于SpringBoot搭建SSM项目准备工作:java version “1.8.0_221”Apache Maven

2020-08-12 21:50:08 177 1

原创 Redis持久化之RDB演示

一. 前言​ 由于 Redis 是一个内存数据库,所谓内存数据库,就是将数据库中的内容保存在内存中,这与传统的MySQL,Oracle等关系型数据库直接将内容保存到硬盘中相比,内存数据库的读写效率比传统数据库要快的多(内存的读写效率远远大于硬盘的读写效率)。但是保存在内存中也随之带来了一个缺点,一旦断电或者宕机,那么内存数据库中的数据将会全部丢失。为了解决这个缺点,Redis提供了将内存数据持久化到硬盘,以及用持久化文件来恢复数据库数据的功能。Redis 支持两种形式的持久化,一种是RDB快照(sna

2020-08-07 20:20:16 185

原创 什么!1024你就给我看这 ConcurrentModificationException

前言​ 今天是1024节日,首先和大家说声节日快乐哈,也好久没更新过博客了,从去年停更以来这段时间确实经历了很多事情,也就是我从一个学生慢慢转变为一个职场人的过程,以后有机会的话可以和大家分享这段时间的经历。正文回到正题,今天主要和大家分享一个我之前在工作中遇到的一个异常。java.util.ConcurrentModificationExceptionemm…大家是不觉得稍微有点陌生,没关系,上代码,大家来看看这个异常是如何产生的。 List<String> list =

2021-10-24 22:24:45 188

原创 解决CORS : No ‘Access-Control-Allow-Origin’ header is present on the requested resource访问跨域问题

一. 抛出问题今天在使用写前端代码的时候,在HBuilder中用JQuery异步请求eclipse中的项目报出了下面的错误问题copy下来就是:Access to XMLHttpRequest at ‘http://localhost:6230/all/allexams?accId=1’ from origin ‘http://127.0.0.1:8848’ has been blocked by CORS : No ‘Access-Control-Allow-Origin’ header i

2020-08-26 21:37:21 6449

原创 SpringCloud神兽(五)之Zuul

一. Zuul路由网关概述Zuul包含了对请求的路由和过滤两个最主要的功能:其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础.Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他微服务的消息,也即以后的访问微服务都是通过Zuul跳转后获得。注意:Zuul服务最终还是会注册进EurekaZuul能干嘛:代理、路由、过滤二. 路由基

2020-08-25 15:47:50 250

原创 SpringCloud神兽(四)之Hystrix

一. Hystrix断路器概述分布式系统面临的问题复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败。服务雪崩多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“雪崩效应”.对于高流量的应用来说,单一的后端依赖可能会导致所有服务器上的所有资源都在几秒钟内饱和。比失败更糟

2020-08-23 15:42:46 186

原创 解决“org.xml.sax.SAXParseException: 元素内容必须由格式正确的字符数据或标记组成”

抛出问题分享一下今天写代码碰到的一个小问题吧,个人认为是一个比较细节的知识点不多说,上图可以看到异常信息为: org.xml.sax.SAXParseException: 元素内容必须由格式正确的字符数据或标记组成。解决方案当你看到这个异常的时候,大概率就是你的SQL映射文件写错了我找到了我的SQL映射文件,最终发现了问题原来在SQL映射文件里 <= 和 >= 属于特殊字符需要添加<![CDATA[]]>我的解决如下:这样就不会报错了希望可以帮到你!.

2020-08-23 15:40:25 5727 1

原创 SpringCloud神兽(三)之Feign

一. Feign负载均衡(接口式编程)概述Feign是一个声明式的Web服务客户端,使得编写Web服务客户端变得非常容易,只需要创建一个接口,然后在上面添加注解即可。Feign能干什么Feign旨在使编写Java Http客户端变得更容易。前面在使用Ribbon+RestTemplate时,利用RestTemplate对http请求的封装处理,形成了一套模版化的调用方法。但是在实际开发中,由于对服务依赖的调用可能不止一处,往往一个接口会被多处调用,所以通常都会针对每个微服务自行封装一些客户端类来包装

2020-08-21 19:05:24 165

原创 SpringCloud神兽(二)之Ribbon

一. Ribbon概述Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们也很容易使用Ri

2020-08-20 22:15:10 107

原创 Eureka对比Zookeeper,到底谁更优秀

一. 作为服务注册中心,Eureka比Zookeeper好在哪里著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性P在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡。因此Zookeeper保证的是CP,Eureka则是AP。二. 详谈CAP理论1.一致性在分布式环境中,一致性是指数据在多个副本之间是否能够保持一致的特性。在一致性的需求下,当一个系统在数据一致的状态下执行更新操作后,应该保证系统的数据任然处于一致的状态。

2020-08-19 19:45:23 533

原创 SpringCloud神兽(一)之Eureka

一. Eureka的基本架构Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现(请对比Zookeeper)。Netflix在设计Eureka时遵守的就是AP原则。CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得Eureka 采用了 C-S 的设计架构。Eureka Server 作为服务注册功能的服务器,它是服务

2020-08-17 22:33:07 132

原创 SpringCloud入门概述

一. SpringCloud简介SpringCloud,基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开源组件做高度抽象封装之外,还有一些选型中立的开源组件。SpringCloud利用SpringBoot的开发便利性巧妙地简化了分布式系统基础设施的开发,SpringCloud为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由网关、微代理、事件总线、全局锁、决策竞选、分布

2020-08-16 11:06:17 140

原创 微服务简介

一. 什么是微服务微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底地去耦合,每一个微服务提供单个业务功能的服务,一个服务做一件事,从技术角度看就是一种小而独立的处理过程,类似进程概念,能够自行单独启动或销毁,拥有自己独立的数据库。二. 微服务和微服务架构**微服务:**强调的是服务的大小,它关注的是某一个点,是具体解决某一个问题/提供落地对应服务的一个服务应用,狭意的看,可以看作Eclipse里面的一个个微服务工程/或者Module**微服务架构:**是一种架构模式,它提倡

2020-08-15 15:56:06 115

原创 解决SpringBoot“Cannot determine embedded database driver class for database type NONE”问题

一. 前言​ 说一下今天的心路历程吧,崩溃了(笑哭),今天第一次接触springboot,不得不说太香了,但却碰到了一个令人头疼的问题,不多说,上图。就是这个Cannot determine embedded database driver class for database type NONE,翻译过来的意思是无法确定数据库类型none的嵌入式数据库驱动程序类二. 解决思路从翻译结果的角度来看,估计是和我们数据库或者数据库驱动的配置有关SpringBoot全局配置文件看起来似乎没什

2020-08-10 21:10:37 6299

原创 深入理解Redis事务

一.Redis事务简介可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入,不许加塞Redis事务的作用:一个队列中,一次性、顺序性、排他性的执行一系列命令二.Redis事务演示①正常执行②取消事务 discard③全体连坐------事务块中指令语法错误④冤头债主------所有事务块中的指令没有语法错误,但是执行某一条指令出现错误,其他指令正常执行⑤watch监控案例:初始化信用卡额度(balance)及欠额(de

2020-08-09 16:26:11 166

原创 Redis五大数据类型

一. String(字符串)​ string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M。常用指令:set k1 v1get k1del k1 //删除键k1append k1 abc //在k1的value后追加ab

2020-08-08 11:02:06 117

原创 Linux系统下安装JDK及Tomcat

一. 前言今天来教大家如何在Linux系统中安装jdk及tomcat二. 安装操作2.1安装jdk①下载jdk可以去官网下载,记得选择linux版本,官网地址:www.orcal.com②将jdk放入到opt目录后解压③查看解压后的目录,ls即可④配置环境变量,修改文件 /etc/profile 文件就是环境变量的配置文件将jdk的bin目录配置到path变量将jdk的安装目录配置到JAVA_HOME目录⑤配置完成之后需要注销用户,环境变量才能够生效 3 的级别使用logout

2020-08-06 20:28:24 420

原创 Linux指令大全,看完就不会在“黑窗体”下迷茫了

一. 前言分享一波Linux实用指令二. 指令大全1.帮助指令介绍:当我们对某个指令不熟悉的情况下,我们通过Linux的帮助指令来了解这个指令的使用方法,但是很不幸,帮助指令的结果全是英文。①man指令基本语法:man [命令或者配置],用来获得帮助信息举例:我们知道ls可以看到目录中的所有内容,通过man ls 查询ls 指令的选项②help指令基本语法:helo 指令案例:③当遇到一个不熟悉的指令时,建议百度2.文件目录类指令①pwd指令基本语法:pwd功能描述:显示当

2020-08-05 20:10:22 245

原创 Linux用户管理指令大全

一. 用户管理基本介绍Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须使用系统管理员账户统一的申请,然后这个账户才能够使用系统资源。任何的账户都必须存在于一个组中。图例如下:二. 用户管理基本指令1.添加用户​ useradd mayun (添加新用户 mayun)2.给用户指定密码​ passwd mayun (给用户mayun设置密码)3.删除用户​ userdel mayun (删除用户mayun)4.查询用户​ id mayun (查询用户

2020-08-04 20:26:09 344

原创 Linux关机重启指令及指定运行级别

一. 关机重启指令基本介绍:​ shutdown:关机指令​ shutdown -h now:现在立刻关机​ shutdown -h 1:表示1分钟之后关机​ shutdown -r now:表示立即重启​ shutdown -r 1:表示1分钟之后重启1​ halt:现在立刻关机​ reboot:表示立即重启​ syn:关机或重启之前将数据同步到磁盘,防止内存数据丢失。二. 用户登录和注销1.用户登录最好尽量少用root账户,因为root账户是管理员,拥有最高权限,不使用root就是

2020-08-03 21:10:22 266

原创 Linux中vi和vim编辑器的介绍

一. vi和vim编辑器的介绍所有的Linux系统都会内建VI编辑器,Vim是具有编程能力的编辑器,可以看做是VI的升级版,可以主动的一字体颜色辨别语法中的正确性,方便程序的编写,代码编译以及错误跳转等等方便编程功能,在程序员中被广泛使用。二. vi和vim三种常见模式2.1正常模式(一般模式)在正常模式下,可以使用快捷键,其他的模式不能使用快捷键。以vim方式打开一个文件就是进入了正常模式,在这个模式中,我们可以使用上下左右来移动光标,可使用删除字符或者删除整行来处理文档内容,也可以使用复制粘贴处

2020-08-02 21:32:23 185

原创 Maven安装配置详细教程,看完就会用Maven了

一. Maven是什么Maven是目前最流行的自动化构建工具,并不是作用域代码开发的任何一层,跟Git一样,对辅助编码没有作用,在开发环境中,一个大的项目往往需要很多的工程,一个项目不仅仅是一个工程。在这个时候,多个工程整合在一起,那么就需要使用Maven这种自动化构建工具。二. Maven解决了什么问题①: 我们现在的开发,一个项目就是一个工程,如果项目非常庞大,就不再适合使用package来划分模块,最好的方式就是每个模块就是一个全新的工程,对于我们工作的划分协调和代码维护来说,借助Maven就可

2020-08-01 19:14:37 1845

原创 H5之sessionStorage(会话存储)和localStorage(本地存储)入门使用

Web 存储 API 提供了 sessionStorage (会话存储) 和 localStorage(本地存储)两个存储对象来对网页的数据进行添加、删除、修改、查询操作。localStorage 用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去除。sessionStorage 用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据,在一次会话中有效。二者都是通过键值对(key/value)存储值用sessionStorage存储值(设置值)//将js

2020-07-31 20:39:05 633

原创 Mybatis缓存策略

一. 前言MyBatis是一个持久化层框架,提供了缓存策略,但是做缓存的话MyBatis不专业,专业的缓存是Redis和MongBD,所以在开发中用的不多,但是面试经常会问到,什么是缓存:比如我们在使用某个系统的时候,对于登录用户的可操作权限,每个人的权限基本上是固定的,如果每次登录都从数据库中查询权限的话,在用户量一大的情况下,势必会加重数据库的压力,所以有些常用的数据,我们在第一次查询之后,将查询结果集加入到缓存(内存)中,第二次查询的时候,就不必再次进行数据库的查询,而是直接从缓存中读取数据。MyB

2020-07-30 19:25:01 466

原创 Mybatis之动态sql

一.动态sql的介绍需求:查询员工信息,要求传入的参数为Emp对象,如果empName不为空,需要根据empName查询,如果empMail不为空,需要根据empMail查询,如果empGender不为空,要求根据empGender查询,要求如果deptId不为空,要求根据deptId查询。类似于以上的需求,必须使用MyBatis的动态sql,动态sql是MyBatis强大的特性之一,能够极大的简化我们sql拼装的过程,动态sql使用标签完成动态sql,类似于我们用过的jstl,获取和其他的xml类似的

2020-07-29 20:04:26 182

原创 Mybatis传参时使用$和#的区别

一. 前言很多小伙伴不太清楚Mybatis传参时使用$和#的区别,今天就来为大家解答一下二. $和#的区别<!-- public List<Emp> selectEmpByEmpNameLike(String empName,Integer startSize,Integer pageSize,List<Integer> ids); --> <select id="selectEmpByEmpNameLike" resultType="com.wa

2020-07-28 15:37:11 785

原创 ssm整合“保姆级”教程

一. 前言学习了有一段时间了,总算是把后端三大框架ssm学完了,今天就来整合一下ssm。二. 整合步骤创建web工程导入相应的jar包,特别注意:Spring整合Mybatis需要导入jar包(mybatis-spring-1.3.0.jar)配置外部属性文件 db.propertiesdriver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/ssm?characterEncoding=utf-8&useUnicode=

2020-07-27 19:36:12 152

原创 Oracle中使用序列化来完成主键自增

一. Oracle中使用序列化来完成主键自增Oracle数据库中,并没有主键自增这一说法,而是通过序列化完成自增主键值的获取create table emp_721(​ emp_id number(11) primary key,​ emp_name varchar2(20) not null,​ emp_mail varchar2(30) not null,​ emp_gender number(1) not null,​ dept_id number

2020-07-27 17:24:41 1172 2

原创 解决html之间传递参数且参数为中文时出现的乱码问题

一. 前言现在互联网开发都是前后端分离的,有时候我们需要在html之间传递参数和获取参数值,这时候该怎么来做呢?二. 场景**需求:**在首页有一个搜索框和搜索按钮,在首页输入要搜索的商品,点击搜索按钮进行查询,查询结果要在另外一个页面进行展示。**思路:**既然要在另外一个页面进行展示,那肯定要获取主页输入框中的值,然后通过ajax请求后端,将响应的结果展示在前端。实现步骤:var searchText = $("#search-text").val(); //获取输入框的内容//encod

2020-07-27 17:13:08 1426

原创 Mybatis对各种参数的处理

一. Mybatis参数的处理在正常的开发中,参数可能是单个参数,也可能是多个参数,也可能是实体类的对象,这些是较常见的,还有一些特殊的,比如参数是map键值对,是list,除了map和list之外还有其他的多个参数。①单个参数(Integer empId):单个参数MyBatis不会做任何特殊处理,在SQL映射文件中使用任意的参数名称都可以取得该参数②多个参数(String empName,Integer pageCurrent,Integer pageSIze):首先我们测试一下多个参数,看情况

2020-07-26 19:04:01 899

原创 解决通过ajax请求后端进行登录时,第一次登录不成功,第二次登录成功的问题

一. 前言​ 相信很多小伙伴都有遇到这样一个现象,给登录按钮绑定单击事件,然后在事件方法中发送ajax请求,根据后端响应的数据判断是否登录成功。而当我们在前端输入正确的账号、密码的时候,第一次登录可以获取到后端响应的数据,但却跳转不到指定的页面;再一次输入账号密码的时候就可以跳转到指定的页面。二. 情景重现<form class="form-row"> <h1 class="last-title mb-30 text-cente

2020-07-26 15:53:28 1710 1

原创 Mybatis全局配置文件

一. 引入外部属性文件_properties像在Spring中,数据库连接的相关的配置都是在外部的properties文件中进行的,在MyBatis依然使用这种形式。在类路径下添加db.properties:### MYSQL mysql.driver=com.mysql.jdbc.Drivermysql.url=jdbc:mysql://127.0.0.1:3306/ssm?characterEncoding=utf-8&useUnicode=truemysql.user=root

2020-07-24 23:09:33 137

原创 Mybatis添加全局配置文件dtd约束

一. 前言我们在进行开发的时候,发现Eclipse中没有全局配置文件和SQL映射文件的联想,我们引入DTD约束之后,能够在Eclipse中更加快速的开发全局配置文件和SQL映射文件。我们需要引入的DTD约束,这个文件在联网的状态下可以自动下载,没有联网也没有关系,我们的MyBatis的jar包中就存在这两个文件,存在的目录:org.apache.ibatis.bulider.xml,我们可以直接解压这个jar包。添加全局配置文件DTD约束。二. 引入dtd文件步骤①:打开Eclipse的配置,找到D

2020-07-23 20:25:59 616

原创 Oracle保姆级安装教程

一. 前言今天来教大家来安装一下Oracle数据库,首先来介绍一下Oracle数据库:Oracle是世界上最大的中间件、数据库、编程语言的提供商,最早的Oracle公司的产生是由IBM的一个分析员写了一篇论文《论关系型数据库的发展》,从而开始创办的,而Oracle在古希腊神话中被称为“神谕”,表示的上天的指示或者安排,而在中国古代,将一些刻在龟背上的文字称为上天的指引或者安排,所在国内Oracle被翻译成甲骨文。Oracle公司的主要产品:以Unix操作系统为主,使用Oracle数据库,并且提供Web

2020-07-22 23:10:38 276

原创 Mybatis简介及入门小程序

一. Mybatis简介MyBatis原本是Apache下的一个项目,但是在MyBatis2.0 及 1.0版本的时候,人家不叫MyBatis,而是叫做IBatis,所以以后大家不管是MyBatis还是IBatis,实际上是一回事。是因为在IBatis3.0版本即将推出的时候,这个团队整体的转战到了谷歌旗下,3.0之后就叫做MyBatis了,MyBatis是一个非常优秀的持久化层的半自动框架,和之前学习的JDBC,DBUtil,JdbcTemplate一样,但是JDBC原生的技术,是Java连接数据库的标

2020-07-21 21:00:18 188

原创 Spring,SpringMVC,Jquery实现分页功能

一. 需求在项目当中,我们经常会碰到数据分页的需求。今天,我们就通过Spring,SpringMVC,Jquery实现数据的分页。这是一个买书小案例,实现书籍数据的分页显示。具体效果:二. 思路首先,分页的操作是在数据访问层实现,前端负责传递参数,即当前显示第几页,每页显示的数据笔数。我们通过4个按钮来改变当前第几页。我们要查询所有的数据笔数,用于计算总页数。当前为第一页时,首页和上一页的按钮失效,当前为最后一页时,尾页和下一页的按钮失效。三. 具体实现首先,数据访问层:pub

2020-07-20 19:13:49 358

原创 SpringMVC执行流程

一. SpringMVC执行流程由图可知,SpringMVC执行流程可以这样分析:前端发送请求到DispatcherServlet(前端控制器)前端控制器判断是否有对应的映射存在,如果不存在,则会在SpringMVC上下文寻找是否配置mvc:default-servlet-handler,如果没配置,则出现404错误,如果配置了,就去获取目标资源,如果目标资源不存在,则出现404错误。如果存在请求相对应的映射,前端控制器DispatcherServlet将调用处理器适配器HandlerMappi

2020-07-19 20:25:27 72

原创 SpringMVC异常解析器

一. 前言我们在程序开发的时候,控制层难免会出现异常,出现异常之后直接在页面显示500肯定不合适,如果显示的内容不是500,而是一些友好的提示性信息,比较合适。二. ExceptionHandler注解SpringMVC上下文中,已经装配好了异常解析器对象:ExeceptionHandlerExceptionResolver,所有的其他装配异常解析器都是ExeceptionHandlerExceptionResolver的子类。异常处理步骤① 编写异常处理器@ControllerAdvice

2020-07-19 20:22:23 187

原创 SpringMVC之拦截器

一. 前言最擅长使用拦截器框架就是Struts2,因为Struts2的几乎所有的功能都是靠Struts2的拦截器完成的。SpringMVC里面也有定义一些拦截器,完成一些功能,比如进行国际化操作时的本地化拦截器。SPringMVC的拦截器会对请求进行拦截,用户也可以自定义拦截器来实现特定的功能,SpringMVC中提供了一个拦截器的接口:HandlerInterceptor,所有的拦截器都必须实现这个接口:preHandle():在执行处理器的目标方法之前执行,可以对用户的请求进行处理。postH

2020-07-19 20:20:54 116

原创 Springmvc实现文件上传

一. 前言在SpringMVC中,我们是通过FileUpload组件来进行文件上传的。二. 文件上传的步骤SpringMVC中,为文件的上传提供了直接的支持,这种支持是使用可插拔的组件MultipartResolver实现的,SPring使用FileUpload实现了MultipartResolver接口,实现类名称叫做CommonsMultipartResolver,SpringMVC上下文中并没有默认装配MultipartResolver,因此默认情况是进行不了文件上传的,需要我们在SpringM

2020-07-17 23:09:56 116

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除