
编程笔记
文章平均质量分 75
guobinhui
一个IT青年的编程笔记
展开
-
基于Redis+Lua实现分布式锁模拟秒杀扣减库存业务(非常详细,良心解析)
最近和几个小伙伴聊了聊基于Redis的分布式锁实现秒杀扣减库存业务的一些技术细节,刚好最近钻研了一段时间,本篇内容通过1个详细的案例,把这个实现方案作个记录,当做自己对知识的总结积累,同时也欢迎广大开发者朋友一起交流,学习,大家可以留言讨论,原创写作不易,请勿喷,如果觉得有用,不要忘了关注点赞哦。前言首先我们可以讨论以下4个问题:1、什么是分布式锁 ?要说起分布式锁,首先要提到与分布式锁相对应的是线程锁、进程锁。线程锁:主要用来给方法、代码块加锁。当某个方法或代码使用锁,在同一时刻仅有一原创 2020-09-22 18:05:25 · 6871 阅读 · 8 评论 -
微信公众号菜单栏开发 微信公众号接口开发个性化菜单 菜单事件开发
10万+IT人都在关注,史上最全面的微信开发实战教程:包含公众号,小程序,微信支付等开发案例欢迎关注笔者个人博客:http://blogs.chenyunkeji.com/首先,直接上图,看效果,如下,有三个根菜单,每个菜单上有不同类型的子菜单,点击子菜单可以实现用户和公众号实时交互本案例技术栈:springboot,mysql,logback,mybatis菜单创建请求接...原创 2019-05-08 20:00:54 · 3417 阅读 · 0 评论 -
SpringBoot集成MyBatis配置多数据源详细教程
一、工程创建申明一点本案例使用的springboot版本是1.5.6.RELEASE。首先需要创建springBoot项目,添加springBoot框架对MyBatis支持的相关依赖Jar:分别添加MyBatis、MySQL以及Web依赖以及Druid依赖,这里添加Druid依赖必须是Spring boot支持的Druid,不能使用传统的Druid。完整的依赖jar如下:<depe...原创 2019-07-04 17:35:13 · 1360 阅读 · 0 评论 -
Spring Boot获取配置文件application.yml的属性值
在 Spring Boot 项目中,配置文件格式有两种,一个是 properties ,另一个是 yml 。虽然 properties 文件比较常见,但是相对于 properties 而言,yml 文件的配置项更加简洁明了,可读性很强,不仅如此,yml 文件还有另外一个重要的特点,就是 yml 中的数据是有序的,properties文件中的数据是无序的。我们都知道SpringBoot工程默认的配置...原创 2019-07-11 10:33:11 · 7021 阅读 · 0 评论 -
java集合框架中contains(),containsKey()和containsValue()的用法:
java集合框架中contains(),containsKey()和containsValue()的用法: List集合的contains()方法用于判断集合中包不包含某个元素,返回值是boolean。 Map集合的containsKey()和containsValue()方法和上面的相同。原创 2016-04-07 22:44:49 · 22762 阅读 · 3 评论 -
java面试中一个经典的switch选择结构面试题
写出下面代码的结果(注意switch选择结构的每个case块以break结束,如果没有使用break关键字,则程序会按顺序一直匹配到最后一个case块才能终止)public static void main(String[] args) { int i=0; int j=-1; switch(i){ case 0 :j=1; case 1 :j=1;原创 2016-04-07 22:55:27 · 4032 阅读 · 0 评论 -
Maven学习 (一) 搭建Maven环境
有两种方式可以配置maven的环境配置,本人推荐使用第二种,即使用本地的maven安装文件,个人感觉这样可以方便管理下载jar包的存放位置,错误信息的输出等,可以在dos窗口中可以清晰看到,虽然比较麻烦,每次都要敲dos命令,但可以写批处理文件来解决.方式一: 不使用本地的maven安装文件环境配置(也即使用的是m2eclipse插件的默认配置) settings.xml设置localRep原创 2016-07-30 22:18:49 · 300 阅读 · 0 评论 -
JMS(Java消息服务)入门教程
什么是Java消息服务 Java消息服务指的是两个应用程序之间进行异步通信的API,它为标准消息协议和消息服务提供了一组通用接口,包括创建、发送、读取消息等,用于支持JAVA应用程序开发。在J2EE中,当两个应用程序使用JMS进行通信时,它们之间并不是直接相连的,而是通过一个共同的消息收发服务连接起来,可以达到解耦的效果,我们将会在接下来的教程中详细介绍。为什么需要JMS ...转载 2018-02-09 19:58:18 · 511 阅读 · 0 评论 -
Eclipse插件开发中各种路径的获取(一)
Eclipse插件开发中各种路径的获取(一)得到某PLUGIN的路径: Platform.getBundle(“mypluginid”).getLocation() ;eclipse采用osgi后好像还可以: (前提是这个插件有Activator这个类.这个类继承了ECLIPSE的Plugin类) Activator.getDefault().getBundle().getLocation原创 2016-04-10 21:45:30 · 3152 阅读 · 0 评论 -
MyBatis使用association实现一对一级联查询的几种案例
我们平日经常会遇到需要级联查询的场景,这里通过案例给大家展示实现过程。我们要查询的用户信息里面有个角色信息,一个用户对应一个角色,我们现在要求查出用户信息的同时,关联查出用户的角色信息,那么这个时候我们可以通过级联属性的方式,将角色中的数据查出来封装到用户User的role属性里面,我们还有另外一种方式来实现数据的封装。接下来我们将介绍一下association标签的相关用法,包括嵌套查询和分段查...原创 2018-07-03 17:44:20 · 3245 阅读 · 4 评论 -
SpringBoot集成mybatis整合redis实现缓存教程 springboot配置redis教程
缓存:即将常用的并且不会频繁变更的数据存入内存当中,从而减少服务器数据库压力,提升访问速率。使用redis作为缓存技术方案,主要是redis缓存技术的特点就在于高效,因为目前涉及的数据量逐渐增多,在对于数据的存储上面和sql以及服务器资源优化上面就来的特别的重要。而redis可以帮助解决由于数据库压力造成的延迟现象,针对于很少做改变的数据并且经常使用的数据,我们可以一致性加入内存。这样可以...原创 2018-12-25 16:37:25 · 1758 阅读 · 1 评论 -
MyBatis一对多级联查询 关联查询 映射查询 xml映射文件配置详解
Mybatis框架一对多级联查询的场景很多,很多人往往对具体的Xml映射文件配置的细节不太注意,今天笔者就给大家做个详细的讲解。常用的一对多有2种配置方式。 表名字和实体名字对应,作为讲解,为了易懂,这里只设置了几个必要字段。实体结构如下图: 商品实体Product(对应product表) public class Product { private String p...原创 2019-02-11 14:41:14 · 1143 阅读 · 0 评论 -
Java实现批量压缩图片 裁剪压缩多种尺寸缩略图 一键批量上传图片
10万+IT人都在关注的图片批量压缩上传方案(完整案例+代码)背景需求:为了客户端访问图片资源时,加载图片更流畅,体验更好,通常不会直接用原图路径,需要根据不同的场景显示不同规格的缩略图,根据商品关键属性,能够获取到图片不同尺寸规格的图片路径,并且能根据不同缩略图直观看到商品的关键属性,需要写一个Java小工具把本地磁盘中的图片资源一键上传至分布式FastDFS文件服务器,并把图片信息存入本地...原创 2019-03-13 22:11:09 · 5678 阅读 · 2 评论 -
安卓开发 Android-Studio 中打开.jks签名文件,获取shai值和md5
1:CMD命令打开dos窗口,cd命令定位到.jks文件目录下。2:输入命令:keytool -v -list -keystore keystore.jks【keystore.jks,需要替换为开发者自己的密钥所在路径和文件名】...原创 2018-11-22 15:58:24 · 2918 阅读 · 0 评论 -
高德地图接口申请 地图接口集成 高德地图API文档
最近笔者在做一个直播APP,里面有个附近的视频功能,获取周边的视频,要实时定位,用到高德地图,那么笔者把高德地图接口申请以及接口集成的过程分享出来。一、注册1、填写信息2、成为开发者3、注册完成4、创建应用5、为应用添加key填写SHA1和PackageName规则请参考这个文档 如何获取注册高德Key使用的SHA1值与PackageName?K...原创 2018-12-08 10:34:04 · 4930 阅读 · 0 评论 -
安卓开发 Android Studio生成签名文件,自动签名以及获取SHA1和MD5值
一、配置IDE生成签名文件1、在studio的菜单栏中找到"bulid"这一栏,选择"Generate Signed APK" ,如下图所示2.、新建签名文件。"Create new…"新建一个签名文件 "Choose existing…”"择一个已经存在的签名文件3、填写签名信息这里密码统一填写"android",别名写"key"即可。其他的信息根据实际情况和原创 2018-12-14 16:44:53 · 1282 阅读 · 0 评论 -
分销系统开发 分销商城开发 分销功能 Java开发"三级分销"业务功能
众所周知,互联网时代,分享经济现在随处可见,各行各业都有各种分销系统,最为常见的就是三级分销,那么如何实现这个业务功能了,笔者通过本篇图文案例给大家分享一下实现过程。此处以二级分级分销实现为例。1.什么是二级分销?二级分销其实是一种让用户分裂通过邀请的形式来获得更多的用户。如有ABC三个人,A推荐B购买一件商品,B推荐C购买一件商品。假定通过直接推荐购买该商品可获得10%利润,通过间接推荐购...原创 2019-10-10 10:45:32 · 10836 阅读 · 1 评论 -
微信公众号开发系列教程(四):监听关注/取消关注事件 消息接收与响应处理
10万+IT人都在关注,史上最全面的微信公众号开发系列教程:基于Springboot开发公众号关注/取消关注事件前言:关于监听公众号用户关注和取消关注的消息事件,微信官方文档给出的参考内容寥寥无几,具体如何配置url,官方文档也没有具体的说明,确实很坑,让人很难懂,而且网上关于配置微信消息事件接口的讲解资料很少,大多数只讲到验证token的url的配置,很少有讲到消息接口的url配置注意事...原创 2019-03-26 17:00:35 · 22976 阅读 · 10 评论 -
Spring Cloud微服务连载(二):搭建高可用Eureka服务注册中心集群
10万+IT人都在关注,史上最全面的企业级微服务快速开发学习教程:5分钟快速搭建一个高可用服务注册中心集群前言:springcloud项目是基于springboot框架,我们演示的都创建springboot工程上篇博客【Spring Cloud微服务连载(一):搭建服务注册中心以及注册服务提供者】中我们介绍了如何使用Spring Cloud搭建一个服务注册中心以及注册服务,但是搭建好...原创 2019-03-07 17:09:16 · 730 阅读 · 0 评论 -
ActiveMQ编写JMS(Java消息服务)实例分享
这篇博文,我们使用ActiveMQ为大家实现一种点对点的消息模型。如果你对点对点消息传送模型的认识较浅,可以看一下上一篇博文 JMS(Java消息服务)入门教程JMS其实并没有想象的那么高大上,看完这篇博文之后,你就知道什么叫简单,下面直接进入主题。开发环境我们使用的是ActiveMQ 5.11.1 Release的Windows版,官网最新版是ActiveMQ 5.12.0 Release,大家...原创 2018-02-09 22:06:40 · 385 阅读 · 0 评论 -
springMVC 框架 Request.getParameter(“参数名”) 中文乱码解决方法
在Java 开发中,如果框架搭建的不完善或者初学者在学习过程中,出现中文乱码是经常的事儿(哈。谁让发明Java语言的不是中国人呢)今天跟大家分享几个解决java Web开发中,request.getParameter()获取URL中文参数乱码的解决办法解决问题,先要研究问题,URL传中文参数为什么会出现乱码?原因:Http请求传输时将url以ISO-8859-1编码,服务器收到字节流后默认会以IS...原创 2018-04-02 13:37:49 · 2313 阅读 · 0 评论 -
Mybatis 版本问题引起的Parameter '0' not found. Available parameters are【0, 1, param1, param2】解决方案
按照mybatis,今天按照常规写法,在Dao层mapper接口的方法中,有多个参数,以0,1,2…的序列为keyName,填充参数结果运行时一直报下面这个错:Parameter '0' not found. Available parameters are【0, 1, param1, param2】最后查了相关资料,说是mybatis常规版本的jar包都是支持这种按照0,1,2索引填充参数,目前...原创 2018-04-09 17:38:28 · 1446 阅读 · 0 评论 -
使用Eclipse+Tomcat搭建本地服务器部署web项目详细教程
1. 下载 tomcat 解压至本地磁盘,比如这里我的解压路径是D:\ProgramFiles\apache-tomcat-7.0.68 - 副本,解压后就能用。2.测试tomcat是否可以使用,打开tomcat的bin目录,点击如下的 startup.bat,启动服务。3. 打开自己的浏览器输入 localhost:8080 如果出现如下页面则可以使用自此代表Tomcat服务器安装成功。 ...原创 2018-04-21 23:14:59 · 8359 阅读 · 2 评论 -
动手封装一个完整的java分页工具类PageBean
众所周知,web项目基本上都会用到动态分页功能,下面给大家整理写一个完整的PageBean工具类,大家把完整代码拷到自己项目里就可以直接用,本实例也适用于APP项目的翻页,废话不多说,直接上代码import java.util.List;/** * 作者:guobinhui <br> * 创建时间:2018年5月21日 <br> * 描述:动态分页Bean */...原创 2018-05-21 17:21:53 · 15247 阅读 · 12 评论 -
java 代码Springmvc框架结合JS 动态生成随机图形验证码完整案例
平时我们日常见到的有登录功能的系统都会有图形验证码的识别,现在大多数图形验证码都是通过第三方插件可以生成,那么运用我们平时的Java知识自己动手写一个生成随机图形验证码的案例,是不是很有意思 了,不废话了,直接上代码,快来围观。首先案例采用的是Springmvc框架的maven项目,在maven项目的pom.xml文件引入权限控制shiro的依赖jar包<!-- shiro start --...原创 2018-06-29 15:29:14 · 1194 阅读 · 0 评论 -
JS实现注册登录发送短信验证码动态显示60S倒计时完整案例
通常在web项目中都会遇到账户注册或者忘记密码时需要发送短信验证码的功能,虽然说这种功能很常见,但是实际开发过程中很多人还会遇到不少坑。笔者经过整理把最近项目中的用到的这个发送短信验证码动态显示60S倒计时的完整实现过程分享给广大开发者朋友。1、页面发送短信验证码的表单<div class="form-group"> <div class="col-xs-6...原创 2018-10-05 21:13:12 · 23468 阅读 · 10 评论 -
JAVA实现微信公众号调用摄像头拍照和打开本地相册上传图片至服务器
一、主体实现流程1.引入Jquery和微信公众号JS-SDK (<script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>)点击button或div,通过Ajax请求后台自定义接口,获取微信拍照和打开本地相册接口所需的参数,调用拍照接口【chooseImage】和上传图片接口【uplo...原创 2018-09-29 15:22:08 · 8563 阅读 · 5 评论 -
Java开发公众号系列教程(二):公众号开发全局缓存access_token和jsapi_ticket
上篇文章给大家分享了Java实现微信公众号调用微信拍照接口和打开本地相册上传图片的实战案例详解,近期收到很多开发者朋友通过笔者微信的咨询和反馈,表示很专业,很全面,很详细,十足的干货,足金足两,很受益。广大开发者朋友的持续支持和好评,让笔者有了更饱满的技术创作精神,那么今天就再次给大家分享一篇今天精心整理的干货《获取公众号的access_token和jsapi_ticket以及全局缓存公众号acc...原创 2018-09-30 11:46:15 · 7129 阅读 · 1 评论 -
springmvc开发微信公众号接口 微信公众号测试账号配置接口Token验证
综合笔者多年的微信公众号以及微信产品开发经验,本篇内容把微信公众号测试账户的接口配置过程分享给广大开发者朋友,开发语言是Java,采用目前流行的springmvc框架开发。开发前必读以及准备工作:1、微信公众平台开发是指为微信公众号进行业务开发,为移动应用、PC端网站、公众号第三方平台(为各行各业公众号运营者提供服务)的开发,请开发者前往微信开放平台接入。2、在申请到认证公众号之前...原创 2018-12-15 11:54:57 · 7371 阅读 · 4 评论 -
springboot重写适配器addResourceHandler 虚拟路径映射文件磁盘路径 读取磁盘文件 预览文件
文件上传的功能很常见,但是很多人并不清楚文件上传后预览的具体原理,也就是把上传至服务器指定物理磁盘相关目录(绝对路径)的文件通过浏览器直接访问预览。这种具体实现其实是要配置一个映射关系的,即配置一个虚拟路径来映射文件的真实绝对路径(完美的隐藏了文件的真实物理路径,可以说不但很安全,而且外网可以直接访问)。配置虚拟路径映射物理路径常规二种方式方式一:在tomcat的tomcat-7.0.39...原创 2019-02-16 11:11:39 · 11805 阅读 · 5 评论 -
springboot图片压缩后上传 MultipartFile转为File文件流 按照指定宽高压缩上传
在开发中,前端上传的文件流,在后台接口中通常是用MultipartFile类型的流格式接收,但是接收到的文件流往往不能满足我们的使用要求,我们需要转为File类型的文件流再去读取文件的宽高,大小等属性进行压缩上传等操作。本工具类为大家分享具体实现过程。接口规范:接收前端传的文件流,以及指定的目标压缩宽高,和压缩完需要上传到的指定目录。首先封装一个动态生成文件目录的文件路径工具类packa...原创 2019-02-16 11:49:38 · 5127 阅读 · 0 评论 -
springboot+poi开发excel导出 加载Excel模板导出 Excel批量导出详解
提到Excel导出功能,可能很多人都使用springmvc框架做过,笔者今天要给大家分享的是基于springBoot开发Excel复杂模板导出功能(所谓复杂模板指在模板里的特定表头里有不同的单元格合并以及背景色,字体颜色的填充,文本内容的对齐方式等)。实现思路:首先在springBoot(或者SpringCloud)项目的默认templates目录放入提前定义好的Excel模板,然后在具体...原创 2019-02-12 18:48:35 · 13087 阅读 · 2 评论 -
Spring Cloud微服务连载(一):搭建服务注册中心以及注册服务提供者
10万+IT人都在关注的史上最全面的企业级微服务快速开发学习脚踩:5分钟快速搭建一个标准的Spring Cloud服务注册中心前言:springcloud项目是基于springboot框架,我们演示的都创建springboot工程一、创建一个普通的Spring Boot工程首先我们通过spring官网创建一个普通的Spring Boot工程,官网地址 https://start.spr...原创 2019-03-05 16:52:43 · 441 阅读 · 0 评论 -
SpringBoot @ControllerAdvice注解自定义全局异常处理类 统一处理异常
在Springboot或者Springcloud开发中为了统一处理业务异常,需要自定义全局异常处理类统一处理业务异常。在spring 3.2中,新增了@ControllerAdvice 注解,可以用于定义@ExceptionHandler、@InitBinder、@ModelAttribute,并应用到所有@RequestMapping注解的方法中,本篇内容笔者讲解一下使用@ControllerA...原创 2019-03-02 14:57:32 · 2887 阅读 · 0 评论 -
最全面的springBoot集成mybatis+mysql项目搭建经验分享
大家都知道,现在Spring框架几乎无处不用,目前最新版本据说是Spring5,现在常用的基本还是Spring4.X,很多公司甚至用的还是Spring3.x,而Spring领域其中最好用的莫过于SpringBoot,这是从SpringMVC衍变出来的,本质还是SpringMVC,但是要比SpringMVC好用的多,因为很好用,所以笔者闲暇之际用SpringBoot从头至尾摸索着搭建了一个案例,分享...原创 2018-02-08 15:56:23 · 45915 阅读 · 39 评论 -
Spring AOP之AspectJ(面向切面编程) 案例详解
一.前言 今天看了一篇关于Spring AOP的详解,写得还不错,就转载学习一下,也在此分享给更多的朋友。AOPAOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。OOP引入封装、继承、多态等概念来建立一种对象层次结构,用于模拟公共行为的一个集合。不过OOP允许开...转载 2018-02-09 10:54:19 · 738 阅读 · 0 评论