自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 Guns二次开发目录

因为业务需要,再加上一些缘分因素让我接触到了Guns这个开源项目,并且在Guns基础上去开发公司自己的后台管理系统,我不仅节省了很多原本需要花在搭建后台系统的时间,同时收获也颇多,个人能力得到很大提升。我对JavaWeb有了更深刻的理解,同时也从一个连如何创建Jquery函数都快忘掉的人,变成现在这个能使用Jquery进行各种花式操作Html页面标签的后!端!开!发!从无到有的过程往往都是很痛苦的,其中经历了各种紧张,焦虑和喜悦。也正是有感于此,一些基础的操作,比如整个项目的功...

2020-05-09 20:51:35 3495 5

原创 Guns二次开发(十四):集成 ueditor 富文本编辑器

关于博客中使用的Guns版本问题请先阅读 Guns二次开发目录 在做商品添加模块的时候,需要用到富文本编辑器来上传和编辑商品详情,细心的朋友可能已经发现,Guns其实自身也集成了一个富文本编辑器 ——wangEditor。只不过,这个富文本编辑器是轻量级的,还不能满足商品详情的某些复杂编辑功能:所以想来想去,还是决定再集成一个重量级的富文本编辑器,百度 UEditor。1、官网下载百度UEditor源码 百度UEditor源码...

2020-06-30 20:17:08 2338

原创 Guns二次开发(十三):自定义拦截器去除请求参数的首尾空格

关于博客中使用的Guns版本问题请先阅读 Guns二次开发目录 前面的几篇博客中有说过,前端传入的参数,后端是需要做非空、类型转换和合法性校验的,因为一些不负责任的前端在调用后端接口之前,是不会做必传参数的空值校验的。对于Guns 这种前后端没有区分的项目,因为前端后端的工作都由java开发人员包圆了,虽然能极大的保证前端检验会正常进行,但是后端校验应当作为一种硬性指标或者说是一种编程习惯,这也是我们后端人员对自己的工作负责任的一种态度,无关其他。后端校验中,前面的几篇博...

2020-06-30 19:18:48 2054

原创 Guns二次开发(十二):自定义图片上传插件

关于博客中使用的Guns版本问题请先阅读 Guns二次开发目录 之前写过一篇替换 Guns 自带的图片上传后端接口的文章,当时测试的,也只是上传头像的功能,随着开发的不断深入,业务需求也越来越复杂,当做当商品管理的时候,发现 Guns 自带的图片上传插件并不能满足当前的业务需求,所以我自己写了一个js插件,方便后期的使用。1、图片上传的效果图2、需要引入的文件要使用这个图片上传接口,需要引入三个文件:(1)img-...

2020-06-29 19:46:27 1550

原创 Guns二次开发(十一):商品分类管理之【控】字诀

关于博客中使用的Guns版本问题请先阅读 Guns二次开发目录 到此篇博客为止,前面的一系列博客中,我们实现了商品分类管理模块的增删改查,演示了如何在Guns源码的基础上来开发我们自己的业务模块。当然了,这还远没有结束,我们还需要将Guns原有的权限控制功能应用到我们写的一系列后端接口中。Guns的权限系统对模块的权限控制分为前后端两部分,前端控制按钮(比如【添加】、【修改】和【删除】等按钮)是否显示出来,后端代码则是通过加一个注解来控制当前角色是否有权限访问这个接口,假设用户当前...

2020-06-29 19:27:51 778

原创 Guns二次开发(十):商品分类管理之【删】字诀

删除

2020-05-29 21:38:37 1226

原创 Guns二次开发(九):商品分类管理之【改】字诀

这篇博客我们开始来实现修改的功能。1、详情页面的修改还是和添加时一样,先修改详情页面的字段信息,我直接在添加那扣一份过来,改一改就可以了...

2020-05-29 19:54:27 1071

原创 Guns二次开发(八):商品分类管理之【增】字诀

上一篇博客中,我们实现了商品分类管理的菜单查询功能,接下啦,我们开始实现添加的功能。1、修改添加页面(1)定义添加页面的展示逻辑首先我们要清楚,我们添加的商品分类,是具有父子级关系的。所以在添加的时候,都是要携带父类的id后才能调用调用后端接口的,那么这个父类id从哪里来呢?参考菜单管理:从【菜单管理】的添加页面可以看到,每次添加的时候,都需要选择父级编号,以此...

2020-05-21 19:53:17 1141

原创 Guns二次开发(七):商品分类管理之【查】字诀(3)

