你的位置:淫荡妈妈 > 拳交 小说 >


人妖 小说 SpringBoot学习条记(六)——分页、跨域、上传、定制banner、Lombok、Hutool

发布日期:2024-10-05 12:36    点击次数:119


人妖 小说 SpringBoot学习条记(六)——分页、跨域、上传、定制banner、Lombok、Hutool

一、分页(pagehelper)

 pagehelper 是一个庞杂实用的 MyBatis 分页插件人妖 小说,不错匡助咱们快速的杀青MyBatis分页功能,而且pagehelper有个优点是,分页和Mapper.xml充足解耦,并以插件的体式杀青,对Mybatis实行的历程进行了强化,这灵验的幸免了咱们需要平直写分页SQL语句来杀青分页功能。

github名堂地址:https://github.com/pagehelper/Mybatis-PageHelper

汉文匡助:https://github.com/pagehelper/Mybatis-PageHelper/blob/master/README_zh.md

1.1、快速起步 1.1.1、添加依赖

这里需要紧密也MyBatis的兼容问题,如若springboot pagehelper插件启动报错 [com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration]则需要更换版块,我使用2.5.13的Spring Boot与1.3.0的pagehelper是兼容的,示例名堂齐全的pom如下:

View Code 1.1.2、添加设立

在application.yaml文献中添加如下设立信息:

1.1.3、数据看望接口

StudentDao.java:

1.1.4、接口映射

resource/mapper/StudentDao.xml:

1.1.4、杀青分页

StudentService.java:

1.1.5、调用分页措施

 PageController.java:

pageNum参数用于指定页号,默许值为1,pageSize用于指定每页纪录数,默许值为3。

开动闭幕:

默许值情况

带参数情况

pageNum:现时页的页码pageSize:每页知道的条数size:现时页知道的委果条数total:总纪录数pages:总页数prePage:上一页的页码nextPage:下一页的页码isFirstPage/isLastPage:是否为第一页/终末一页hasPreviousPage/hasNextPage:是否存在上一页/下一页navigatePages:导航分页的页码数navigatepageNums:导航分页的页码,[1,2,3,4,5]

1.2、封装肯求与闭幕

默许情况下肯求参数并莫得使用对象封装,复返闭幕包含冗余信息且需要与具体的业务关联。

1.2.1、肯求参数封装

PageRequest.java 

1.2.2、反映闭幕封装

 PageResult.java

二、跨域 2.1、跨域纲要

跨域:指的是浏览器不行实行其他网站的剧本。它是由浏览器的同源计策变成的,是浏览器对javascript施加的安全截止。

举例:a页面想赢得b页面资源,如若a、b页面的左券、域名、端口、子域名不同,所进行的看望举止都是跨域的,而浏览器为了安全问题一般都截止了跨域看望,也等于不允许跨域肯求资源。紧密:跨域截止看望,其实是浏览器的截止。交融这少许很紧迫!!!

同源计策:是指左券,域名,端口都要相同,其中有一个不同都会产生跨域;

 2.2、复返新的CorsFilter(全局跨域)

CORS,全称Cross-Origin Resource Sharing  ,是一种允许现时域(domain)的资源(比如html/js/web service)被其他域(domain)的剧本肯求看望的机制,频频由于同域安全计策(the same-origin security policy)浏览器会不容这种跨域肯求。

示例:

前端看望辅导

在职意设立类,复返一个 新的 CorsFIlter Bean ,并添加映射旅途和具体的CORS设立旅途。

2.3、重写WebMvcConfigurer(全局跨域) 2.4、使用注解 (局部跨域)

在戒指器(类上)上使用注解 @CrossOrigin:,暗示该类的悉数措施允许跨域。

在措施上使用注解 @CrossOrigin:

2.5、手动建对抗映头(局部跨域)

使用 HttpServletResponse 对象添加反映头(Access-Control-Allow-Origin)来授权原始域,这里 Origin的值也不错建造为 “*”,暗示一说念放行。

