SpringBoot
文章平均质量分 94
picacho_pkq
努力提升中。。。
展开
-
springboot + redis实现签到与统计功能
用户签到一次就可以往表里添加一条记录;但是这样有一个坏处,就是占用的内存太大了,会极大的消耗内存空间;比如有1万用户,每个用户每个月签到10次,那么一个月就是10万条记录,一年就是120万条;如果用户更多并且签到的次数越多,那么数据量就会更大哦。签到一次需要使用8+8+3+1 = 20个字节,如果使用redis中的bitmap来实现,每次签到与未签到用1与0来表示,那么只需要2个字节即可了,这样极大的节约了内存;那么接下来认识与使用bitmap。原创 2023-10-26 22:29:57 · 885 阅读 · 0 评论 -
Spring Boot+Vue前后端分离项目练习03之网盘项目文件夹创建及文件查询接口开发
在前后端分离的项目中,接口文档的存在十分重要。swagger 是一个自动生成接口文档的工具,在需求变更十分频繁的情况下,手写接口文档是效率十分低下,这时swagger自动生生文档的的作用就体现出来了,同时swagger还提供了接口测试功能,相当好用。原创 2023-03-04 00:03:28 · 605 阅读 · 2 评论 -
Spring Boot+Vue前后端分离项目练习02之网盘项目利用token进行登陆验证
添加利用token用户登陆验证原创 2023-03-02 00:17:57 · 503 阅读 · 0 评论 -
Spring Boot+Vue前后端分离项目练习01之网盘项目的搭建
一般看来,网盘系统主要实体包括:用户、存储信息、用户文件、文件、回收文件等基本功能点。原创 2023-03-01 22:28:46 · 1045 阅读 · 0 评论 -
Spring Boot与Shiro实现权限管理04
首先创建dto,用于请求与响应数据的传输。在common包下创建dto包,在该包下创建UserDto.java类。原创 2022-11-12 22:07:15 · 974 阅读 · 0 评论 -
Spring Boot与Shiro实现权限管理03
当接口被调用时 Shiro 首先会通过 ACSRealm.java 的 doGetAuthorizationInfo 方法拿到访问者的所有权限信息,然后判断其中是否包括了 “role:add” 权限,没有包括时将抛出 AuthorizationException 异常,在ExceptionController.java 中添加相应的方法统一处理这个异常,给调用者返回 403(Forbidden)错误。首先需添加一个session的工具类,创建util包,在该包下创建SessionUtils.java类。原创 2022-11-12 16:13:17 · 812 阅读 · 0 评论 -
Spring Boot与Shiro实现权限管理02
用户权限管理系统一般包括以下模块:根据基本的功能可以总结出6张数据库表:接下来就是创建数据库acs和表的具体设计了。权限表用于将系统中所有支持进行权限控制的资源及其相关操作进行声明。WildcardPermission 是 Shiro Permission 接口的一个实现,它允许我们将权限表示为通配符的方式,通配符字符串能作为方法参数传递给 Subject.isPermitted 以完成权限检查。例如:接下来需要将系统中所有的权限都定义好,然后插入到数据库中。2.sys_role:我们对具有不同权原创 2022-11-06 22:20:47 · 680 阅读 · 0 评论 -
Spring Boot与Shiro实现权限管理01
Shiro最主要最核心的功能主要包含上述四个部分,同时也提供了其余的支持性功能,就不一一介绍了。原创 2022-11-06 14:20:30 · 680 阅读 · 0 评论 -
Spring Boot项目中使用邮件服务
*** 发送自定义模版的html邮件* @returnmailService . sendHtmlMail("接收方邮箱@qq.com" , "这是一封模板HTML邮件" , emailTemplate);}原创 2022-11-03 00:54:21 · 5334 阅读 · 1 评论 -
Spring Boot项目中使用Logback日志与使用AOP拦截请求日志信息
日志记录了系统行为的时间、地点等很多细节的具体信息,在发生错误或者接近某种危险状态时能够及时提醒开发人员处理,往往在系统产生问题时承担问题定位与诊断和解决的重要角色。一般很多线上的问题只能通过进行日志分析才可以解决的,所以需要明确日志在日常开发环节中是十分重要的。原创 2022-10-31 23:55:40 · 2033 阅读 · 0 评论 -
Spring Boot项目学习之通用权限管理项目03
继续接着上一篇,完成用户管理页面的增删改相关功能。在user文件夹添加add.html文件,用于填写新增用户信息。接着需要添加add.js文件,主要功能包括获取填写信息,校验信息以及发起请求。onsubmit:true 表示当提交时校验表单信息。onkeyup: false 表示当按钮松开的时候校验表单信息。rules 表示设置验证规则。required : true 表示要验证的对象是否必填是。通过 jQuery Validator 框架来对表单信息进行验证,可以尽量减少错误的表单提交,再原创 2022-10-30 18:00:20 · 478 阅读 · 0 评论 -
Spring Boot项目学习之通用权限管理项目02
接着上一篇,这里完成最基本的页面分页展示的功能。这也是权限管理系统的最基本功能的组成。创建service包,在该包下创建UrmsUserService.java 接口类及其实现类。UrmsUserService.javaUrmsUserServiceImpl.java2.创建控制层在controller包下创建UrmsUserController.java类。UrmsUserController.java3.进行测试接下来进行简要的测试,这里使用Junit单元测试,所以添加测试框架依赖。然后原创 2022-10-30 02:50:30 · 797 阅读 · 0 评论 -
Spring Boot项目学习之通用权限管理项目01
权限管理系统是一个十分常见的系统,在这个系统中是基于角色访问控制的,用户是通过角色与权限进行关联。换句话说,就是一个用户拥有若干个角色,每一个角色拥有若干权限,这样就可以形成一个关系模型:用户-角色-权限。他们之间的关系:2.集成MyBatis框架创建完数据库及表后,集成MyBatis框架,并且使用druid连接池完成数据持久层的操作。然后在主配置文件中,添加MyBatis的基础配置。MyBatis 默认是属性名和数据库字段名一一对应的,但是在 java 中一般使用驼峰命名,那么 map-under原创 2022-10-24 00:33:05 · 536 阅读 · 0 评论 -
Spring Boot项目之用户登陆-利用用户令牌Token的方式实现
用户登陆最主要的目的就是为了完成两件事情:身份验证和登陆状态的保持。一种比较常见的方案时利用Cookie和Session,将用户的信息存放其中,这样就可以通过读取Cookie或者Session中的数据获取用户的登录信息,从而达到验证用户,记录状态的目的。这里就不具体介绍这两种方案。另一种就是通过生成用户令牌Token的形式进行用户验证和状态保持,Token是通过一些无状态的数据生成的字符串并不包含用户信息,所以相对来说更加安全。这里就主要介绍一下该方式实现用户登陆。登陆流程大致如下图所示:由于是一个登陆d原创 2022-10-18 22:08:15 · 2659 阅读 · 0 评论 -
在Spring Boot项目中使用全局异常处理
接着上一篇在Spring Boot项目中使用统一返回结果一文中,继续添加全局异常处理部分。原创 2022-10-17 21:48:08 · 1756 阅读 · 0 评论 -
在Spring Boot项目中使用统一返回结果
在一个完整的项目中,如果每一个控制器的方法都返回不同的结果,那么对项目的维护和扩展都会很麻烦;并且现在主流的开发模式时前后端分离的模式,如果后端返回各式各样的结果,那么在前后端联调时会非常的麻烦,还会增加前后端的格外任务。所以,在一个项目中统一返回结果就是一个十分必要和友好的做法。接下来就用一个简单的demo来看看统一返回结果的效果。这里比较简单,就不详细介绍了;将多余的文件删除,保持项目的整洁;引入必要的依赖。demo的项目结构2.返回结果的封装在common包下创建Result结果类,将需要返原创 2022-10-17 00:37:02 · 4949 阅读 · 2 评论 -
Spring Boot项目学习15之我的主页和用户中心模块
index.html页面右上角个人信息按钮可以跳转至我的首页。这里需要查询用户的基本信息,然后用户发过的帖子信息,以及收藏过的帖子信息。BBSUserController首先通过session对象获取,存储在其中的用户信息;然后通过用户id查询该用户发过的帖子信息,最后通过用户id查询用户收藏过的帖子。BBSPostServiceBBSPostCollectService1.3 数据持久层BBSPostMapperBBSPostCollectMapper1.4 前端首页在user文原创 2022-08-14 02:18:07 · 654 阅读 · 0 评论 -
Spring Boot项目学习14之帖子收藏模块
收藏表最主要包含有以下几个字段:2. 实现收藏模块2.1 收藏实体类BBSPostCollect2.2 收藏模块展示在BBSPostController控制类的postDetail()方法中添加收藏帖子功能。BBSPostCollectServiceBBSPostCollectMapper2.3 前端页面2.4 测试效果BBSPostCollectControllerBBSPostCollectService这里首先通过帖子id和用户id查询出收藏实体,如果存在说明已经已经收原创 2022-08-13 16:51:43 · 1062 阅读 · 0 评论 -
Spring Boot项目学习13之帖子评论模块
评论模块主要包括评论的列表展示和评论提交。首先是详情页中的评论展示功能,一般评论信息是在某一篇帖子下评论,因此需要关联帖子的主键 id, 同时还存在用户体系,还需要关联评论人的 userId,用户评论时需要填写一些信息和验证,评论提交就是普通字符串信息提交,包括一些基础的字段填写。评论表中重要的字段如下:3.评论提交接口设计用户在看完一篇帖子后想要留下一些感想或者建议都是通过这个模块来处理的,该接口主要负责接收前端的 POST 请求并处理其中的参数,接收的参数依次为:BBSPostComment3.2原创 2022-08-13 02:38:03 · 1756 阅读 · 5 评论 -
Spring Boot项目学习12之帖子详情与修改模块
帖子详情页主要由以下五部分组成:然后帖子主要包含四个主要部分:详情页是通过点击帖子列表页中的单个卡片中的链接跳转而来的,详情页的路径可以定义为 /detail/{postId},用帖子id来确定具体的帖子。在首页帖子列表渲染时已经做了处理,跳转路径为:添加链接后,在点击后就会跳转到详情页面。首先需要实现数据查询的功能,详情页中不止会展示帖子详情数据,还会展示该发帖人信息和评论数据,发帖人信息和帖子详情内容可以根据 postId 和 publicUserId 通过一定的逻辑查询到,因此会涉及到帖子表、用户原创 2022-08-11 23:23:27 · 1750 阅读 · 0 评论 -
Spring Boot项目学习11之首页模块
首页主要有首页帖子列表数据、热议帖子列表数据以及分页数据等,需要在进入页面时就进行读取并显示到页面中。这里首页主要包含四个部分:查询参数区域:大家可以理解为筛选区域,就是根据这些参数来查询帖子列表,参数包括帖子分类、发帖时间段、排序方式、还有右侧的搜索输入框。帖子列表展示区域:本页面主要的功能区域,所占用的面积也比较大。将查询出来的帖子列表数据渲染到这个区域进行展示。分页按钮区域:主要用于展示分页按钮,根据查询到的分页数据动态的生成这些页码和按钮。本周热议区域:一个简单的展示区域,动态的去展示近期评论量较原创 2022-08-11 00:48:31 · 567 阅读 · 0 评论 -
Spring Boot项目学习10之发帖模块
最显著的三个字段是帖子标题、帖子内容、帖子类别。但是除了这些字段外,还有一些必要的字段。同时,在发布帖子时,为了防止有人重复提交、重复发帖,提交表单时又加了一个验证码字段。2.跳转至发帖子功能2.1Controller 处理跳转首先新建 BBSPostController.java,该方法用于处理 /addPostPage 请求,由于是新增帖子的操作,所以只需要查询出分类数据供用户进行选择即可。如果是修改帖子的操作则需要进行帖子信息的查询,之后跳转到 templates/jie 目录下的 add.ht原创 2022-08-10 00:58:25 · 2487 阅读 · 2 评论 -
Spring Boot项目学习09之整合富文本编辑器
富文本编辑器,是一种可内嵌于浏览器,所见即所得的文本编辑器。富文本编辑器不同于文本编辑器(如 textarea 标签、input 标签),也可以叫做图文编辑器。在富文本编辑器里可以编辑非常丰富的内容,如文字、图片、表情、代码等。.........原创 2022-08-09 21:41:54 · 1686 阅读 · 2 评论 -
Spring Boot项目学习08之个人中心设置功能模块
用户模块不只有登录、注册功能,还包括用户信息展示、头像上传、用户信息修改、安全退出等功能。用户信息功能的主要实现步骤为三步:在 BBSUserController.java 控制器中新增用户信息跳转处理功能。该方法用于处理 /userSet 请求,即用户信息页面的跳转处理,由于用户信息页面需要展示的是登录者的用户信息,而登录者的信息已经在登录成功后,放入 session 对象中,所以这里并不需要进行额外的查询操作,将 session 对象中的对象取出并放入 request 域中即可。之后 return 视图原创 2022-08-09 01:20:39 · 2464 阅读 · 4 评论 -
Spring Boot项目学习07之文件上传与回显
在Spring MVC框架中,MultipartResolver 提供了文件上传的相关得到工具。利用 SpringMVC 实现文件上传功能,离不开对 MultipartResolver 的设置。MultipartResolver 这个类也只会在文件上传中发挥作用,在配置了具体实现类之后,SpringMVC 中的 DispatcherServlet 在处理请求时会调用 MultipartResolver 中的方法判断此请求是不是文件上传请求。如果是的话, DispatcherServlet 将调用 Multi原创 2022-08-08 22:04:36 · 1081 阅读 · 0 评论 -
Spring Boot项目学习06之用户登陆模块与登录拦截器
首先,在数据库中查询这条用户记录,如果不存在这条记录则表示身份验证失败,登录流程终止;如果存在这条记录,则表示身份验证成功,接下来则需要进行登录状态的存储和验证了,用户登录成功后我们将用户信息放到 session 对象中,之后再实现一个拦截器,在访问项目时判断 session 中是否有用户信息,有则放行请求,没有就跳转到登录页面。在 BBSUserController.java类中新增跳转功能。该方法用于处理 /login 请求,是登录页面的跳转处理方法,请求方法为 GET,在发起请求后会分别跳转到 tem原创 2022-08-08 00:08:01 · 1555 阅读 · 0 评论 -
Spring Boot项目学习05之用户注册模块
Spring Boot开发项目,学习过程。原创 2022-08-07 19:44:48 · 981 阅读 · 0 评论 -
SpringBoot项目学习04之实现分页功能
1.准备工作为了演示分页效果,首先需要导入大量数据才能体现分页功能的作用;所以,第一步需要导入数据,实验所需的SQL脚本内容较多,这里就不一一展示,其导入后效果如下图。sql脚本下载地址为:sql下载地址2.实现分页功能分页功能的交互流程是前端将所需页码page和每页展示条数limit两个参数传输给后端,而后端在接受到分页请求后会对分页参数进行处理并计算出需要查询的是从第几条数据到第几条数据,然后利用MySQL的limit关键字去查询对应的记录并返回给前端。2.1 新建实体类和Mapper接口原创 2022-05-10 16:34:55 · 7820 阅读 · 0 评论 -
SpringBoot项目学习03之整合MyBatis操作数据库
1.准备工作在操作数据库之前,我们需要创建数据库和建相关表。因此,需要保证已经安装了数据库,这里我就选择MySQL数据库。先使用连接工具连接MySQL数据库,创建数据库和表。SQL脚本CREATE DATABASE /*!32312 IF NOT EXISTS*/`springboot_bbs` /*!40100 DEFAULT CHARACTER SET utf8 */;USE `springboot_bbs`;DROP TABLE IF EXISTS `tb_user`;CREATE原创 2022-05-10 10:34:05 · 1128 阅读 · 0 评论 -
SpringBoot项目学习02之Thymeleaf模板引擎
本文主要介绍一下Thymeleaf模板引擎的基本使用,以及使用Spring Boot整合Thymeleaf模板引擎。1.Spring Boot整合Thymeleaf模板引擎想要在Spring Boot项目中使用该模板引擎,首先需要引入该模板引擎的依赖。Spring Boot内部支持该模板引擎,因此,只需要引入依赖就可以使用该模板引擎了。<!-- Thymeleaf 模板引擎依赖 --><dependency> <groupId>org.springframe原创 2022-05-09 21:32:30 · 915 阅读 · 0 评论 -
SpringBoot项目学习01之访问静态资源与消息转换器
使用Spring Boot开发项目时,我们只需要按照指定的规则放置我们的静态资源文件,启动项目后就可以轻松地访问这些静态资源。下面就总结一下Spring Boot访问静态资源的相关知识与消息转换器HttpMessageConverter 的相关知识。1.默认访问路径Spring Boot 默认存放静态资源文件的目录有四个,这些目录都在类路径下,它们分别是:/META-INF/resources//resources//static//public/创建一个Spring Boot项目,分原创 2022-05-09 20:06:45 · 677 阅读 · 0 评论 -
基于SpringBoot实现文件的上传、下载和在线预览(SpringBootDemo)
在java领域中SpringBoot是一个非常好用的框架,可以快速地构建web项目,这里记录一下使用SpringBoot来实现文件的上传、下载和在线预览功能。原创 2022-01-09 22:46:36 · 8786 阅读 · 11 评论