6、查询功能的实现代码 接下来附上本篇所讲的查询功能的所有前端和后端实现代码,不包含测试的sql数据,因为前面已经粘贴过了。文件的目录结果是:(1)PageInfo.javapackage cn.stylefeng.guns.elephish.bean;import lombok.Data;/** * 自定义分...

2020-05-17 20:51:47 742 2

原创 Guns二次开发(七):商品分类管理之【查】字诀(2)

紧接上一篇博客Guns二次开发(七):商品分类管理之【查】字诀(1)2、状态字段的字典解析(1)添加字典(2)包装列表查询类,对状态字段进行包装涉及到的类文件的目录结构:CategoryController.java 类中修改的内容:/** * 获取分类管理列表 */@RequestMapping(value = "/list")...

2020-05-17 16:32:19 541

原创 Guns二次开发(七):商品分类管理之【查】字诀(1)

在上一篇博客中,我们使用Guns自带的【代码生成】功能生成了商品分类模块的前端页面和后端基础代码,这篇博客我们来实现商品分类模块列表查询功能。1、首先是修改分类管理列表的表头信息如果你看过我的前面几篇博客,或者你会guns已经有一些了解,那么就一样了解guns源码的目录都是结构分层很规范的,我们直接去源码目录中查找菜单栏对应的页面即可,没有必要在IDEA中全局...

2020-05-17 15:52:13 1039 5

原创 Guns二次开发(六):使用代码生成器生成商品分类模块的基础代码

在上一篇博客中,我们解决了【代码生成】页面的数据列表中没有数据表信息的问题,这一篇博客我们来使用guns的代码生成器快速开发商品分类模块,同样的,开始之前,还是建议大家先去观看一下guns代码生成演示这个视频。好了,下面开始切入正题。1、先在数据库中生成一下数据表:DROP TABLE IF EXISTS `mall_category`;CREATE TABLE...

2020-05-16 12:01:34 1173

原创 Guns二次开发(五):解决Guns v5.1-final 【代码生成】页面数据表列表没有数据的问题

前面的博客中说过,选择Guns做我们的后台管理系统,其中很大一个原因是看中了他的代码生成功能,建议大家先看一下这个演示视频guns代码生成演示后再来实操。好了,视频看完了,我们回到我们的 Guns v5.1-final 版本的项目,迫不及待的运行IDEA中的项目,然后登陆,进入【代码生成】页面,想跟guns代码生成演示里的老师一样秀一波操作,然后发现一个很严肃问题,我们的【代...

2020-05-16 11:22:28 1402 2

原创 Guns二次开发(四):重构字典管理模块

Guns中的字段管理功能是一个很不错的功能,我其实也是第一次发现项目还能有这种功能,因为以前一直使用的方法是,后端直接将数据库保存的状态值返回给前端,然后在文档中添加上字段不同值的解释。某种程度上来讲,这其实是后端将自己的工作量抛给前端开发的一种偷懒行为吧。但是对于mvc项目下的后台管理系统,此时前端代码和后端代码都是由Java开发包圆了,于是后端抛出去的球又回到了自己手中,再这种情...

2020-05-15 22:29:02 1328

原创 Guns二次开发(三):解决用户性别字典显示错误

Guns二次开发系列的博客,其初衷是我因为业务需求需要搭建后台管理系统,又为了节约开发成本决定使用开源框架,在诸多开源框架中选择了Guns,然后又发现Guns使用方面的博客比较稀少,而且Guns相关的视频又都是V3.0左右的(最新版是ultimate v2.5 ,中间差了十几个版本),于是又特地挤出一些时间来写下自己利用Guns进行二次开发的经验和例子,希望后面使用Guns的朋友能...

2020-05-10 20:21:06 1443

原创 Guns二次开发(二):替换Guns自带的图片上传接口

因为我的项目中单独搭建了FastDFS文件服务器用于同一管理文件,而且实际需求中,我还需要往guns中添加我们自己的商品管理模块,我希望上传的商品图片能同一保存到文件服务器中,所以就需要替换掉guns自带的文件文件系统。...

2020-05-10 18:45:44 1694

原创 Guns二次开发(一):IDEA下导入Guns v5.1-final 进行开发

最近因公司需求要开发一个后台管理系统,为了节约开发成本,一开始想复用公司早期开发使用的源码来开发,可是因为已经是明白人,知道原来的后台管理系统有多糟糕,于是去网上找了一下开源的后台管理系统,然后神奇的发现了最近几年备受大家喜爱的开源项目guns,下载了源码试用了一下,发现真心不错。一方面guns使用的技术是当下比较流行的技术,完美整合了框架springmvc + shiro + my...

