- 博客(93)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 微信开发:用户认证由openid做唯一标识改为unionid
背景线上项目一开始PC端由微信网页授权实现,都是使用openid作为用户标识,但后期又增添了微信小程序的开发。这就出现了问题,因为微信应用之间openid是不一致的,用户信息无法统一。所以只能改为使用unionid作为用户唯一标识,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号,用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。实现分为三步1.PC端网页授权登录认证,当用户第一次登录时要由存储openid改为unionid。
2021-09-08 18:17:32
3553
1
原创 Freemarker:使用Excel模版导出,5位纯数字日期格式转换问题
背景记录个模版导出日期格式遇到的问题,excel日期显示是这样的:转为模版文件是这样的:解决这个是Excel的序列号日期格式,给模版赋值时需要转为这种格式才能正常显示,我是这样解决的:引maven <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId>
2021-08-19 11:17:31
474
原创 java : 实现微信网页授权,超详细!
背景使用微信公众号实现网页授权。开始1.微信网页授权的官方文档微信网页授权2.申请微信测试公众号从红框进入申请页面。填写必要的信息,注意上图红框部分的域名需要可以外网能够访问,微信需要发送请求进行验证。我用的是内网穿透实现的,下面会说。这里需配置授权成功后回调地址的域名,注意不要写http,https!这个坑我踩过。3.内网穿透我用的是natapp,免费的很稳定。详细信息可以看这个兄弟写的博文。可以看这篇博文4.实现...
2021-08-09 16:34:25
2009
1
原创 使用EasyExcel实现导出,记录一个好看的导出样式
背景分享一个导出excel样式模版开始工具类public class ExcelUtil { public Timestamp formatTimeStr(String timeStr) { try { SimpleDateFormat format; if (timeStr.contains("年")) { format = new SimpleDateFormat("yyyy年MM月dd日"
2021-07-21 18:24:50
988
原创 Spring boot:将基础项目打成jar包,并在其他项目中引用
1.基础项目结构core:基础类security:登录验证,及基础接口父pom<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 ht
2021-06-24 17:12:47
1852
1
原创 Flowable:Flowable Modeler设计器引入前端vue项目
背景使用工作流必然少不了流程设计器,这类设计器很多。这里使用的是flowable工作流,使用的设计器也是flowable的Flowable Modeler。实现1.下载官网地址:https://www.flowable.org/2.将Flowable Modeler放入自己的Vue项目3.修改接口访问路径4.在vue页面引用它<template> <div class="e_centent"> <div class="typelise">
2021-06-21 17:43:58
6801
15
原创 Flowable:使用自带设计器流程与Form表单一起部署,并查看任务表单历史
背景项目需要使用工作流,选择了Flowable,流程任务需要填写表单,并且需要当前任务查看上一任务填写的表单,还需要实现流程与表单一同部署。所以今天主要说的是:1.使用Flowable自带的设计器实现部署流程时与流程中的表单一同部署并且关联起来。2.当前任务可以查看所有之前任务的表单及内容。前端直接集成到自己的前端项目就行。首先选择任务节点点击图中红圈部分选择引用的表单然后会弹出表单列表可以选择已有的也可以选择新建,新建跳转到下面页面:之后直接拖拽设计就好。后端官方的Api不知道
2021-06-17 17:39:05
4923
5
原创 spring data jpa 动态分页查询实现
背景之前使用JPA做动态分页都是使用的原生sql的IF实现。乱吧?!乱是其次,最重要的是这么写无论如何都不会走索引的,数据量巨大时,慢的你怀疑人生。最近有空研究了下使用@ManytoMany等等表关系注解实现联表查询。开始建资源组实体@Entity(name = "base_resource_group")@ApiModel(value = "资源组实体类")public class ResourceGroupEntity implements Serializable { @I
2021-06-10 14:53:46
513
1
转载 阿里云Linux CentOS 7.6环境下安装和配置基础软件(jdk、nginx、mysql、redis)
本文章是在阿里云Linux CentOS 7.6环境下安装和配置基础软件(jdk、nginx、mysql、redis)的过程,各个基础软件的版本如下所示:jdk: jdk-8u191-linux-x64nginx: nginx-1.14.2mysql: mysql-5.7.24-1.el7.x86_64redis: redis-5.0.3注意:不同的操作系统和基础软件版本,安装或配置可能会存在差异,本文只保证如上所列版本安装和配置的正确性。我在/mnt下挂载了一个数据盘,基础软件我都先下载到此目
2021-04-28 17:47:27
211
原创 微信小程序:uniapp+WebSocket实现订单提醒
背景做的一个校园版的美团外卖项目,这里分享一下订单提醒功能,使用uniapp+WebSocket实现。开始一、导入pom<!--socket--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId>
2021-04-20 18:01:33
4368
2
原创 iview-admin 菜单按钮权限验证实现
背景最近一直在用iview-admin前端vue框架,对权限的验证如果放在前端,可以这么写。开始1、首先登录时,需后台接口将资源权限传给前端// 登录 handleLogin({ commit }, { username, password }) { username = username.trim() return new Promise((resolve, reject) => { logi
2021-04-12 16:33:45
680
2
原创 JAVA:使用华为云存储OBS处理文件
背景第一次使用华为的云存储OBS处理文件,记录一下,用到OBS的功能不多,都是基础功能。开始一:购买OBS华为云官网直接从官网找到并选择合适的套餐购买就行。二:yml配置#华为云obs配置obs: end-point: https://obs.cn-north-4.myhuaweicloud.com #每个区域一个,这里是北京四 bucket-name: tong-name #桶名,可以在华为云控制台添加,可以有多个 ak: xxxxxxxxxxxxxxxx sk: Ro0C
2021-04-09 14:37:15
3355
2
原创 使用RestTemplate接收XML数据转对象与发送XML请求数据
背景公司项目和别家公司合作开发,涉及到了接口对接,对方提供的接口文档中数据交互全部都是XMl格式,第一次遇到xml数据的接口,这里记录下对XMl数据的处理。开始1.认识下XMl❤ XML 指可扩展标记语言(EXtensible Markup Language)❤ XML 是一种标记语言,很类似 HTML❤ XML 的设计宗旨是传输数据,而非显示数据❤ XML 标签没有被预定义。您需要自行定义标签。❤ XML 被设计为具有自我描述性。❤ XML 是 W3C 的推荐标准<?xml ve
2021-04-08 17:57:54
8310
原创 ELK在Linux下安装部署
一、部署的版本二、部署顺序部署的顺序如下:1.kafka2.logstash3.elasticsearch4.kibana日志的收集顺序也是如此:先由Log4j2压入Kafka,然后通过Logstash进行解析后,存储至Elasticsearch,最后通过Kibana进行可视化展示。下载的相关地址:Kafka:http://kafka.apache.org/另外三个:https://www.elastic.co/三、部署将四个压缩包通过FTP上传至服务器,然后解压,涉及到的命令如下
2021-03-25 17:59:44
304
原创 JAVA:Excel文档转无水印PDF文档
背景新年初始,万物复苏,正月未过,给大家拜个晚年了!一个小功能,分享一下。准备首先下载文件链接: https://pan.baidu.com/s/1xvZYc13QVl1OtvFZ13gyDQ .提取码: gkrc我这里用的是Aspose的jar包,因为它是收费的所以不交钱会有水印,需要自己破解一下。破解用到的文件就是下载中的xml文件。实现将文件放到下图所示文件。package com.demo.demo.controller;import com.aspose.cells.L
2021-02-23 17:45:17
518
6
原创 Flowable流程引擎——02基本功能代码实现
背景疫情复燃,居家隔离了20多天!刚刚解封,致敬那些抗疫英雄们!马上过年了,2021年加油吧!功能1.流程模版列表查询 @Qualifier("processEngine") @Autowired private ProcessEngine processEngine; @Autowired private ModelRepository modelRepository; @Autowired private ModelService model
2021-02-07 17:09:30
631
原创 Flowable流程引擎——01初识
背景最近在做一个关于审批的项目,审批流程需要动态管理,自己从零开发成本很大,于是决定使用Flowable流程引擎来进行开发。第一次使用工作流进行开发,完全是在摸索中进行,网上资料很少,所以,我在这里分享一下我使用到的关于Flowable的知识。大家一起进步!介绍官方地址:https://flowable.com/open-source/Flowable项目提供了一组紧凑且高效的开源业务流程引擎核心。它们为开发人员,系统管理员和业务用户提供了工作流和业务流程管理(BPM)平台。它的核心是闪电般的,经
2021-01-04 17:56:11
980
2
原创 带你读懂什么是Spring Cloud Alibaba!
背景一天和我合租的兄弟闲聊,听到他说他们公司在使用 Spring Cloud Alibaba微服务框架,当时听到这个名字我是一脸懵逼,阿里巴巴什么时候和spring公司有一腿了?尴尬的一批。唉,看来程序员果然是一个终身学习的职业呀,一日不学,就脱离世界了。今天我们就了解一下Spring Cloud Alibaba,做个简单入门。这篇博文主要内容是介绍什么是Spring Cloud Alibaba,Spring Cloud 与Spring Cloud Alibaba的关系,以及我们为什么要学习它,以及畅想
2020-12-31 17:58:22
444
原创 只用分布式锁,怎么搞定每秒上千订单的高并发优化?
聊一个有意思的话题: 每秒上千订单场景下,如何对分布式锁的并发能力进行优化?背景引入首先,我们一起来看看这个问题的背景?前段时间有个朋友在外面面试,然后有一天找我聊说:有一个国内不错的电商公司,面试官给他出了一个场景题:假如下单时,用分布式锁来防止库存超卖,但是是每秒上千订单的高并发场景,如何对分布式锁进行高并发优化来应对这个场景?他说他当时没答上来,因为没做过没什么思路。其实我当时听到这个面试题心里也觉得有点意思,因为如果是我来面试候选人的话,应该会给的范围更大一些。比如让面试的同学聊一聊电商
2020-12-30 18:00:06
366
原创 程序员:品《漱玉词》看李清照生活审美
作者本人java程序员一枚,每天做不完的需求,改不完的bug,用李煜的一句“剪不断,理还乱”最恰当不过。但怎么缓解这种“复杂心情”呢?我的办法就是:品诗词!让我们短暂的告别:“面向对象”,而去拥抱“面对诗词”。今天我们就看看《漱玉词》。 作为两宋词史上一位举足轻重的女词人,李清照推动宋词创作进入新的佳境。《漱玉词》中生活意象如“饮酒分茶”、“赏花游玩”、"焚香梳妆”等对于研究李清照的生活审美情趣具有重要作用,作为女性读者去研读李清照的词作,总是能被其作品中所表现出来的雅致生活深深吸...
2020-12-28 13:14:29
313
原创 spring boot集成freemarker实现根据word模版生成文件并下载功能
spring boot集成freemarker实现根据word模版生成文件并下载功能一、添加maven <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.23</version> </dependency>
2020-12-24 16:10:18
626
原创 iview-admin 登录实现
iview-admin 登陆实现登录流程界面输入用户信息(@/view/components/login-form/login-form.vue)->调用父组件的handleSubmit方法(@/view/login/login.vue)->再调用Vuex actions 方法handleLogin(@/store/user.js)->再调用axios方法login(@/api/user.js)->请求后接口数据一、@/view/login/login.vue页面修改h
2020-09-21 10:52:27
3375
1
原创 Spring Boot——问问问
1问:Spring Boot是脚手架吗?不是。很多人认为凡是帮你快速搭建项目的就是脚手架,但其实不然。脚手架这个词并借用自建筑行业,所以我们先搞清楚这个词本身的含义。真实的脚手架就是建筑工地盖楼房的时候外面那一层钢管搭建的架子,把整个楼房围起来,方便建筑工人在外围施工。还有绿色的网罩起来,起到保护作用。脚手架和所有的建筑材料不同之处在于,它只在建筑过程中起到作用。楼房建成了,脚手架就拆掉了。其他砖瓦混凝土都会融入为建筑的一部分,但是脚手架是不会作为物业的一部分交付给业主的。就Web开发来说,脚手架这
2020-07-07 09:10:40
171
原创 深入浅出之Json Web Token
JSON Web Token是什么?JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。它为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证
2020-07-06 19:40:28
353
原创 跨域身份验证解决方案——Json web token (JWT)
JWTJSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。一个JWT实际上就是一个字符串,它由三部分组成,头部、载荷与签名。头部(Header)部用于描述关于该JWT的最基本的信息,例如其类型以及签名所用的算法等。这也可以被表示成一个JSON对象。如:{“typ”:“JWT”,“alg”:“HS256”}在头部指明了签名算法是HS256算法。 我们进行BASE64编码http://base64.xpcha.com/,编码后的字符
2020-07-03 18:43:55
1594
原创 阿里开源项目——Canal
阿里开源项目——Canal1.Canal是什么?canal是阿里巴巴旗下的一款开源项目,使用纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB)。canal可以用来监控数据库数据的变化,从而获得新增数据,或者修改的数据。canal是应阿里巴巴存在杭州和美国的双机房部署,存在跨机房同步的业务需求而提出的。阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务。2.Canal工作原理
2020-06-07 16:45:38
1094
原创 第一次用jpa,分享个自己改的jap实体生成脚本
import com.intellij.database.model.DasTableimport com.intellij.database.model.ObjectKindimport com.intellij.database.util.Caseimport com.intellij.database.util.DasUtil/* * Available context bind...
2020-05-01 20:31:15
169
2
原创 Spring MVC总结
Springmvc 工作原理是什么?客户端发送请求到 DispatcherServletDispatcherServlet 查询 handlerMapping 找到处理请求的 ControllerController 调用业务逻辑后,返回 ModelAndViewDispatcherServlet 查询 ModelAndView,找到指定视图视图将结果返回到客户端Springmvc ...
2019-11-24 13:16:15
60
原创 Spring 总结
1、Spring是什么?Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。常见的配置方式有三种:基于XML的配置、基于注解的配置、基于Java的配置。主要由以下几个模块组成:Spring Core:核心类库,提供IOC服务;Spring Context:提供框架式的Bean访问方...
2019-11-24 12:30:22
103
原创 Spring Boot整合通用mapper
1.引入依赖<!-- https://mvnrepository.com/artifact/tk.mybatis/mapper --> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifa...
2019-10-22 21:00:40
61
原创 Spring boot整合Mybatis
1.需要的starter:微信截图_20191020205723.png2.需要的 配置# DB 配置spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.password=rootspring.datasource.username=root# 必须配置时区,不然报错s...
2019-10-20 21:06:45
55
原创 RabbitMQ延迟消息实现
配置类package com.changgou.order.config;import org.springframework.amqp.core.*;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;/****...
2019-09-24 22:03:08
82
原创 二维码JS插件 QRcode.js
QRCode.js 是一个用于生成二维码的 JavaScript 库。主要是通过获取 DOM 的标签,再通过 HTML5 Canvas 绘制而成,不依赖任何库。支持该库的浏览器有:IE6~10, Chrome, Firefox, Safari, Opera, Mobile Safari, Android, Windows Mobile, 等我们看一下静态原型wxpay.html中的代码,显示二维...
2019-09-24 22:02:57
166
原创 WebSocket 双向通信,RabbitMQ发消息到浏览器
要求:tomcat7以上前端html5首先RabbitMQ安装STOMP 插件我们进入rabbitmq容器,执行下面的命令开启stomp插件rabbitmq-plugins enable rabbitmq_web_stomp rabbitmq_web_stomp_examples将当前的容器提交为新的镜像docker commit 3989ec68bf3c rabbitmq:stom...
2019-09-24 22:02:50
356
原创 更改商品信息消息队列通知ES更新与静态页生成
(1)创建配置类package com.example.canatest.config;import org.springframework.amqp.core.*;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;...
2019-08-26 18:29:37
217
1
原创 生成商品详情页静态页
需要的pom<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>代码:package...
2019-08-26 16:51:53
185
原创 不通过转发直接访问templates下文件的配置
项目文件结构Snipaste_2019-08-25_12-48-51.pngtemplates文件夹就相当于web-info文件夹,默认是不支持外部访问的,只能同过内部转发访问,那如何开启外部访问呢?下面是配置类。package com.changgou.web.item.config;import org.springframework.context.annotation....
2019-08-25 12:54:20
144
原创 Thymeleaf介绍及基础语法
thymeleaf是一个XML/XHTML/HTML5模板引擎,可用于Web与非Web环境中的应用开发。它是一个开源的Java库,基于Apache License 2.0许可,由Daniel Fernández创建,该作者还是Java加密库Jasypt的作者。Thymeleaf提供了一个用于整合Spring MVC的可选模块,在应用开发中,你可以使用Thymeleaf来完全代替JSP或其他模板引...
2019-08-24 21:36:24
465
wps打开html,img中放base64图片不显示,是wps不支持?
2021-03-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人