2.6、使用自界说filter杀青跨域

当先编写一个过滤器,不错起名字为MyCorsFilter.java

三、上传

前端使用Vue+Axios杀青AJAX上传文献,upfile.html如下:

application.yaml文献

后端戒指器

开动成果

在vscode中因为装置了Live Server会及时的刷新页面,上传后会自动刷新,不错残暴*.png与*.jpg文献上传到前端目次中,建造如下:

 

点击建造

 

点击膨大建造,找到如下项

 

 在中间添加两项

 

保存设立即可。

四、启动Banner定制

咱们在欺诈启动的技艺,不错看到戒指台知道了Spring的Banner信息,咱们不错通过定制这个功能,来甩掉咱们我方的欺诈信息。

 

 

 如若要定制我方的Banner, 只需要在 resources 下甩掉一个 banner.txt 文献,输入我方的banner字符即可。

 

 重新启动名堂

Banner字符不错通过雷同以下网站生成:

-science.de/ascii/

人妖 小说

五、lombok 5.1、lombok纲要

Lombok名堂是一个Java库,它会自动插入编著器和构建器具中,Lombok提供了一组有用的注视,用来摈弃Java类中的无边样板代码。仅五个字符(@Data)就不错替换数百行代码从而产生干净,轻易且易于可贵的Java类。

在名堂中使用Lombok不错减少好多重叠代码的书写。比如说getter/setter/toString等措施的编写。

“Boilerplate”是一个术语,用于描画在欺诈方式的许多部分中很少蜕变就重叠的代码。对Java言语最常见的月旦等于在大多数名堂中都不错找到这种类型的代码,由于言语自己的局限性而愈加严重。龙目岛规划(Project Lombok)旨在通过用好像的注视集代替宽广的代码。

Lombok也存在一定风险,在一些拓荒器具商店中莫得Project Lombok接济选用。 IDE和JDK升级存在突破的风险,况且围绕名堂的主义和实施存在争议。

常用注解:

@Setter :注解在类或字段,注解在类时为悉数字段生成setter措施,注解在字段上时只为该字段生成setter措施。 @Getter :使用措施同上,分散在于生成的是getter措施。 @ToString :注解在类,添加toString措施。 @EqualsAndHashCode: 注解在类,生成hashCode和equals措施。 @NoArgsConstructor: 注解在类,生成无参的构造措施。 @RequiredArgsConstructor: 注解在类,为类中需要迥殊处理的字段生成构造措施,比如final和被@NonNull注解的字段。 @AllArgsConstructor: 注解在类,生成包含类中悉数字段的构造措施。 @Data: 注解在类,生成setter/getter、equals、canEqual、hashCode、toString措施,如为final属性,则不会为该属性生成setter措施。 @Slf4j: 注解在类,生成log变量,严格真谛来说是常量。 5.2、引入依赖

在pom文献中添加如下部分。(不清楚版块不错在Maven仓库中搜索)

5.3、使用注解  5.4、开动测试

测试类:

测试闭幕:

不错看到有带参构造措施,toString措施也被重写过了。

需要紧密的是新版块的IDEA不再需要装置插件,依然默许整合了。

六、Hutool 6.1、简介

Hutool是一个小而全的Java器具类库,通过静态措施封装,缩小相关API的学习资本,擢升职责服从,使Java领有函数式言语般的优雅,让Java言语也不错“甜甜的”。

Hutool中的器具措施来自每个用户的诚心诚意,它涵盖了Java拓荒底层代码中的方方面面,它既是大型名堂拓荒中贬责小问题的利器,亦然袖珍名堂中的服从担当;

Hutool是名堂中“util”包友好的替代,它从简了拓荒东说念主员对名堂中公用类和公用器具措施的封装技艺,使拓荒专注于业务,同期不错最大限制的幸免封装不完善带来的bug。

