- 博客(61)
- 资源 (21)
- 收藏
- 关注
原创 springboot + redis实现签到与统计功能
用户签到一次就可以往表里添加一条记录;但是这样有一个坏处,就是占用的内存太大了,会极大的消耗内存空间;比如有1万用户,每个用户每个月签到10次,那么一个月就是10万条记录,一年就是120万条;如果用户更多并且签到的次数越多,那么数据量就会更大哦。签到一次需要使用8+8+3+1 = 20个字节,如果使用redis中的bitmap来实现,每次签到与未签到用1与0来表示,那么只需要2个字节即可了,这样极大的节约了内存;那么接下来认识与使用bitmap。
2023-10-26 22:29:57
981
原创 Spring Boot+Vue前后端分离项目练习07之网盘项目注册登陆页面实现
Axios是一个易用、简洁且高效的http库, 使用Promise管理异步,支持请求和响应拦截器,自动转换JSON数据等高级配置,是在vue项目中十分常见前端请求库,使用以下指令安装。为了便于后续接口管理,一般都将所有的接口单独放在同一目录下统一管理。在src下新建文件夹request,并创建文件src/request/http.js,后续对接口的baseURL、超时时间、请求和响应拦截、接口类型封装等都将在此文件中。http.js。
2023-03-09 22:29:06
636
1
原创 Spring Boot+Vue前后端分离项目练习06之网盘项目创建vue项目
构建vue项目,需要提前安装相应的环境,这里主要就是node,npm和Vue CLl。这些环境的安装还会比较简单的,其他平台的安装也是基本一致的,接着查看环境的安装情况。
2023-03-08 23:31:42
623
原创 Spring Boot+Vue前后端分离项目练习03之网盘项目文件夹创建及文件查询接口开发
在前后端分离的项目中,接口文档的存在十分重要。swagger 是一个自动生成接口文档的工具,在需求变更十分频繁的情况下,手写接口文档是效率十分低下,这时swagger自动生生文档的的作用就体现出来了,同时swagger还提供了接口测试功能,相当好用。
2023-03-04 00:03:28
664
2
原创 Spring Boot+Vue前后端分离项目练习01之网盘项目的搭建
一般看来,网盘系统主要实体包括:用户、存储信息、用户文件、文件、回收文件等基本功能点。
2023-03-01 22:28:46
1105
原创 Spring Security实现RBAC权限模型练习
Spring Security的核心功能就是认证、授权、攻击防护,Spring Boot项目启动之后会自动进行配置,其核心就是一组链式过滤器。如下图所示,对于一个用户请求,Username Password Authentication Filter验证用户名和密码是否正确,通过就放行,然后Basic Authentication Filter就实现了去验证请求中是否包含有权限认证的basic信息。FilterSecurityInterceptor验证请求是否能够访问REST API,如果不能够访问即被拒绝
2023-02-09 23:34:10
3099
原创 Spring Security基本使用初体验01
Spring Security最主要的作用就是就是和。Spring Security其核心就是一组过滤器链,项目启动后将会自动配置。最核心的就是 Basic Authentication Filter 用来认证用户的身份,一个在Spring Security中一种过滤器就处理一种认证方式,一种过滤器按照自身职责判定是否是自身需要的信息,认证通过就进入下一环节,直至最后认证通过。
2023-01-30 23:30:12
402
原创 Elasticsearch基本使用初体验01
ElasticSearch是一款非常强大的、基于Lucene的开源搜索及分析引擎;它是一个实时的分布式搜索分析引擎,它能让你以前所未有的速度和规模,去探索你的数据。
2023-01-21 00:15:34
1229
原创 mybatis plus基本使用初体验02
Wrapper : 条件构造抽象类,最顶端父类– AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件– QueryWrapper : 查询条件封装– UpdateWrapper : Update 条件封装– AbstractLambdaWrapper : 使用Lambda 语法---- LambdaQueryWrapper :用于Lambda语法使用的查询Wrapper。
2023-01-15 23:18:07
515
原创 mybatis plus基本使用初体验01
我们都知道MyBatis是目前比较常用的持久层框架;这个框架的使用也是很简单的,我们在使用的时候,只需要关注mapper的接口层和对应的xml文件即可。但是MyBatis作为一个半自动框架,是需要我们自己手动编写sql语句的,对于一些单表的简单查询我们还是不大喜欢都需要自己来编写,虽然MyBatis也提供了代码生成器可以自动生成部分代码,但是依旧不够灵活。
2023-01-15 00:06:24
1040
2
原创 我的创作纪念日:一周年
写作不仅仅是为了多少关注,多少赞之类的,这是一个提高自己的过程,同时坚持写作也能让自己克服懒惰,不要让学习编程停留在看的层面,而是多动手,多分享;对于学习编程而言,可以是看视频,可以是看书;这些可以让自己学到东西,而尝试写作输出可以让自己对于知识掌握的更牢固,同时也可以随时复习,也能分享给他人学习,何乐不为呢。在工作中遇到好的处理方案,通过写作总结处理方案也是提升自己实力的一种方案。对于创作而言,将会伴随我的一整个职业生涯,希望写作和职业上都能得到较好的发展,还需要努力才行啊!
2022-11-12 23:09:48
199
5
原创 Spring Boot与Shiro实现权限管理04
首先创建dto,用于请求与响应数据的传输。在common包下创建dto包,在该包下创建UserDto.java类。
2022-11-12 22:07:15
992
原创 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
831
原创 Spring Boot与Shiro实现权限管理02
用户权限管理系统一般包括以下模块:根据基本的功能可以总结出6张数据库表:接下来就是创建数据库acs和表的具体设计了。权限表用于将系统中所有支持进行权限控制的资源及其相关操作进行声明。WildcardPermission 是 Shiro Permission 接口的一个实现,它允许我们将权限表示为通配符的方式,通配符字符串能作为方法参数传递给 Subject.isPermitted 以完成权限检查。例如:接下来需要将系统中所有的权限都定义好,然后插入到数据库中。2.sys_role:我们对具有不同权
2022-11-06 22:20:47
715
原创 Spring Boot与Shiro实现权限管理01
Shiro最主要最核心的功能主要包含上述四个部分,同时也提供了其余的支持性功能,就不一一介绍了。
2022-11-06 14:20:30
696
1
原创 Spring Boot项目中使用邮件服务
*** 发送自定义模版的html邮件* @returnmailService . sendHtmlMail("接收方邮箱@qq.com" , "这是一封模板HTML邮件" , emailTemplate);}
2022-11-03 00:54:21
5447
1
原创 Spring Boot项目中使用Logback日志与使用AOP拦截请求日志信息
日志记录了系统行为的时间、地点等很多细节的具体信息,在发生错误或者接近某种危险状态时能够及时提醒开发人员处理,往往在系统产生问题时承担问题定位与诊断和解决的重要角色。一般很多线上的问题只能通过进行日志分析才可以解决的,所以需要明确日志在日常开发环节中是十分重要的。
2022-10-31 23:55:40
2149
原创 Spring Boot项目学习之通用权限管理项目03
继续接着上一篇,完成用户管理页面的增删改相关功能。在user文件夹添加add.html文件,用于填写新增用户信息。接着需要添加add.js文件,主要功能包括获取填写信息,校验信息以及发起请求。onsubmit:true 表示当提交时校验表单信息。onkeyup: false 表示当按钮松开的时候校验表单信息。rules 表示设置验证规则。required : true 表示要验证的对象是否必填是。通过 jQuery Validator 框架来对表单信息进行验证,可以尽量减少错误的表单提交,再
2022-10-30 18:00:20
502
原创 Spring Boot项目学习之通用权限管理项目02
接着上一篇,这里完成最基本的页面分页展示的功能。这也是权限管理系统的最基本功能的组成。创建service包,在该包下创建UrmsUserService.java 接口类及其实现类。UrmsUserService.javaUrmsUserServiceImpl.java2.创建控制层在controller包下创建UrmsUserController.java类。UrmsUserController.java3.进行测试接下来进行简要的测试,这里使用Junit单元测试,所以添加测试框架依赖。然后
2022-10-30 02:50:30
825
原创 Spring Boot项目学习之通用权限管理项目01
权限管理系统是一个十分常见的系统,在这个系统中是基于角色访问控制的,用户是通过角色与权限进行关联。换句话说,就是一个用户拥有若干个角色,每一个角色拥有若干权限,这样就可以形成一个关系模型:用户-角色-权限。他们之间的关系:2.集成MyBatis框架创建完数据库及表后,集成MyBatis框架,并且使用druid连接池完成数据持久层的操作。然后在主配置文件中,添加MyBatis的基础配置。MyBatis 默认是属性名和数据库字段名一一对应的,但是在 java 中一般使用驼峰命名,那么 map-under
2022-10-24 00:33:05
557
原创 Spring Boot项目之用户登陆-利用用户令牌Token的方式实现
用户登陆最主要的目的就是为了完成两件事情:身份验证和登陆状态的保持。一种比较常见的方案时利用Cookie和Session,将用户的信息存放其中,这样就可以通过读取Cookie或者Session中的数据获取用户的登录信息,从而达到验证用户,记录状态的目的。这里就不具体介绍这两种方案。另一种就是通过生成用户令牌Token的形式进行用户验证和状态保持,Token是通过一些无状态的数据生成的字符串并不包含用户信息,所以相对来说更加安全。这里就主要介绍一下该方式实现用户登陆。登陆流程大致如下图所示:由于是一个登陆d
2022-10-18 22:08:15
2760
原创 在Spring Boot项目中使用统一返回结果
在一个完整的项目中,如果每一个控制器的方法都返回不同的结果,那么对项目的维护和扩展都会很麻烦;并且现在主流的开发模式时前后端分离的模式,如果后端返回各式各样的结果,那么在前后端联调时会非常的麻烦,还会增加前后端的格外任务。所以,在一个项目中统一返回结果就是一个十分必要和友好的做法。接下来就用一个简单的demo来看看统一返回结果的效果。这里比较简单,就不详细介绍了;将多余的文件删除,保持项目的整洁;引入必要的依赖。demo的项目结构2.返回结果的封装在common包下创建Result结果类,将需要返
2022-10-17 00:37:02
5054
2
原创 java 8之stream流
如果把集合作为流的数据源,创建流时不会导致数据流动;如果流的终止操作需要值时,流就会从集合中获取值;流只使用一次。流的中心思想就是延迟计算,流直到需要时才计算值。中间操作,每次返回一个新的流,可以有多个。终端操作,每个流只能进行一次终端操作,终端操作结束后流无法再次使用。终端操作会产生一个新的集合或值。
2022-10-16 01:42:50
1126
原创 实现一个简单的字符串工具库
学习编程的一个比较好的方法就是阅读别人优秀的代码,学习别人的代码并尝试自己去实现那些功能,这样对提升自己的编码能力是有十分大的帮助的。这里简单实现一个不依赖于其他库的strutil库。
2022-10-15 15:50:19
346
原创 Spring Cloud微服务实战demo
最近学习了一些Spring Cloud微服务相关的知识,利用一个Spring Cloud微服务的实例demo来练习巩固一下Spring Cloud的相关知识。
2022-10-07 18:05:22
1413
1
原创 Spring Boot项目学习15之我的主页和用户中心模块
index.html页面右上角个人信息按钮可以跳转至我的首页。这里需要查询用户的基本信息,然后用户发过的帖子信息,以及收藏过的帖子信息。BBSUserController首先通过session对象获取,存储在其中的用户信息;然后通过用户id查询该用户发过的帖子信息,最后通过用户id查询用户收藏过的帖子。BBSPostServiceBBSPostCollectService1.3 数据持久层BBSPostMapperBBSPostCollectMapper1.4 前端首页在user文
2022-08-14 02:18:07
690
原创 Spring Boot项目学习14之帖子收藏模块
收藏表最主要包含有以下几个字段:2. 实现收藏模块2.1 收藏实体类BBSPostCollect2.2 收藏模块展示在BBSPostController控制类的postDetail()方法中添加收藏帖子功能。BBSPostCollectServiceBBSPostCollectMapper2.3 前端页面2.4 测试效果BBSPostCollectControllerBBSPostCollectService这里首先通过帖子id和用户id查询出收藏实体,如果存在说明已经已经收
2022-08-13 16:51:43
1178
原创 Spring Boot项目学习13之帖子评论模块
评论模块主要包括评论的列表展示和评论提交。首先是详情页中的评论展示功能,一般评论信息是在某一篇帖子下评论,因此需要关联帖子的主键 id, 同时还存在用户体系,还需要关联评论人的 userId,用户评论时需要填写一些信息和验证,评论提交就是普通字符串信息提交,包括一些基础的字段填写。评论表中重要的字段如下:3.评论提交接口设计用户在看完一篇帖子后想要留下一些感想或者建议都是通过这个模块来处理的,该接口主要负责接收前端的 POST 请求并处理其中的参数,接收的参数依次为:BBSPostComment3.2
2022-08-13 02:38:03
1864
5
原创 Spring Boot项目学习12之帖子详情与修改模块
帖子详情页主要由以下五部分组成:然后帖子主要包含四个主要部分:详情页是通过点击帖子列表页中的单个卡片中的链接跳转而来的,详情页的路径可以定义为 /detail/{postId},用帖子id来确定具体的帖子。在首页帖子列表渲染时已经做了处理,跳转路径为:添加链接后,在点击后就会跳转到详情页面。首先需要实现数据查询的功能,详情页中不止会展示帖子详情数据,还会展示该发帖人信息和评论数据,发帖人信息和帖子详情内容可以根据 postId 和 publicUserId 通过一定的逻辑查询到,因此会涉及到帖子表、用户
2022-08-11 23:23:27
2011
原创 Spring Boot项目学习11之首页模块
首页主要有首页帖子列表数据、热议帖子列表数据以及分页数据等,需要在进入页面时就进行读取并显示到页面中。这里首页主要包含四个部分:查询参数区域:大家可以理解为筛选区域,就是根据这些参数来查询帖子列表,参数包括帖子分类、发帖时间段、排序方式、还有右侧的搜索输入框。帖子列表展示区域:本页面主要的功能区域,所占用的面积也比较大。将查询出来的帖子列表数据渲染到这个区域进行展示。分页按钮区域:主要用于展示分页按钮,根据查询到的分页数据动态的生成这些页码和按钮。本周热议区域:一个简单的展示区域,动态的去展示近期评论量较
2022-08-11 00:48:31
603
原创 Spring Boot项目学习10之发帖模块
最显著的三个字段是帖子标题、帖子内容、帖子类别。但是除了这些字段外,还有一些必要的字段。同时,在发布帖子时,为了防止有人重复提交、重复发帖,提交表单时又加了一个验证码字段。2.跳转至发帖子功能2.1Controller 处理跳转首先新建 BBSPostController.java,该方法用于处理 /addPostPage 请求,由于是新增帖子的操作,所以只需要查询出分类数据供用户进行选择即可。如果是修改帖子的操作则需要进行帖子信息的查询,之后跳转到 templates/jie 目录下的 add.ht
2022-08-10 00:58:25
2850
2
原创 Spring Boot项目学习09之整合富文本编辑器
富文本编辑器,是一种可内嵌于浏览器,所见即所得的文本编辑器。富文本编辑器不同于文本编辑器(如 textarea 标签、input 标签),也可以叫做图文编辑器。在富文本编辑器里可以编辑非常丰富的内容,如文字、图片、表情、代码等。.........
2022-08-09 21:41:54
1768
2
原创 Spring Boot项目学习08之个人中心设置功能模块
用户模块不只有登录、注册功能,还包括用户信息展示、头像上传、用户信息修改、安全退出等功能。用户信息功能的主要实现步骤为三步:在 BBSUserController.java 控制器中新增用户信息跳转处理功能。该方法用于处理 /userSet 请求,即用户信息页面的跳转处理,由于用户信息页面需要展示的是登录者的用户信息,而登录者的信息已经在登录成功后,放入 session 对象中,所以这里并不需要进行额外的查询操作,将 session 对象中的对象取出并放入 request 域中即可。之后 return 视图
2022-08-09 01:20:39
2942
4
原创 Spring Boot项目学习07之文件上传与回显
在Spring MVC框架中,MultipartResolver 提供了文件上传的相关得到工具。利用 SpringMVC 实现文件上传功能,离不开对 MultipartResolver 的设置。MultipartResolver 这个类也只会在文件上传中发挥作用,在配置了具体实现类之后,SpringMVC 中的 DispatcherServlet 在处理请求时会调用 MultipartResolver 中的方法判断此请求是不是文件上传请求。如果是的话, DispatcherServlet 将调用 Multi
2022-08-08 22:04:36
1119
原创 Spring Boot项目学习06之用户登陆模块与登录拦截器
首先,在数据库中查询这条用户记录,如果不存在这条记录则表示身份验证失败,登录流程终止;如果存在这条记录,则表示身份验证成功,接下来则需要进行登录状态的存储和验证了,用户登录成功后我们将用户信息放到 session 对象中,之后再实现一个拦截器,在访问项目时判断 session 中是否有用户信息,有则放行请求,没有就跳转到登录页面。在 BBSUserController.java类中新增跳转功能。该方法用于处理 /login 请求,是登录页面的跳转处理方法,请求方法为 GET,在发起请求后会分别跳转到 tem
2022-08-08 00:08:01
1623
spring-security-project.zip- Spring Security实现RBAC权限模型demo
2023-02-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人