- 博客(71)
- 问答 (1)
- 收藏
- 关注
原创 前台会员系统架构
1、项目架构图前台会员系统架构为分布式服务架构,不像后台管理系统的单一架构,所有功能都放在一起,按前端页面展示和后端业务逻辑划分层次。前台会员系统按照功能的类型划分工程模块,其架构图如下:2、架构详情在分布式微服务中,功能被抽象成多个微服务,微服务之间只允许通过接口进行访问。为了使得微服务之间能互相找到对方,需要将所有微服务都注册到注册中心里。在本架构中,微服务总共分成两大类,一类为数据中心,一类为业务逻辑相关的微服务。i、数据中心数据中心中包含有两个微服务,所有与关系型数据库MySQL相
2020-08-16 10:42:36
3245
1
原创 业务逻辑层面上的事务控制
1、问题介绍今天在工作上遇到一个问题:数据库表 TABLE 中有一个字段 NUM,现要将它从数据库中取出来,经过一番运算后,再将其存入 TABLE 表中。我们的问题就在于,在并发情况下,我们取出来的 NUM 也许会在我们进行运算的时候被其他人修改掉,而当我们将运算后的数据存入表中时,就会覆盖其他人的操作。2、问题琢磨当运算只是简单的加减运算的时候,我们考虑利用sql语句的特性,直接对其修改,如下:update TABLEset NUM = NUM + 1where ID = #{id}当
2020-08-14 17:58:03
514
原创 Bear and Prime 100
DescriptionThis is an interactive problem. In the output section below you will see the information about flushing the output.Bear Limak thinks of some hidden number — an integer from interval [2, 100]
2020-08-14 16:53:49
504
原创 SSM整合SpringSecurity
1、Spring Security是什么?Spring Security是一个框架,致力于为Java应用程序提供身份验证和授权。Spring Security的实现与RBAC模型密不可分。2、RBAC是什么?RBAC字面上的意思是基于角色的访问控制(Role-Based Access Control)。在RBAC模型中,用户具有角色,角色具有权限,而资源需要相应的权限或者角色才被允许访问。3、整合Spring Securityi、添加依赖给pom.xml文件添加Spring Security的相
2020-08-14 16:47:19
971
9
原创 admin-component异常处理机制
1、异常处理机制系统的各个地方可能抛出异常,而不同地方抛出的相同异常它们的处理方式也可能是相同的,那么重复的去实现异常处理就太费劲了,因此需要建立一个全局范围的异常处理机制。2、实现方式在Spring框架下实现异常处理机制有两种方式,一种是用xml配置的方式,一种是用注解的方式。i、xml配置在SpringMVC的配置文件上,加上如下的Bean:<!-- 配置基于XML的异常机制 --><bean class="org.springframework.web.servlet.
2020-08-04 13:58:34
618
原创 admin-component登录拦截
1、SpringMVC配置系统中的大部分页面都需要登录后再访问,那么就要多每次访问都进行判断,判断用户是否已经登录。在没有SpringSecurity的日子里,要判断每次访问用户是否已经登录,就需要配置一个拦截器,在SpringMVC配置中添加代码如下:<!-- 注册拦截器 --><mvc:interceptors> <mvc:interceptor> <!-- 配置需要拦截资源,"/**"对应多层路径 --> &
2020-08-04 11:56:42
757
原创 common-util统一Ajax请求返回结果
1、类定义前后端交互的时候,后端返回的结果如果不统一规范,会给前端造成很大的麻烦,因此需要在通用工具类中定义一个返回结果类,代码如下:/** * 统一整个项目中Ajax请求返回的结果(未来也可以用于分布式架构各个模块间调用时返回统一类型) * @author alageek * @param <T> */public class ResultEntity<T> { public static final String SUCCESS = "SUCCESS";
2020-08-04 11:39:44
763
原创 common-util通用工具方法类
在系统登录的时候,我们需要对密码进行加密处理,而这个加密在别的地方也能用到,因此可以将加密操作抽象出来,放到通用工具模块中,再如前端发送给后端的请求,一种是普通的http请求,另一种是Ajax请求,在不少给前端回传数据的时候需要判断请求是否是Ajax请求,因此也可以抽象出来成为一个工具方法。1、MD5加密在尚筹网项目前期开发中,加密方式采用MD5加密,后期整合SpringSecurity后,使用其自带的加盐加密。/** * MD5加密 * @param source 明文 * @return 密
2020-08-04 10:19:28
1308
原创 common-util自定义异常
在Java中又很多已经定义好的异常类,但是这并不够用,比如系统在运行时出现的错误,如访问失败,登录失败,我们不能都给抛出一个运行时异常,这样会造成错误。自定义异常自定义异常只需要继承运行时异常即可,这里以登录失败异常为例:public class LoginFailedException extends RuntimeException { private static final long serialVersionUID = -1858746373532741422L; publi
2020-08-04 10:00:46
827
原创 后台管理系统架构及IDEA工具下环境搭建
项目架构后台管理系统为单一架构,无需按照功能来对系统进行拆分,故简单地将系统分为以下几个工程:图中箭头表示依赖关系,其中工程分别代表:parent父工程:用于依赖管理,模块聚合,对jar包进行统一管理;webui子工程:用于向管理员展示前端页面;component子工程:包含后端业务逻辑,处理前端发送的请求;entity子工程:包含所有的实体类;util工程:包含系统中所有的通用工具类;reverse工程:通过MyBatis的逆向工程快速生成与数据库表对应的相关文件。环境搭建实际开
2020-08-03 15:35:28
4626
13
原创 尚筹网项目整体介绍
项目来源前不久在B站看了SSM整合的视频,感觉自己对SSM框架好像懂了,但是让我在实际开发项目中去写,又不是很会,如果看我博客的小伙伴有这种感觉,那么就说明跟我一样,缺乏项目经验,那么希望接下来看我的博客能有点收获。由于本来就似懂非懂,让我徒手撸一个SSM项目,也不太实际,于是我在B站找到了本项目,尚硅谷旗下的尚筹网项目,选择这个项目不是因为教程讲的有多好,而是因为教程第一课老师说这个项目是一个SSM向SpringBoot+SpringCloud过渡的项目,于是我就决定学习一下。以下是该项目在B站的链
2020-08-03 14:26:36
15484
47
原创 记一次使用JQuery的Pagination分页插件时死循环BUG定位
前因博主在写项目的时候,数据库数据比较多,所以在前端需要做一个分页,于是在某视频教程的推荐下,使用了基于JQuery的Pagination分页插件,根据该插件的demo编写js代码如下:<script type="text/javascript"> $(function(){ initPagination(); }); function initPagination() { var totalRecord = ${requestScop
2020-07-03 09:57:31
697
6
原创 记一次编写前端js代码中js不生效BUG定位
前因博主在项目中编写前端页面的时候,编写了如下js代码:<script type="text/javascript"> $(function(){ alert("xxx"); });</script><script type="text/javascript" src="jquery/jquery.pagination.js"/><script type="text/javascript"> $(functio
2020-07-02 17:18:14
552
原创 记一次SpringMVC全局异常处理未捕获到异常BUG定位
前因博主在写项目的时候,自定义了一个异常类,继承自运行时异常类:/** * 禁止访问异常类 * @author alageek */public class AccessForbiddenException extends RuntimeException { private static final long serialVersionUID = 7526324512252691698L; public AccessForbiddenException(){
2020-07-02 13:07:15
827
原创 MyBatis逆向工程记录【IDEA + MySQL8.0.19】
最近在B站学习尚硅谷的尚筹网项目,其中用到了MyBatis逆向工程,看着视频里很简单,跟着一步步做就出了Bug,第一时间想到了数据库版本问题,于是写篇博客记录下。MyBatis逆向工程1、pom.xml编写首先新建一个Maven项目,在其pom文件中加入MyBatis依赖,并且加入逆向工程所需要的插件和相关依赖【JDBC】,这里JDBC的版本根据所使用的MySQL版本来选择。<!-- 依赖 MyBatis 核心包 --><dependencies> <depe
2020-06-10 22:40:25
2300
3
原创 Spring Tool Suite 3/4 for Eclipse 安装教程 - 2020版
最近在B站学习尚硅谷的尚筹网项目编写,其中IDE使用的是装有Spring Tools的Eclipse,于是我就去搜了如何安装STS的教程,本文就简单记录下搞这个玩意儿的曲折历程。Spring Tool Suite当我们百度STS安装教程的时候,应该都能发现,大部分教程中都给出这么一个下载链接:https://spring.io/tools/sts/all/,但是很遗憾的是,这个链接点进去是404,这是因为Spring官网进行了改版,STS的下载链接被移到了这个地址:https://spring.io/t
2020-06-07 12:33:49
5759
2
原创 LeetCode-有效括号的嵌套深度-题号1111-Java实现
1 题目链接有效括号的嵌套深度2 题目大意给你一个 「有效括号字符串」 seq,请你将其分成两个不相交的有效括号字符串,A 和 B,并使这两个字符串的深度最小。不相交:每个 seq[i] 只能分给 A 和 B 二者中的一个,不能既属于 A 也属于 B 。A 或 B 中的元素在原字符串中可以不连续。A.length + B.length = seq.lengthmax(depth(...
2020-04-01 13:16:24
212
原创 几大排序的Java实现
/** * 几大排序的Java实现 */public class main { public static void main(String args[]) { int[] nums = {5, -1, 3, 1, 7, 9, 8, -10, 4};// insertSort(nums);// selectSort(nums);//...
2020-04-01 12:41:39
168
原创 Docker-Web服务与应用-Tomcat
写在正文前本博客是作者看了书籍《Docker技术入门与实战》后,在ubuntu虚拟机内进行实战操作后,发现了一些实际操作问题后,有感而发所写的,若有侵权,请联系博主协商解决。实验环境:Win10宿主机上的ubuntu虚拟机,已安装Docker【如何安装Docker可查看其它教程】Docker中有两种创建容器的方法:基于Docker commit命令和基于Dockerfile创建。本博客...
2020-01-20 23:39:14
218
原创 Docker-Web服务与应用-Nginx
写在正文前本博客是作者看了书籍《Docker技术入门与实战》后,在ubuntu虚拟机内进行实战操作后,发现了一些实际操作问题后,有感而发所写的,若有侵权,请联系博主协商解决。实验环境:Win10宿主机上的ubuntu虚拟机,已安装Docker【如何安装Docker可查看其它教程】Docker中有两种创建容器的方法:基于Docker commit命令和基于Dockerfile创建。本博客...
2020-01-20 17:42:17
225
原创 Docker-Web服务与应用-Apache
写在正文前本博客是作者看了书籍《Docker技术入门与实战》后,在ubuntu虚拟机内进行实战操作后,发现了一些实际操作问题后,有感而发所写的,若有侵权,请联系博主协商解决。实验环境:Win10宿主机上的ubuntu虚拟机,已安装Docker【如何安装Docker可查看其它教程】Docker中有两种创建容器的方法:基于Docker commit命令和基于Dockerfile创建。本博客...
2020-01-20 17:19:12
393
原创 Docker-为镜像添加SSH服务
写在正文前本博客是作者看了书籍《Docker技术入门与实战》后,在ubuntu虚拟机内进行实战操作后,发现了一些实际操作问题后,有感而发所写的,若有侵权,请联系博主协商解决。实验环境:Win10宿主机上的ubuntu虚拟机,已安装Docker【如何安装Docker可查看其它教程】Docker中有两种创建容器的方法:基于Docker commit命令和基于Dockerfile创建。本博客...
2020-01-20 16:22:53
628
原创 一个用来学习CoAP协议的小例子
1 CoAP简介CoAP 是受限制应用协议的简称,是物联网应用层协议之一。物联网应用层协议主要还有HTTP和MQTT,这三种协议有各自不同的应用场景。其中HTTP和MQTT使用TCP作为传输层协议,而CoAP使用UDP作为传输层协议,如下图:虽然CoAP没有使用TCP作为传输层协议,但它也是TCP/IP协议族的一部分。CoAP借鉴了大量HTTP的经验,比如CoAP也使用请求/响应工作模式(客...
2019-12-24 20:36:56
3634
5
原创 移动端点对点获取WeMos D1上搭载的JY-901九轴振动加速度传感器加速度数据
1 介绍暑假里老师给布置了个任务,希望能够避开云端,使用移动端来获取 WeMos D1 上传感器的数据。那么这里大致的思路就是:通过串口获取传感器的数据;在WeMos D1上开启服务以供移动端访问编写移动端APP2 系统设计与实现2.1 系统整体架构设计本系统主要以WeMos D1为核心,在其上开启Socket服务,将通过串口获得的传感器数据,提供给移动端。2.2 WeMo...
2019-08-21 21:31:20
1181
4
原创 树莓派——实时时钟模块(RTC)
树莓派——实时时钟模块(RTC)树莓派——实时时钟模块(RTC)RTC介绍RTCDS1302模块简介模块参数表格定义列表代码块脚注目录数学公式UML 图:离线写博客浏览器兼容RTC介绍RTC 树莓派为了节约成本以及减小体积,没有板载的实时时钟(real-time clock,RTC),或者叫作硬件时钟。 在某些场...
2018-07-24 15:28:10
8657
原创 栅栏密码
栅栏密码 所谓栅栏密码,就是把明文分成N个组,然后取出每组的第一个,每组的第二个。。接着按顺序排列得出密文。若每个组里有2两个元素的话就叫2栏栅栏密码。例一 就比如明文为The girl is beautiful,按照2栏栅栏密码的步骤就需要将这个字符串分成9个组(明文中的空格不计数),9个组分别如下: Th eg ir li sb ea ut if ul
2016-12-04 15:16:46
19208
原创 Wireless Network
DescriptionAn earthquake takes place in Southeast Asia. The ACM (Asia Cooperated Medical team) have set up a wireless network with the lap computers, but an unexpected aftershock attacked, all computer
2016-07-04 18:44:31
1856
原创 hiho一下第一周
题目1 : 最长回文子串时间限制:1000ms 单点时限:1000ms 内存限制:64MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。这一天,他们遇到了一连串的字符串,于是小Hi就向小Ho提出了那个经典的问题:“小Ho,你能不能分别在这些字符串中找到它们每一个的最长回文子串呢?”小Ho奇怪的问道:“什
2016-07-04 18:13:28
647
原创 NBU 2430 war of energy
NBU 2430 war of energy题目:Description This is a war, we need energy.As the person in charge of the Energy Agency, you need to know the quantity of energy transmission around. Suppose there are n cities, an
2016-07-01 23:42:12
552
空空如也
IIS漏洞中的Unicode漏洞
2017-02-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