2020-05-09 20:53:28 1303

原创 Java的循环遍历,如何保证每个循环体都是单独的事务

不知道大家在实际开发的过程中,有没有遇到过类似的情况:比如有这么一个定时任务,需要定时处理一些超时未付款的订单。然后你查询所有符合条件的记录(假设有10条记录),接着for循环遍历每一个订单,每个循环体都要执行大量的业务,比如商品库存回退,订单状态修改,业务流水添加,消息推送等。你前五个循环都执行成功了,可是执行第六个循环的时候突然抛出一个异常,导致你前面五个执行成功的订单都事务回...

2019-10-30 18:45:50 5036 8

原创 支付宝扫码支付和微信扫码支付共存的情况下,如何避免同一个订单被多次支付

前面分享了一篇 JAVA后端调用微信支付“统一下单”接口实现微信二维码扫码支付 的博客,虽然二维码在生成的时候可以设置有效期,但是这依旧不能保证整个业务流程和数据的安全。因为通常网站提供给用户的支付方式不止一种,除了微信支付,可能还有支付宝和银联支付等。 我们不妨先来假设下面几个场景: 场景一:张三在你的网购平台下了一个订单,起初是选择微信二维码扫码支...

2019-10-23 18:45:51 5443

原创 微信公众号内发起微信JSAPI支付的实现(JAVA源码)

前面写了一篇 JAVA后端调用微信支付“统一下单”接口实现微信二维码扫码支付 ,好事成双嘛,想起了自己还做过微信JSAPI支付,所以一并分享了。 官方对微信JSAPI的应用场景的解释是:官方的使用场景介绍是:商户已有H5商城网站,用户通过消息或扫描二维码在微信内打开网页时,可以调用微信支付完成下单购买的流程。点击 查看完整的场景介绍 。我是在自...

2019-10-12 18:42:45 1254

原创 JAVA后端调用微信支付“统一下单”接口实现微信二维码扫码支付

以前写过一篇设置微信二维码失效时间的博客,最近又要新增微信退款的功能,于是又重新整理了一下前面的微信二维码扫码支付功能,感觉整体的实现方式都能够掌控了,于是将具体的源码拿出来分享一下。开发之前,一定要先阅读这篇说明文档:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_3此处使用的微信二维码扫码支付功能,调...

2019-10-12 18:35:36 10795

原创 JAVA后端调用.NET平台提供的服务,要求发送POST请求,参数格式为:Content-Type:application/json

今天接入了第三方平台的api,对方平台用的.NET语言,接口文档要求调用者调用时要发送POST请求,请求参数格式为:Content-Type:application/json,接入的时候遇到了两个问题,特此分享出来供大家参考一下。一个问题是请求的参数值中有中文时,会因为编码问题导致服务端接收到的参数解析出来是错误的;还有一个问题,是对方要求传入的时间类型的格式是这样的字符串:"/Da...

2019-10-11 20:24:18 1197

原创 Java后端设计,如何避免用户“合法”的冒名顶替他人和被他人顶替

某日编写接口时,脑袋突然灵光一闪,意识到了一个可能会被很多码农甚至程序设计者忽视掉的安全漏洞问题。请先看下面的代码,先上controller层代码:package csdn.controller;import org.apache.log4j.Logger;import org.springframework.beans.factory.annotation.Autowired;...

2019-10-08 19:09:54 587

原创 Java后端接入阿里云短信API源码分享

阿里云短信服务的申请,请直接参考官方文档:短信发送API(SendSms)---JAVA ,本博客分享的是具体的后端代码实现哦。首先是要引入需要的jar包:<!-- 阿里云短信开始 --><!-- https://mvnrepository.com/artifact/com.github.suxingli/aliyuncs --><dependency...

2019-10-01 18:08:25 814 1

转载 【转】记Redis配置不当导致服务器被挖矿木马wnTKYg攻击的过程始末

突然忆起了很久之前遇到的一个问题,记得当年自己还很淳朴稚嫩,只想安安静静的拿着需求文档撸代码。某天因为项目需求,需要用到Redis服务器,于是自己就只好屁颠屁颠的百度搜索教程,还真的就让咱弄出来了。可是第二天,阿里云服务器却报警了,老有提示说可能中了木马病毒。于是我登入linux服务器,使用 top -c 命令查看服务器内存使用情况,果然发现一个陌生的程序占用着我90%以上的内存资源...

