《一起实战吧!》系列
文章平均质量分 90
对技术的实践是掌握它的最好方式
Java鱼仔
你会累是因为你在走上坡路
展开
-
闲着无聊造个轮子,开源一个可快速接入的分布式SSO系统
造了第一个轮子原创 2021-08-29 17:11:36 · 1195 阅读 · 0 评论 -
基于SpringBoot实现文件的上传下载
基于SpringBoot实现文件的上传下载原创 2021-01-14 20:10:06 · 1415 阅读 · 4 评论 -
基于SpringBoot和Redis实现短信验证码功能
太简单了!原创 2020-12-20 22:12:10 · 2479 阅读 · 2 评论 -
从零搭建基于SpringBoot的秒杀系统(八):通过分布式锁解决多线程导致的问题
在前面一篇博客中,通过mysql的优化解决了超卖的问题,但是没有解决同一用户有几率多次购买的问题,这个问题可以通过加锁来解决,解决思路在于一个请求想要购买时需要先获得分布式锁,如果得不到锁就等待。(一)使用redis实现分布式锁在config下新建RedisConfig,用来写redis的通用配置文件:public class RedisConfig { @Autowired private RedisConnectionFactory redisConnectionFa原创 2020-08-15 23:43:42 · 827 阅读 · 0 评论 -
从零搭建基于SpringBoot的秒杀系统(七):高并发导致超卖问题分析处理
在没有高并发的环境下,做到现在已经算是一个比较完善的后端逻辑了,但是如果同时有1000个请求或者更多请求的时候,就会产生很多问题,包括秒杀最怕的超卖。想一下,秒杀活动本来就是不赚钱甚至是亏钱的活动,如果超卖了,发货就代表亏本,不发货直接影响信用。因此绝不能出现超卖的情况。(一)现象展示我们用apache jmeter进行压力测试,为了方便测试,先将人员登陆认证代码注释掉,注释config下的ShiroConfig。接着在Controller下的killController添加测试代码:@R原创 2020-08-15 23:35:26 · 957 阅读 · 0 评论 -
从零搭建基于SpringBoot的秒杀系统(六):使用RabbitMQ让订单指定时间后失效
(一)RabbitMQ概述消息中间件属于分布式系统中一个子系统,关注于数据的发送和接收,利用高效可靠的异步消息传递机制对分布式系统中的其余各个子系统进行集成。java中常用的消息中间件有ActiveMQ、RabbitMQ、Kafka等等。消息中间件的作用主要有系统解耦、异步调用、流量削峰等等。如果你之前一点都没有接触过RabbitMQ,可以看我的消息中间件系列博客入门:https://blog.csdn.net/qq_41973594/category_10218582.html在本篇博客中原创 2020-08-11 22:31:36 · 945 阅读 · 0 评论 -
从零搭建基于SpringBoot的秒杀系统(五):基于Shiro的人员登陆认证
前面实现了抢购的功能,但是人员目前是写死的,关于登陆有许多实现方式,这里采用Shiro来实现人员的登陆认证。Shiro 可以帮助我们完成:认证、授权、加密、会话管理、与 Web 集成、缓存等,在这里我们用shiro进行登陆认证。1.登陆注册页面编写两个页面的内容很简单,一个用户名输入框,一个密码输入框,一个登陆或者注册按钮。首先是登陆页面:<!DOCTYPE html><html lang="zh-CN" xmlns:th="http://www.thymeleaf原创 2020-08-09 16:40:18 · 490 阅读 · 0 评论 -
从零搭建基于SpringBoot的秒杀系统(四):雪花算法生成订单号以及抢购功能实现
抢购功能是整个系统的核心,接下来的很多优化都是在优化抢购功能,在写抢购功能模块之前,先封装几个公共的类。一、公共状态类封装先想一下抢购逻辑,点击购买按钮后,通过post请求将数据传递给接口,接口返回成功或失败信息。因此我们需要先封装一个类描述返回信息,在response文件夹下新建BaseResponse,包含一个状态码,成功失败信息以及数据package com.sdxb.secondkill.response;import com.sdxb.secondkill.enums.Stat原创 2020-08-08 11:25:44 · 3905 阅读 · 2 评论 -
从零搭建基于SpringBoot的秒杀系统(三):首页、详情页编写
在上一篇博客中,我们已经搭好了系统的主要架构,目前已经可以跑通这个项目,接下来我们就可以把注意力都集中在代码上。本次需要创建的代码目录如下:一、创建实体类在entity包中创建和数据库字段对应的实体类,一共有四个实体类item,代表所有的商品信息package com.sdxb.secondkill.entity;import lombok.Data;import java.util.Date;@Datapublic class Item { private Int原创 2020-08-05 21:04:04 · 600 阅读 · 0 评论 -
从零搭建基于SpringBoot的秒杀系统(二):快速搭建一个SpringBoot项目
首先我们快速搭建一个SpringBoot项目出来,因此这个项目的重心在后端逻辑,因此前端页面简单搭建:1.数据库建表首先将我们未来所需要的数据建表:item商品表,存放所有商品信息CREATE TABLE `item` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL COMMENT '商品名', `code` varchar(255) DEFAULT NULL COMMENT原创 2020-08-04 21:03:08 · 771 阅读 · 0 评论 -
从零搭建基于SpringBoot的秒杀系统(一):项目准备
如今的应用系统已经不再局限于简单的单机环境或者几百几千的点击量,像每年的618和双十一,各大电商平台都会同时接收到千万级的点击量,因此有了做这个秒杀项目的想法。系统后端采用SpringBoot,前端用了BootStrap框架,因为这次的主要目的是后端逻辑的学习,因此本项目不再注重前端的处理。一、项目准备工作本项目会涉及到的技术有:RabbitMQ:消息队列,如果此前没有接触过RabbitMQ的,可以看我的RabbitMQ系列文章:https://blog.csdn.net/qq_419735原创 2020-08-03 22:04:21 · 1218 阅读 · 0 评论 -
基于SpringBoot和BootStrap的全栈论坛网站(附上源码)
耗时大约三个星期不到的时间,把这个论坛项目基本上算是完成了,做这个项目最主要的目的是熟悉SpringBoot的使用,然后通过整个项目了解了BootStrap、Thymeleaf、editor.md等等工具的使用,今天就来做一下总结(一)项目展示首先进入登陆页面,输入用户名和密码进入首页,也可以点击右下角注册新用户:登陆成功后进入首页,可以看到用户发的各种问题:点击第一个我自...原创 2019-11-28 10:14:53 · 12312 阅读 · 32 评论 -
开发基于SpringBoot和BootStrap的全栈论坛网站(八):完成回复通知的功能
当有人回复了你的问题时,肯定需要有通知能让我们看到,今天就来完成最后一个大功能--回复通知。具体的效果如下:当有未读通知时,在导航栏上会显示未读通知的数量,点进去后能看到未读的信息,点击每条未读信息后,未读标志就会消失,通知上的数字也相应减少,通知的数据还是以分页的方式给出,这里就可以使用前面写好的分页代码。(一)搭建Notification数据库我们需要为通知搭建一个...原创 2019-11-28 09:19:21 · 3236 阅读 · 5 评论 -
开发基于SpringBoot和BootStrap的全栈论坛网站(七):完成回复和二级回复功能
论坛的搭建即将进入尾声,完成回复功能后只剩最后一个大功能:通知。然后就是对页面的精修和一些bug的修复,这些不会通过博客来展示,历史博客记录可以看我的实战项目专辑,在这里也不放链接了。对一个论坛网站来说,回复功能也是很重要的功能,在完成之前所有功能后,今天的任务就是完成问题的回复功能,主要的效果图如下:(一)搭建Comment数据库一个回复需要包含主键id;所回复问题或者回复评论的pa...原创 2019-11-25 08:43:36 · 3853 阅读 · 4 评论 -
开发基于SpringBoot和BootStrap的全栈论坛网站(六):完成个人中心、问题详情和问题编辑
如果你对这个项目感兴趣,可以从头看起:开发基于SpringBoot和BootStrap的全栈论坛网站(一):准备阶段开发基于SpringBoot和BootStrap的全栈论坛网站(二):后端人员如何快速使用BootStrap开发基于SpringBoot和BootStrap的全栈论坛网站(三):登陆注册以及cookies的功能完成开发基于SpringBoot和BootStrap的...原创 2019-11-18 22:48:00 · 2773 阅读 · 0 评论 -
开发基于SpringBoot和BootStrap的全栈论坛网站(五):完成首页展示以及分页功能
如果你对这个项目感兴趣,可以从头看起:开发基于SpringBoot和BootStrap的全栈论坛网站(一):准备阶段开发基于SpringBoot和BootStrap的全栈论坛网站(二):后端人员如何快速使用BootStrap开发基于SpringBoot和BootStrap的全栈论坛网站(三):登陆注册以及cookies的功能完成开发基于SpringBoot和BootStrap的全栈...原创 2019-11-15 09:31:05 · 2813 阅读 · 0 评论 -
开发基于SpringBoot和BootStrap的全栈论坛网站(四):完成问题发布功能
如果你对这个项目感兴趣,可以从头看起:开发基于SpringBoot和BootStrap的全栈论坛网站(一):准备阶段开发基于SpringBoot和BootStrap的全栈论坛网站(二):后端人员如何快速使用BootStrap开发基于SpringBoot和BootStrap的全栈论坛网站(三):登陆注册以及cookies的功能完成做完登陆注册功能后先不急着做首页,因为我想的是首页...原创 2019-11-13 10:08:30 · 3059 阅读 · 1 评论 -
开发基于SpringBoot和BootStrap的全栈论坛网站(三):登陆注册以及cookies的功能完成
如果你对这个项目感兴趣,可以从头看起:开发基于SpringBoot和BootStrap的全栈论坛网站(一):准备阶段开发基于SpringBoot和BootStrap的全栈论坛网站(二):后端人员如何快速使用BootStrap登陆注册功能是一个网站必不可少的功能,其主要思路也相对很简单,获取用户输入的信息,验证信息,若成功则上传到后台数据库。登陆时获取用户信息,如果和数据库中的用户信...原创 2019-11-11 09:26:06 · 3477 阅读 · 2 评论 -
开发基于SpringBoot和BootStrap的全栈论坛网站(二):后端人员如何快速使用BootStrap
本次项目所用到的前端框架是BootStrap3,原因是对于后端人员来说这个框架能很快地搭建出一个页面。对于windows系统和mac系统来说,使用BootStrap主要有两种方法。(一)BootStrap起步首先进入BootStrap官网https://v3.bootcss.com/getting-started/你可以使用方法一,把BootStrap下载下来,解压完后将所有文...原创 2019-11-09 10:41:41 · 3772 阅读 · 0 评论 -
开发基于SpringBoot和BootStrap的全栈论坛网站(一):准备阶段
当学习完一种技术后,将所有知识点串联起来最好的方法就是以此为基础做一个完整的项目。最近心血来潮打算以SpringBoot为基础从零开始开发一款全栈的论坛博客网站。(一)前序对本人来说开发这个项目最难的反而是前端的部分,作为一个以后端开发为主的程序员,前端知识只到基本了解的程度,因此我选择了BootStrap框架,他的好处在于官方提供了许多的组件、布局等,要用的时候只需要去官网找到自己需...原创 2019-11-08 10:14:30 · 4672 阅读 · 2 评论