- SpringBoot实战:整合Redis、mybatis,封装RedisUtils工具类等(附源码)
2401_84003839
程序员springbootredismybatis
result=true;}catch(Exceptione){e.printStackTrace();}returnresult;}/***写入缓存设置时效时间*@paramkey*@paramvalue*@return*/publicbooleanset(finalStringkey,Objectvalue,LongexpireTime){booleanresult=false;try{Valu
- 爬虫中一些有用的用法
才不是小emo的小杨
爬虫xpath
文本和标签在一个级别下如果文本和a标签在一个级别下比如:#获取a标签后的第一个文本节点text_node=a.xpath('following-sibling::text()[1]')[0].strip()将xpath的html代码转换成字符串etree.tostring(root,pretty_print=True,encoding="utf-8")获取所有同级标签的最后一个data_list=
- 【面试题系列】Redis 常见面试题&答案
颜淡慕潇
面试题系列redis数据库缓存
一、基础概念1.Redis有哪些数据结构?各自的应用场景是什么?答案:Redis支持以下数据结构:String:最基础类型,存储字符串、数字、二进制数据。场景:缓存用户信息、计数器、分布式锁。Hash:键值对集合,类似Java的HashMap。场景:存储对象(如用户属性)。List:双向链表,支持左右插入和弹出。场景:消息队列(LPUSH+RPOP)、微博时间线。Set:无序唯一集合,支持交集、并
- 【懒人精灵】免费网络验证源码分享
九黎AJ
懒人精灵懒人精灵
个人简介个人主页:九黎aj♂️幸福源自奋斗,平凡造就不凡如果文章对你有用,麻烦关注点赞收藏走一波,感谢支持!欢迎订阅我的专栏:autojspythonQQ群:698307198文章目录前言总结加入交流群前言为什么使用百宝云神烦云免费网络验证做教学因为它免费并且功能多注册地址http://useryz.91shenfan.com/index.php?user/login&refurl=http:
- HarmonyOS NEXT 实战系列-综合案例新闻页
harmonyos-next
预览图片编辑接口文档编辑实现步骤:准备ForEach遍历数据的页面使用http获取数据渲染落地代码:准备ForEach遍历数据的页面interfaceNews{id:numbertitle:stringsource:stringcmtcount:numberimg:stringtime:string}@Entry@ComponentstructIndex{@StatenewsList:News[]
- 【编程向导】-JavaScript-基础语法-类型检测
wtrees_松阳
javaScript知识图谱javascript原型模式开发语言
类型检测类型检测的方法:typeofinstanceofObject.prototype.toStringconstructortypeoftypeof操作符返回一个字符串,表示未经计算的操作数的类型。typeofundefined;//"undefined"typeofnull;//"object"typeof100;//"number"typeofNaN;//"number"typeoftru
- Python面试题:如何在 Python 中反转一个字符串?
超哥同学
Python系列pythonwindows开发语言面试编程
在Python中反转一个字符串有多种方法,下面详细介绍几种常用的方法,并扩展相关的知识点。方法1:使用切片Python的切片(slice)功能强大,反转字符串可以通过负步长实现。#示例original_string="hello"reversed_string=original_string[::-1]print(reversed_string)#输出:"olleh"解释:original_str
- 点云边缘提取及可视化
Alan Lan
PCL
点云素材:bunny.txt#include#include#includevoidCreateCloudFromTxt(conststd::string&file_path,pcl::PointCloud::Ptrcloud){std::ifstreamfin(file_path.c_str());std::stringline;pcl::PointXYZpoint;while(getline(
- 封装AJAX(带详细注释)
Rverdoser
okhttp
封装AJAX请求是前端开发中常见的需求,可以帮助我们简化代码,提高可重用性。下面我将通过JavaScript(使用XMLHttpRequest对象)和现代JavaScript(使用FetchAPI)两种方式来展示如何封装AJAX请求。1.使用XMLHttpRequest封装AJAXfunctionajax(method,url,data,callback){//创建XMLHttpRequest对象
- (done) 梳理 xv6-lab-2023 LAB8 实验代码(kalloctest,理清 test1)
shimly123456
MIT6.S081学习笔记操作系统
url:https://pdos.csail.mit.edu/6.1810/2023/labs/lock.html先看kalloctest.cmain函数:intmain(intargc,char*argv[]){test1();test2();test3();exit(0);}运行kalloctest,如下:可以看到只有test1失败了,因此只需要关注test1此外,还需关注红圈圈起来的数字代表
- HarmonyOS NEXT 实战系列05-案例回关粉丝
harmonyos-next
编辑需求:提取FansItemComp组件进行复用,使用@Prop接收数据保证组件UI可动态渲染封装getFansAndFollowCount方法获取互关人数且渲染传入onChange方法,当子组件状态发送变更通知父组件进行列表数据更新代码:interfaceFansItem{avatar:Resourcename:stringtitle:stringisFollow:boolean}@Entry
- java字符串练习题_java练习题——字符串
阿呆java
java
一.动手动脑之String.equals()方法:判断s1和s2的内容相同s1.equals(s2)。判断s1和s2的地址相同s1==s2。二.整理String类的Length()、charAt()、getChars()、replace()、toUpperCase()、toLowerCase()、trim()、toCharArray()使用说明1、length()字符串的长度2、charAt()截
- python爬虫网络中断_如何解决Python爬虫中的网络掉线问题?
weixin_39767645
python爬虫网络中断
在学校里的时候,除了上课,还有一大幸福的事情,就是用着学校的网线网络。当然玩的时候很开心,就是没事关键词时刻掉链子。时不时地网络掉线让人非常恼火,什么团战在梦游啊,看剧卡住不动了,相信能引起很多小伙伴的共鸣。所以,为了大家的快乐,小编找到了一个解决办法,分享给大家。以山东大学网络为例,别的话不多说,直接上程序__author__='CQC'#-*-coding:utf-8-*-importurll
- 本地正常但是线上/测试环境报错MethodArgumentTypeMismatchException异常
王德印
后端Java开发问题总结springmvcspringboot异常后端前后端报错java
目录背景原因问题分析解决方案背景报错如下:org.springframework.web.method.annotation.MethodArgumentTypeMismatchException:Failedtoconvertvalueoftype'java.lang.String'torequiredtype'java.lang.Long';nestedexceptionisjava.lang
- python爬虫遇到IP被封的情况,怎么办?(2)
2301_82242251
程序员python爬虫开发语言
代理的设置:①urllib的代理设置fromurllib.errorimportURLErrorfromurllib.requestimportProxyHandler,build_opener‘’’更多Python学习资料以及源码教程资料,可以在群1136201545免费获取‘’’proxy=‘127.0.0.1:8888’#需要认证的代理#proxy=‘username:password@12
- Java字符串以“.“分割
slient_love
软件开发
今天开发中需要对图片地址进行拼接,使用字符串分割函数split()进行处理,发现数组为空:Stringtemp=image[i];String[]str=temp.split(".");在百度之后发现,需要使用转义字符。测试成功~String[]str=temp.split("\\.");注意哦,在正则表达式中,小数点指的是任意字符,因此不能直接用".“来匹配小数点,需要使用”\\."来匹配小数点
- Python中的字节操作
无聊到发博客的菜鸟
python嵌入式单片机
字节与整形互转int.from_bytes(返回int)a=bytes([0x00,0x01,0x22,0x71])#74353=0x00012271#这里的是以字节流的形式判断大小端,高位在前,所以是大端print(int.from_bytes(a,byteorder="big",signed=False))#输出74353b=bytes([0xff,0xfe,0xdd,0x8f])#-7435
- 2025最全 Java 面试八股文(持续更新)
关注我学java
java面试开发语言
Java面试Java面试随着时间的改变而改变。在过去的日子里,当你知道String和StringBuilder的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入。在我初入职场的时候,类似于Vector与Array的区别、HashMap与Hashtable的区别是最流行的问题,只需要记住它们,就能在面试中获得更好的机会,但这种情形已经不复存在。如今,你将会被问到许多
- Neo4j之CQL基础
风云诀4
图数据库知识图谱大数据人工智能
Neo4j之CQL基础文章目录Neo4j之CQL基础一、CQL概念二、CQL简介三、CQL命令使用creatematch+returnwheredeleteremovesetorderbymerge四、CQL函数使用StringAggregationRelationship一、CQL概念关系型数据库的查询语言是SQL,Neo4j图数据库也有自己的查询语言,那就是CQL。CQL全称CypherQue
- Kotlin字符串操作在Android开发中的应用示例
qhs1573
kotlin开发语言android
Kotlin字符串操作在Android开发中的应用示例引言在Android开发中,Kotlin已经成为主流的编程语言,它提供了许多便捷的字符串操作功能。本文将结合一个具体的Kotlin示例程序,详细介绍Kotlin中字符串的创建、格式化和使用方法。示例代码以下是示例代码:privatefunprintStr(){//多行字符串valstr:String="""你好这是换行的字符串""".trimI
- macOS 安装 Homebrew、nvm 及安装切换 node 版本
陈龙龙的陈龙龙
macosbash前端
一、安装Homebrew提示:在安装nvm时,如果使用brew方式安装,就要先安装Homebrew1、打开终端,输入以下指令(官网可获取最新命令):国外镜像/bin/bash-c"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"国内镜像/bin/zsh-c"$(curl-fsSLhttps
- Dockerfile Add和Copy的区别。
LeonNo11
docker前端
在Dockerfile中,ADD和COPY都用于将文件或目录从构建上下文(通常是Dockerfile所在的目录)复制到Docker镜像中,但它们有一些关键区别:1.COPY指令COPY主要用于复制本地文件或目录到容器的指定路径。语法COPY特性✅仅支持复制本地文件或目录(不能从远程URL复制)。✅不会自动解压.tar压缩包(需要手动RUNtar-xvf)。✅适用于简单的文件复制操作。示例COPYi
- Mac安装Neo4j图数据库
你白勺男孩TT
macosneo4j数据库
通过Homebrew安装(推荐)打开mac终端:1.安装Homebrew(如果尚未安装)/bin/bash-c"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"2.安装Neo4jbrewinstallneo4j3.启动Neo4j服务brewservicesstartneo4j#后台运行#或
- 【C++ 系列文章 基础 01 -- std::string 与 fmt::format】
主公讲 ARM
#C++系列文章c++开发语言C++
文章目录Overview1.C++中的std::string简介2.fmt::format格式化函数简介3.示例代码解析4.应用场景与优势2.std::string与fmt::format简介std::stringfmt::format3.代码解析3.1格式化字符串生成3.2调用函数cmd_handler3.3返回id_code4.代码整体流程与应用场景5.总结Overview下面将详细介绍C++
- 介绍 DotNet 库 - Viyi.Strings
Viyi.Strings是一个.NET库,支持.NetStandard2.0和.Net5。从名字就能看出来,这个库的主要目的是解决对字符串和文本的一些操作。总的来说,Viyi.Strings目前的版本提供了如下一些功能:基于文本的编/解码,支持Base64和Hex(十六进制)编/解码,但不止于此;提供扩展方法对空字符串和空白字符串进行快速处理;提供字符串大小写转换框架,并默认提供了camelCas
- 构建JSBridge鸿蒙示例代码
本文原创发布在华为开发者社区。介绍本示例实现了简单的JSBridge,使H5和原生两侧可以互相调用对方的方法。构建JSBridge源码链接效果预览使用说明打开应用后,点击调用native按钮,实现原生方面调用H5方法,在后台打印数据。实现思路原生调H5invokeHandle(handleName:string,callbackName:string){try{this.webviewContro
- vite+vue+ts+element-plus从零开发管理后台框架(20)-多页签移除和跳转
vue3
多页签添加移除方法编辑src/store/fastnav.ts,添加removeData方法。removeData(path:string):string{if(this.datas.length{{item.desc}}script段添加onTagClose方法。constonCollapseSwitch=()=>{menuStore.collapse=!menuStore.collapse}c
- html无法显示图片解决方法
BingJJJ
html前端java
问题:只能插入网络上的图片,而不能插入本地图片,会出现无法解析的情况,只能显示图片的alt/*本地图片无论使用什么路径都无法插入*//*网络图片链接可以插入*/解决:在根目录的static(静态文件)下插入,使用url_for函数
- base64加密解密
架构师成长进阶空间
Javajava
packagecom.github.util;importorg.apache.tomcat.util.codec.binary.Base64;publicclassBase64Util{//加密publicstaticStringgetBase64(Stringstr){StringencodeBase64String=Base64.encodeBase64String(str.getBytes
- 关于std::vector<std::string>的操作
android framework
c++和ndk开发c++算法开发语言
知识点1std::vectorstd::string作为返回参数voidGetConfigState(std::vectorstd::string&vtTemp)2对于std::vectorstd::string取值操作std::vectorstd::string::iteratortheIterator;for(theIterator=vtTemp.begin();theIterator!=vt
- 开发者关心的那些事
圣子足道
ios游戏编程apple支付
我要在app里添加IAP,必须要注册自己的产品标识符(product identifiers)。产品标识符是什么?
产品标识符(Product Identifiers)是一串字符串,它用来识别你在应用内贩卖的每件商品。App Store用产品标识符来检索产品信息,标识符只能包含大小写字母(A-Z)、数字(0-9)、下划线(-)、以及圆点(.)。你可以任意排列这些元素,但我们建议你创建标识符时使用
- 负载均衡器技术Nginx和F5的优缺点对比
bijian1013
nginxF5
对于数据流量过大的网络中,往往单一设备无法承担,需要多台设备进行数据分流,而负载均衡器就是用来将数据分流到多台设备的一个转发器。
目前有许多不同的负载均衡技术用以满足不同的应用需求,如软/硬件负载均衡、本地/全局负载均衡、更高
- LeetCode[Math] - #9 Palindrome Number
Cwind
javaAlgorithm题解LeetCodeMath
原题链接:#9 Palindrome Number
要求:
判断一个整数是否是回文数,不要使用额外的存储空间
难度:简单
分析:
题目限制不允许使用额外的存储空间应指不允许使用O(n)的内存空间,O(1)的内存用于存储中间结果是可以接受的。于是考虑将该整型数反转,然后与原数字进行比较。
注:没有看到有关负数是否可以是回文数的明确结论,例如
- 画图板的基本实现
15700786134
画图板
要实现画图板的基本功能,除了在qq登陆界面中用到的组件和方法外,还需要添加鼠标监听器,和接口实现。
首先,需要显示一个JFrame界面:
public class DrameFrame extends JFrame { //显示
- linux的ps命令
被触发
linux
Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。
要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行
- Android 音乐播放器 下一曲 连续跳几首歌
肆无忌惮_
android
最近在写安卓音乐播放器的时候遇到个问题。在MediaPlayer播放结束时会回调
player.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.reset();
Log.i("H
- java导出txt文件的例子
知了ing
javaservlet
代码很简单就一个servlet,如下:
package com.eastcom.servlet;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.net.URLEncoder;
import java.sql.Connection;
import java.sql.Resu
- Scala stack试玩, 提高第三方依赖下载速度
矮蛋蛋
scalasbt
原文地址:
http://segmentfault.com/a/1190000002894524
sbt下载速度实在是惨不忍睹, 需要做些配置优化
下载typesafe离线包, 保存为ivy本地库
wget http://downloads.typesafe.com/typesafe-activator/1.3.4/typesafe-activator-1.3.4.zip
解压r
- phantomjs安装(linux,附带环境变量设置) ,以及casperjs安装。
alleni123
linuxspider
1. 首先从官网
http://phantomjs.org/下载phantomjs压缩包,解压缩到/root/phantomjs文件夹。
2. 安装依赖
sudo yum install fontconfig freetype libfreetype.so.6 libfontconfig.so.1 libstdc++.so.6
3. 配置环境变量
vi /etc/profil
- JAVA IO FileInputStream和FileOutputStream,字节流的打包输出
百合不是茶
java核心思想JAVA IO操作字节流
在程序设计语言中,数据的保存是基本,如果某程序语言不能保存数据那么该语言是不可能存在的,JAVA是当今最流行的面向对象设计语言之一,在保存数据中也有自己独特的一面,字节流和字符流
1,字节流是由字节构成的,字符流是由字符构成的 字节流和字符流都是继承的InputStream和OutPutStream ,java中两种最基本的就是字节流和字符流
类 FileInputStream
- Spring基础实例(依赖注入和控制反转)
bijian1013
spring
前提条件:在http://www.springsource.org/download网站上下载Spring框架,并将spring.jar、log4j-1.2.15.jar、commons-logging.jar加载至工程1.武器接口
package com.bijian.spring.base3;
public interface Weapon {
void kil
- HR看重的十大技能
bijian1013
提升能力HR成长
一个人掌握何种技能取决于他的兴趣、能力和聪明程度,也取决于他所能支配的资源以及制定的事业目标,拥有过硬技能的人有更多的工作机会。但是,由于经济发展前景不确定,掌握对你的事业有所帮助的技能显得尤为重要。以下是最受雇主欢迎的十种技能。 一、解决问题的能力 每天,我们都要在生活和工作中解决一些综合性的问题。那些能够发现问题、解决问题并迅速作出有效决
- 【Thrift一】Thrift编译安装
bit1129
thrift
什么是Thrift
The Apache Thrift software framework, for scalable cross-language services development, combines a software stack with a code generation engine to build services that work efficiently and s
- 【Avro三】Hadoop MapReduce读写Avro文件
bit1129
mapreduce
Avro是Doug Cutting(此人绝对是神一般的存在)牵头开发的。 开发之初就是围绕着完善Hadoop生态系统的数据处理而开展的(使用Avro作为Hadoop MapReduce需要处理数据序列化和反序列化的场景),因此Hadoop MapReduce集成Avro也就是自然而然的事情。
这个例子是一个简单的Hadoop MapReduce读取Avro格式的源文件进行计数统计,然后将计算结果
- nginx定制500,502,503,504页面
ronin47
nginx 错误显示
server {
listen 80;
error_page 500/500.html;
error_page 502/502.html;
error_page 503/503.html;
error_page 504/504.html;
location /test {return502;}}
配置很简单,和配
- java-1.二叉查找树转为双向链表
bylijinnan
二叉查找树
import java.util.ArrayList;
import java.util.List;
public class BSTreeToLinkedList {
/*
把二元查找树转变成排序的双向链表
题目:
输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。
要求不能创建任何新的结点,只调整指针的指向。
10
/ \
6 14
/ \
- Netty源码学习-HTTP-tunnel
bylijinnan
javanetty
Netty关于HTTP tunnel的说明:
http://docs.jboss.org/netty/3.2/api/org/jboss/netty/channel/socket/http/package-summary.html#package_description
这个说明有点太简略了
一个完整的例子在这里:
https://github.com/bylijinnan
- JSONUtil.serialize(map)和JSON.toJSONString(map)的区别
coder_xpf
jqueryjsonmapval()
JSONUtil.serialize(map)和JSON.toJSONString(map)的区别
数据库查询出来的map有一个字段为空
通过System.out.println()输出 JSONUtil.serialize(map): {"one":"1","two":"nul
- Hibernate缓存总结
cuishikuan
开源sshjavawebhibernate缓存三大框架
一、为什么要用Hibernate缓存?
Hibernate是一个持久层框架,经常访问物理数据库。
为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能。
缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。
二、Hibernate缓存原理是怎样的?
Hibernate缓存包括两大类:Hib
- CentOs6
dalan_123
centos
首先su - 切换到root下面1、首先要先安装GCC GCC-C++ Openssl等以来模块:yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel2、再安装ncurses模块yum -y install ncurses-develyum install ncurses-devel3、下载Erang
- 10款用 jquery 实现滚动条至页面底端自动加载数据效果
dcj3sjt126com
JavaScript
无限滚动自动翻页可以说是web2.0时代的一项堪称伟大的技术,它让我们在浏览页面的时候只需要把滚动条拉到网页底部就能自动显示下一页的结果,改变了一直以来只能通过点击下一页来翻页这种常规做法。
无限滚动自动翻页技术的鼻祖是微博的先驱:推特(twitter),后来必应图片搜索、谷歌图片搜索、google reader、箱包批发网等纷纷抄袭了这一项技术,于是靠滚动浏览器滚动条
- ImageButton去边框&Button或者ImageButton的背景透明
dcj3sjt126com
imagebutton
在ImageButton中载入图片后,很多人会觉得有图片周围的白边会影响到美观,其实解决这个问题有两种方法
一种方法是将ImageButton的背景改为所需要的图片。如:android:background="@drawable/XXX"
第二种方法就是将ImageButton背景改为透明,这个方法更常用
在XML里;
<ImageBut
- JSP之c:foreach
eksliang
jspforearch
原文出自:http://www.cnblogs.com/draem0507/archive/2012/09/24/2699745.html
<c:forEach>标签用于通用数据循环,它有以下属性 属 性 描 述 是否必须 缺省值 items 进行循环的项目 否 无 begin 开始条件 否 0 end 结束条件 否 集合中的最后一个项目 step 步长 否 1
- Android实现主动连接蓝牙耳机
gqdy365
android
在Android程序中可以实现自动扫描蓝牙、配对蓝牙、建立数据通道。蓝牙分不同类型,这篇文字只讨论如何与蓝牙耳机连接。
大致可以分三步:
一、扫描蓝牙设备:
1、注册并监听广播:
BluetoothAdapter.ACTION_DISCOVERY_STARTED
BluetoothDevice.ACTION_FOUND
BluetoothAdapter.ACTION_DIS
- android学习轨迹之四:org.json.JSONException: No value for
hyz301
json
org.json.JSONException: No value for items
在JSON解析中会遇到一种错误,很常见的错误
06-21 12:19:08.714 2098-2127/com.jikexueyuan.secret I/System.out﹕ Result:{"status":1,"page":1,&
- 干货分享:从零开始学编程 系列汇总
justjavac
编程
程序员总爱重新发明轮子,于是做了要给轮子汇总。
从零开始写个编译器吧系列 (知乎专栏)
从零开始写一个简单的操作系统 (伯乐在线)
从零开始写JavaScript框架 (图灵社区)
从零开始写jQuery框架 (蓝色理想 )
从零开始nodejs系列文章 (粉丝日志)
从零开始编写网络游戏 
- jquery-autocomplete 使用手册
macroli
jqueryAjax脚本
jquery-autocomplete学习
一、用前必备
官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/
当前版本:1.1
需要JQuery版本:1.2.6
二、使用
<script src="./jquery-1.3.2.js" type="text/ja
- PLSQL-Developer或者Navicat等工具连接远程oracle数据库的详细配置以及数据库编码的修改
超声波
oracleplsql
在服务器上将Oracle安装好之后接下来要做的就是通过本地机器来远程连接服务器端的oracle数据库,常用的客户端连接工具就是PLSQL-Developer或者Navicat这些工具了。刚开始也是各种报错,什么TNS:no listener;TNS:lost connection;TNS:target hosts...花了一天的时间终于让PLSQL-Developer和Navicat等这些客户
- 数据仓库数据模型之:极限存储--历史拉链表
superlxw1234
极限存储数据仓库数据模型拉链历史表
在数据仓库的数据模型设计过程中,经常会遇到这样的需求:
1. 数据量比较大; 2. 表中的部分字段会被update,如用户的地址,产品的描述信息,订单的状态等等; 3. 需要查看某一个时间点或者时间段的历史快照信息,比如,查看某一个订单在历史某一个时间点的状态, 比如,查看某一个用户在过去某一段时间内,更新过几次等等; 4. 变化的比例和频率不是很大,比如,总共有10
- 10点睛Spring MVC4.1-全局异常处理
wiselyman
spring mvc
10.1 全局异常处理
使用@ControllerAdvice注解来实现全局异常处理;
使用@ControllerAdvice的属性缩小处理范围
10.2 演示
演示控制器
package com.wisely.web;
import org.springframework.stereotype.Controller;
import org.spring