2019-10-01 18:08:11 368

原创 Java后端防止接口被同一个账号在同一台设备短时间内重复调用的一种解决方案

对于前后端分离的项目,后端人员通常都要对发起请求的用户的合法性和权限进行审核(比如用户每次请求都要携带token,token校验通过的才放行),只要审核通过了,基本上都允许用户的后续操作。可是这样就安全了吗?任何一个在后端开发浸淫多年的人,都会不知不觉间往数据安全方面倾注更多的精力。笔者作为某小公司中的唯一后端开发,在数据安全这块也是操碎了心的,先是重构了登录注册接口,防止用户账号密...

2019-09-27 18:32:02 7560

转载 【转】SpringMVC如何防御CSRF和XSS攻击(新手收藏)

本文转载自lupeng2010的博客园文章https://www.cnblogs.com/lupeng2010/p/6518053.html 发现一篇非常不错的文章,借此成功实现了防XSS攻击的功能,特此转载流年,分割线以下的内容全部转载自原文,本人仅做了些许排版工作,特此声明。 本文说一下SpringMVC如何防御CSRF(Cross-site req...

2019-09-27 18:31:43 409

原创 将IntelliJ IDEA的maven项目导入eclipse中

因为某种原因,需要将idea中编写的maven工程导入到eclipse中,由于是从eclipse转到idea使用的,所以对idea的许多功能都还很陌生,在百度浏览了许多篇博客后,最终才发现这其实是一件很简单的事情,为了后面有相同需求的同行不用和我一样走太多冤枉路,特地在此分享,希望能提供一点帮助。 首先我用的idea版本是2017.1.4的,eclipse版本是Neo...

2019-09-27 12:17:44 5404

转载 【转】解决tomcat端口被占用:Port 8005 required by Tomcat v7.0 Server at localhost is already in use的问题

今天在打开项目服务器时候报了一个错误,问题提示8005端口被占用如下图所示:解决办法如下:首先:在cmd下,输入 netstat -ano|findstr 8005 (什么端口号被占用就输入什么端口号),回车再输入taskkill /pid3664 /f回车 这里的3664对应第一行结果的的3664现在已经终止了被占用的8005端口!------...

2019-08-15 09:19:08 1379

原创 Java后端如何保证用户注册登录接口的安全性之用户登录篇

用户登录接口的设计,首先要考虑的是防止用户的账号被暴力破解,常用的是使用谷歌图形验证码,同时还需要对用户每天的“连续”登录错误次数进行限制,假设一个账号用户每天连续登陆的错误次数是十次,那么当用户第十一次输入错误时,就应该锁住当前用户的账户。但是我们真正的目的是为了保证用户的账号安全,屏蔽攻击者的恶意调用的同时,又要保证真实用户的正常使用,此时就应该提供重置登录密码的操作,密码重置成...

2019-07-18 19:05:58 4593

原创 Java后端如何保证用户注册登录接口的安全性之用户注册篇

现在的面试难免显得有些教科书式,面试官往往会问应试者一些跟自己现有项目压根用不上的新技术,以及一些所谓的基础知识,然后招到的往往又都是理论知识很丰富,前言技术又很熟悉,但是处理起实际业务时就只能呵呵的人才,还美其名曰人才储备。我个人认为,公司招人的第一准则是新入职者适应能力强,能以最快的速度上岗干活,适应期过后,其工作效率起码不能比原有岗位的开发者工作效率低太多。至于所谓人才储备,那...

2019-05-23 19:51:32 4329 2

原创 Java后端生成RSA随机密钥对,并实现前端(app和web)使用公钥加密,后端使用私钥解密