Hutool = Hu + tool,是原公司名堂底层代码剥离后的开源库,“Hu”是公司称号的暗示,tool暗示器具。Hutool谐音“蒙眬”,一方面轻易易懂,一方面寓意“迂回蒙眬”。

Hutool的主义是使用一个器具措施代替一段复杂代码,从而最大限制的幸免“复制粘贴”代码的问题,透彻改变咱们写代码的样式。

以诡计MD5为例:

【夙昔】翻开搜索引擎 -> 搜“Java MD5加密” -> 翻开某篇博客-> 复制粘贴 -> 改改好用 【当今】引入Hutool -> SecureUtil.md5()

Hutool的存在等于为了减少代码搜索资本,幸免汇集上散乱不王人的代码出现导致的bug。

GitHub:https://github.com/dromara/hutool/

官网:https://www.hutool.cn/

6.2、包含组件

一个Java基础器具类,对文献、流、加密解密、转码、正则、线程、XML等JDK措施进行封装,构成多样Util器具类,同期提供以下组件:

模块先容 hutool-aop JDK动态代理封装,提供非IOC下的切面接济 hutool-bloomFilter 布隆过滤,提供一些Hash算法的布隆过滤 hutool-cache 好像缓存杀青 hutool-core 中枢,包括Bean操作、日历、多样Util等 hutool-cron 定时任务模块,提供类Crontab抒发式的定时任务 hutool-crypto 加密解密模块,提供对称、非对称和选录算法封装 hutool-db JDBC封装后的数据操作,基于ActiveRecord念念想 hutool-dfa 基于DFA模子的多要道字查找 hutool-extra 膨大模块,对第三方封装(模板引擎、邮件、Servlet、二维码、Emoji、FTP、分词等) hutool-http 基于HttpUrlConnection的Http客户端封装 hutool-log 自动识别日记杀青的日记门面 hutool-script 剧本实行封装,举例Javascript hutool-setting 功能更庞杂的Setting设立文献和Properties封装 hutool-system 系统参数调用封装(JVM信息等) hutool-json JSON杀青 hutool-captcha 图片考据码杀青 hutool-poi 针对POI中Excel和Word的封装 hutool-socket 基于Java的NIO和AIO的Socket封装 hutool-jwt JSON Web Token (JWT)封装杀青

不错阐发需求对每个模块单独引入,也不错通过引入hutool-all样式引入悉数模块。

6.3、文档

📘汉文文档

📘汉文备用文档

📙参考API

🎬视频先容

6.4、装置 6.4.1、Maven

在名堂的pom.xml的dependencies中加入以下实验:

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.5</version>
</dependency>
6.4.2、Gradle
implementation 'cn.hutool:hutool-all:5.8.5'
6.4.3、下载jar

点击以下聚首,下载hutool-all-X.X.X.jar即可:

Maven中央库

紧密 Hutool 5.x接济JDK8+,对Android平台莫得测试,不行保证悉数器具类或器具措施可用。 如若你的名堂使用JDK7,请使用Hutool 4.x版块(不再更新)

6.4.5、编译装置

看望Hutool的Gitee主页:https://gitee.com/dromara/hutool 下载通盘名堂源码(v5-master或v5-dev分支都可)然后参加Hutool名堂目次实行:

./hutool.sh install

然后就不错使用Maven引入了。

6.5、Spring Boot中使用

1、添加依赖

2、使用器具库

开动闭幕:

 

 贬责java.awt.HeadlessException的措施:

 

 再开动

6.6、日历调遣与农历 6.7、选录与加密

选录算法是一种能产生迥殊输出方式的算法,这种算法的特质是:岂论用户输入什么长度的原始数据,经过诡计后输出的密文都是固定长度的,这种算法的旨趣是阐发一定的运算规矩对原数据进行某种体式的提真金不怕火,这种提真金不怕火等于选录,被选录的数据实验与原数据有密切运筹帷幄,惟有原数据稍有改变,输出的“选录”便充足不同,因此,基于这种旨趣的算法便能对数据齐全性提供较为健全的保险。