最近在思考网站登录注册时,如何保证用户的密码即使在传输过程中被劫持和破解(我常常喜欢将HTTP和HTTPS比作是押运公司,其功能是护送客户端与第三方服务器之间的交互数据,但是即便是强大如HTTPS,恐怕也不可能百分百保证数据的传输安全吧!况且,这家押运公司还是属于公共的收费服务,假如你托人家运输一箱RMB现金,然后装RMB的是快递用的纸箱,求你此刻的内心忐忑不?假设HTTPS请求仍有...

2019-04-30 20:58:20 9170 6

原创 Java后端防止获取短信验证码接口被恶意调用的代码实现

项目原来使用的短信验证码接口没有做安全校验,去网上查找了很多的解决方案,无非是在接口调用时添加图形验证码、单ip请求限制、限定每天每个号码获取短信验证码的次数、限制短信验证码的调用频率等。逛了一大圈,发现大家都只是信心满满的分享着一大堆逻辑和方法,至于具体的代码实现,就。。。大概大神们都觉得这东西没有什么技术含量吧。但是我觉得,所有的技术无论高低,业务不管复杂简单,都应该得到尊重,都...

2019-04-30 18:38:33 6672 4

原创 springmvc使用谷歌captcha生成图片验证码,并将验证码图片以二进制流的方式返回给前端(app和pc端都能调用)

近期对登录注册与获取短信验证码的接口做了安全限制,其中一部分就用到了谷歌的captcha验证码,比如当用户连续三次登陆失败,那么之后的登录请求就需要用户输入谷歌的图形验证码。由于web端和app端调用的都是同一个获取谷歌验证码的接口,所以后端这个生成图片验证码的接口就与传统的直接将验证码图片写入到前端的方式不同,此时接口返回的应该这个经过base64编码后的验证码图片二进制流,然后...

2019-04-29 18:51:11 2077

原创 微信用户与第三方网站用户的绑定策略(实现用户第一次登陆后永久免登陆)

原先公众号的登录注册由于session的频繁失效,导致需要用户频繁登录,这样用户体验极差。我试过增大session的失效时间,但是随着用户的增多,过长生命周期的session对服务器来说也是一笔大开支;我接着以openId为key将用户的登录状态保存到redis数据库中,但是按照之前项目的设计,只有从公众号菜单栏点击进来的链接才能获取到openId,对于非菜单栏的链接,是获取不...

2019-04-24 20:44:01 7073 1

原创 JAVA如何实现将用户上传的PDF文件转换成图片并返回给用户

很多曾经攻克过的难题都没有及时记录并分享,觉得有些可惜。趁着现在还单身,头还没秃,精力也还算旺盛,我便整理出一些自己曾经挑灯夜战、独立实现的还算有些成就感的项目需求,记录在个人博客上,希望能给拥有相同需求的同行提供一些参考。下面要说的这个需求,真的实现后,会发现其实并没有太多技术含量,分开来讲,也就两个步骤:(1)文件上传;(2)PDF转JPG。文件上传插件的使用没有太大的要求,只要...

2019-04-23 20:05:02 2182

原创 使用FileUpload实现Servlet的文件上传,并通过content-type判断文件的实际类型

今天分享一个自己修改过的文件上传工具类,主要是使用FileUpload来实现Servlet的文件上传,然后后台通过请求头中的content-type字段来判断实际的文件类型。因为传统的方式是通过文件名的后缀来判断当前文件的类型,但是很明显这种方法其实很不靠谱,文件上传者只需要修改文件名就能绕过后台的判断。因此这里通过判断content-type字段的值来判断文件的实际类型,但是事实...

2019-04-22 22:12:31 2138

原创 Jedis常用工具类,包含一些具有事务的设置值的方法

下面分享我在实际开发中自己编写的Jedis工具类,因为在这之后的博客用到的Jedis工具类的方法都出自这里,所以直接单独发放一份在这里!其中包含一些具有事务的设置值的方法,大家可以看看,如果发现了什么问题,欢迎指正。首先是依赖的jar包: <!-- jedis --> <dependency> <groupId>redis.clien...

2019-04-13 19:53:56 1626

原创 Mysql随机查询一条数据,如何保证一定能查询到结果,并且保证查询的结果具有随机性

从mysql数据库随机获取一条记录的方法网上有很多,大部分都是采用如下的方法一:SELECT *FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) FROM `table`)) AS id) AS t2WHERE t1.id >= t2.idORDER BY t1.id LIMIT 1;或者使用方法二...

2019-04-13 18:15:26 1990

原创 Java实现Excel模板的复制,并利用Java反射往新的Excel文件中的指定行开始写入数据

这两天实现了将对账单中的数据导入excel表中的功能,具体需求如下:首先需要复制一份公共的对账单excel模板,然后往新复制的excel模板文件中从第四行开始(因为前面三行是表头信息,规定的格式,不能修改)写入具体的数据。先导入需要的jar包: <dependency> <groupId>org.apache.poi</groupId&gt...

2019-03-20 11:49:53 3287

海外开发准备工作,搭建海外开发需要的环境

海外开发准备工作,搭建海外开发需要的环境

2022-12-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除