关联词,由于输出的密文是提真金不怕火原数据经过处理的定长值,是以它依然不行规复为原数据,即音书选录算法是不可逆的,表面上无法通过反向运算取得原数据实验,因此它频频只可被用来作念数据齐全性考据。

6.8、考据码

  考据码的作用:

  1、为了持重机器冒充东说念主类作念暴力破解

  2、持浩大边界在线注册蓦然劲业

  3、持重蓦然在线批量操

  4、持重自动发布

  5、持重信息被无边汇集团聚

loing.html

开动:

6.9、发电子邮件

1、注册一个邮箱,如126

2、在spring boot名堂中添加依赖

3、邮件事业器设立

在classpath(在尺度Maven名堂中为src/main/resources)的config目次下新建mail.setting文献,最小设立实验如下,在此设立下,smtp事业器和用户名都将通过from参数识别:

4、发送电子邮件

5、闭幕

 

6.10、拼音

1、以下为Hutool接济的拼音库的pom坐标,你不错选用任性一个引入名堂中,如若引入多个,Hutool会按照以上规则选用第一个使用

2、编写测试代码

3、闭幕

6.11、条码(一维码),二维码

由于民众对二维码的需求较多,关于二维码的生成妥协析我觉得应该算作好像的器具存在于Hutool中。商量到自行杀青的难度,因此Hutool针对被世俗继承的的zxing (opens new window)库进行封装。而由于涉考中三方包,因此归类到extra模块中。

1、添加依赖

2、编写代码

3、闭幕

6.12、读取Excel文献

1、更新依赖

2、准备Excel文献,如students.xlsx

 3、写读取代码

4、稽查开动闭幕

6.13、导入

 1、前端

2、后台

3、闭幕

6.14、多要求组合搜索

1、StudentMapper.java

2、StudentMapper.xml

3、StudentService.java

激情五月天

4、StudentServiceImpl.java

5、StudentController.java

6、index.html

7、闭幕

6.14、导出

1、导出测试

2、导出学生-前端

3、导出学生-后台

七、Element UI plus admin

基于Vue3 + Element Plus 的后台管制系统贬责有规划

7.1、开动成果

 

 7.2、先容

基于Vue3 + Element Plus 的后台管制系统贬责有规划

该有规划算作一套多功能的后台框架模板,适用于绝大部分的后台管制系统拓荒。基于 Vue3 + pinia + typescript,援用 Element Plus 组件库,简短拓荒。杀青逻辑好像,允洽外包名堂,快速录用。

github:https://github.com/99510309/vue-manage-system

 Element Plus  vite 3  pinia  typescript  登录/刊出  Dashboard  表格  Tab 选项卡  表单  图表 📊  富文本/markdown编著器  图片拖拽/编著上传  权限管制  三级菜单  自界说图标 7.3、装置措施

7.4、完成学生管制

1、src\utils\request.ts

2、src/api/student/index.ts

classes/index.ts

3、src/views/student.vue

4、路由

sidebar.vue

router/index.ts

5、戒指器 StudentController.java

6、StudentServiceImpl.java

7、StudentMapper.xml

8、StudentService.java

9、开动成果

八、视频

https://www.bilibili.com/video/BV1fi4y1S79P?share_source=copy_web

https://space.bilibili.com/87194917/video

功课解答:https://www.bilibili.com/video/BV1Hs411F71x?share_source=copy_web

九、功课

1、完成上课的每一个示例,重现敦朴上课示例

2、使用hutool杀青农历、赢得与建造剪切板的实验

3、学会使用hutool匡助文档,找出任性3个功能,并在Java中使用

4、下载hutool源代码人妖 小说,加多一个器具类不错杀青截取字符串两头的空格的静态措施,打包jar



    热点资讯

    相关资讯