自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

海棠不惜胭脂色,独立蒙蒙细雨中

人家要打倒你,不管怎样打,你自己不要倒;人家要赶你走,不管怎样赶,你自己不要走;人家要整你,不管怎样整,你自己不要死。

  • 博客(275)
  • 收藏
  • 关注

原创 【Vue】Quill Editor自定义组件

最近小编在做案例展示,在富文本编辑器这里花了不少时间,还好有前端大哥帮忙,这才拨开云雾见月明。对于图文信息,有多种编辑器,我选用的是Quill Editor。对vue的使用还不熟练,在富文本编辑器这里遇到的问题主要是上传图片,我们要求的是限制图片最大宽度800px,大小不超过1M。下面我们来说说富文本编辑器的引入和使用:1、执行命令:npm install vue-quill-editor ...

2019-06-25 14:16:05 1510

原创 【Redis】redis的setnx使用

业务需求是这样的:扫车牌,添加一个车牌号,推送消息到一体机,小程序,若该对应用户的会员卡有余额不足的情况,推送到极光服务。添加车牌号需要判断今日车辆是否进场,如果已经进场过,直接返回提示,否则添加入库,执行逻辑。问题:推送逻辑不能影响主逻辑,所以将推送逻辑放在了finally。但是若重复进场,我不能重复极光推送,try里执行完入库操作,在finally的逻辑里如果再次判断是否进场,就会报已进...

2019-03-12 19:02:27 2859

原创 【微信公众平台】消息转发至客服

在微信公众平台上,单看接口文档,遇到很多问题,有些我们可能会理解错,下面我给大家介绍下我在开发过程中遇到的问题,希望对大家有帮助。先来看看我们要达到什么效果:1、我们在公众号后台开通客服:添加功能插件,找到客服,开通,然后进入客服功能页面添加客服。2、用户关注公众号后,在公众号发消息:3、然后客服在 https://mpkf.weixin.qq.com 登录,会看到有一人待接入,点击接...

2019-03-12 18:05:05 3661 3

原创 一步步教你如何实现极光推送

极光推送参考文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push/

2019-02-20 15:45:59 1582 2

原创 SpringBoot如何与Swagger集成?

集成一个新东西的套路:引jar包,改配置,贼爽贼爽地使用。Swagger这个东西对我来说不是个陌生的东西了,使用Swagger确实给研发带来极大的便利。个人认为它就是个API接口文档。以前:后端开发先写出接口文档,有的用word写,有的用Markdown编辑,个人感觉有些麻烦。现在:有了swagger,后端可以先定义好接口,业务逻辑暂时不用写,界面便可展示出来供前端开发。当然利用s...

2018-12-26 15:28:58 242 1

原创 【微信开发平台】开放数据解密

背景:微信快捷登录,获取用户手机号。微信公众平台解释:考虑到安全性,微信服务器的开放数据通过加密传到开发者服务器,然后需要开发者解密得到开放数据。根据小程序微信公众平台解释,步骤如下:1、前端需要调用wx.login(),获取code;2、使用code调用微信接口获取session_key:https://developers.weixin.qq.com/miniprogram/de...

2018-12-20 19:57:15 690 1

原创 【微信公众平台开发】发送模板消息

最近在搞微信公众平台开发,需求是发送模板消息,相关的接口在开发者文档中有很详细的说明,https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433751277。下面我们来看看具体怎么实现自己的需求:一、点击以上链接,我们看到有7个接口,我们要用的就是第六个,发送模板消息,其他接口可根据自己业务需求来实现。二、发送模板消息接口...

2018-11-05 20:35:33 667

原创 获取统一编号服务-SnowFlake雪花算法

公司需要有个可以提供统一编号的服务,如果系统小时,唯一标识的产生,可以用公用模块来处理,比如数据库表唯一键、缓存的唯一id等方式,但是在分布式高并发系统中,如果还是用公共模块,会有很大的风险和瓶颈,从网上查了几种方案对比如下:经过以上对比考虑使用twitter的雪花算法Snowflake。Snowflake:64位达到要求:主要由3块构成:时间戳、工作机器id、序列号。其中第一位不...

2018-10-15 20:45:21 1380

原创 解决Maven工程循环依赖的问题

背景:      最近在做下载模板,目前思路是通过调用考评服务的接口来下载,结果出现了循环依赖的问题。探究:      Maven的循环依赖或者双向依赖。下图描述了相互依赖的场景:     &n

2018-03-16 10:19:53 8349 21

原创 服务间调用方法:HttpClient

在公司涉及到这样一个需求,要求一个工程调用另一个工程的接口,一开始还挺高兴,自己做过dubbo的,这个应该不是问题,因为我们这个项目没有使用Dubbo框架,所以得用另一种方法了。       最一开始我想着将另一个工程打成jar包使用,后来觉得这种方法应该效率会很低,一个工程里又放另一个工程。       后来从周博大哥那里知道使用HttpClient就可以。HttpClient方法的使用配置文

2017-11-23 18:54:31 1520 40

原创 如何将idea项目上传到Git

Git是一款免费的分布式版本控制工具。每个人的电脑都是一个完整的版本库,那么我们该如何将一个java项目上传到Git呢?一、准备工作1、Git下载及安装https://jingyan.baidu.com/article/7f766dafba84f04101e1d0b0.html2、GitHub注册账号https://github.com/3、idea上创建java项目二、配置idea项目1、配置id

2017-11-16 12:05:23 40809 81

原创 java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.view.jsp.default.ui.casLoginView.jsp

背景:      公司需要开发省平台与国家平台对接的页面;首先我需要登录,从Git新拉取了一个项目,单点登录系统。过程:      将项目导入eclipse中,配好Tomcat(一个开发项目;一个登录系统)后,两个tomcat端口不能冲突:做好这些工作后,启动tomcat,成功。输入url后报错:查看控制台日志,报错:java.lang.ClassNotFoundE

2017-11-15 14:30:56 7275 24

原创 Tomcat配置与常见问题

从Git上新下的代码是java,不是web项目,所以我们首先需要转成web项目。 详细步骤如下图:Tomcat配置1、项目右键–>properties:2、找到Project Facets:3、设置后的效果:Tomcat运行问题做好以上的配置后,运行tomcat,报错:解决这个异常的方法很简单,如下图:就是导入servlet-api.jar,jsp-api.jar两个jar,再次启动tomcat就

2017-11-13 12:06:01 586 21

原创 CentOS下载及安装

公司用到了SSDB,从网上查了查,得知,SSDB服务器最好是在linux系统上运行,所以就首先安装个linux系统吧。CentOS是Linux发行版之一,是非商业版的软件,免费,使用方便,有成千上万台服务器使用CentOS平台,而每年平均只有一台服务器崩溃。所以,挑一个优秀、迅捷、可靠的平台吧!一、CentOS下载1.百度输入CentOS,进入官网2.进入页面出现三个版本,选择Minimal ISO

2017-11-08 15:39:06 450 21

原创 Git与SVN,选哪个好?

Git与SVN,我们应该选用哪个好?首先我们来看一下具体他们有什么不同之处。Git分布式,而SVN集中式:SVN:       SVN属于集中化的版本控制系统,必须联网才能工作。有个不太精确的比喻:SVN = 版本控制+ 备份服务器,SVN支持并行读写文件,支持代码的版本化管理,功能包括取出、导入、更新、分支、改名、还原、合并等。大都采用图形界面操作,直观,上手快。 Git:      Git是一

2017-11-02 14:19:49 2333 17

原创 Angularjs按需查询

课程信息管理界面有这样一个需求,当课程类型为公选课的时候,可以选择课程性质,当为其他课程类型的时候,不必选择课程性质。 代码:/** * 获取课程类型下拉框数据 */ getCourseTypeNameOptions(){ let url = "teachingManagement-web/course/queryAllCourseType"; this.ht

2017-10-29 22:09:02 405 21

原创 课程表-星期和节次坐标定位

在开发课程表过程中遇到这样的需求,根据后端回显的数据,返回填充到对应的星期和节次中,就像这样: 那么在前端是如何实现的呢: 核心代码实现: wc: String[] = new Array(); //将课程表存放到数组wc里 s: string; //学年学期 w: number; //星期 c: number; //节次 o: string; //单双周//从dataserv

2017-10-21 19:08:27 2110 18

原创 项目问题

最近小编在搞事情,ITOO云平台项目,到现在这个项目进行了有三个月了,遇到的问题也是千奇百怪,期间少不了小伙伴们的帮助啊,都是项目经验,

2017-09-25 22:06:42 384 20

原创 Idea中的调试技巧

做项目时调试遇到个问题Variables debug info not available,上网查了很多资料,都没有很好的解决办法,多次尝试修改代码不起作用,看不到具体出错的原因,后来在坤哥的帮忙下发现了个很实用的调试小技巧,今天就分享给大家吧!当我执行完下面这段代码后,出现 使用evaluate调试的方法,当代码执行到该类时,选中需要调试的代码,点击类似计算器的小图标,点击Evaluate即可:

2017-09-09 10:01:04 4038 19

原创 使用P6Spy格式化SQL语句

公司最近在做一个项目,开发过程中遇到点小问题,查询结果出不来,查看自带日志打印,有点不爽,特别是想复制sql语句到数据库navicat中去调试时,还要手动复制参数值,很是麻烦,那如果想打印出格式化的详细sql语句,我们该如何做呢?一、pom.xml文件中添加依赖:<dependency> <groupId>p6spy</groupId> <artifactId>p6spy</arti

2017-09-08 17:47:54 1444 58

原创 java--验证码实现

验证码:主要用于防止猜测密码,很多软件通过自动猜测密码的方式来破解密码,如果设置了验证码,那么黑客编写的软件就不能正确识别验证码,从而实现不能通过软件尝试破解密码的作用,我们在登录系统时,需要输入验证码,它延长了操作者的时间对用户体验很不利,为什么这么多网站还要用呢?欢迎访问博客:验证码有什么用?为什么要用验证码?怎么用?1、配置web.xml文件: AuthImag

2017-06-15 09:24:11 517 19

原创 Java--监听器Listener

Listener的两类监听对象:1、HttpSessionListener可以监控session的创建或销毁,进入动态页面jsp会创建session,监听结果:如果将jsp页面session属性改为false,将不会创建。2、HTTPSessionAttributeListener当session的属性发生改变时可以检测到。例如:获得在线人数,编写HttpS

2017-06-08 09:45:18 448 17

原创 如何实现JDK动态代理?

代理模式:代理模式给某个对象提供了一个代理对象,并由代理对象控制对原对象的引用。代理分为静态代理和动态代理。为何用代理?不用代理时,在写实现接口类UserManagerImpl的时候代码是这样写的:public void addUser(String userId, String userName) { System.out.println("start-->>addUser() u

2017-06-02 21:31:28 858 60

原创 如何保证线程安全?

如何保证线程安全?接着前几篇博客的线程知识,我们这次来了解一点线程安全知识,了解的不多,希望对大家有用。直接原因:多个线程同时操作非原子操作存在CAS多线程出现问题的原因:共享了内容且内容可变解决多线程问题的核心就是解决这两点。解决方法:删除共享内容让共享内容不可变每次使用新的对象同时只有一个线程处理总结:1、

2017-03-19 15:59:56 881 17

原创 dom4j如何读取xml

dom4j如何读取xml    drp项目中用MyEclipse编码来连接Oracle,首先将ojdbc14.jar拷到对应的目录中,DbUtil:与数据库建立相关连接/* * 封装数据常用操作 * */public class DbUtil { public static Connection getConnection(){ Connection conn

2017-03-11 09:35:26 455 16

原创 oracle创建用户与导入表结构

oracle创建用户与导入表结构

2017-03-09 22:13:05 1446 16

原创 jsp、servlet和tomcat的关系

jsp、servlet和tomcat的关系了解:    jsp就是特殊的servlet,在servlet中通过流将html代码输出给客户端,为了方便就就诞生了jsp,jsp中可以抛开java代码,直接使用html标签编写代码,这样就很好的将java代码和html代码分离了,其实jsp最终运行时会被编译成servlet。Servlet的主要功能是用来处理业务逻辑代码的,虽然J

2017-03-08 11:30:07 1688 15

原创 Log4Net日志工具

Log4Net了解:    记录日志。可以将程序运行过程中的信息输出到一些地方(文件、数据库、EventLog等)。 作用?    将执行过程的步骤、成功失败记录下来,将关键性的数据记录下来分析系统问题所在。优势:1.创造性的制造了一个错误消息的(内存)队列,当出现异常后,直接把错误消息放到内存的队列中去;然后web继续往下执行,给用户反馈信息。不会阻塞

2017-03-01 20:02:22 663 11

原创 SQL查询一个表中类别字段中最大值对应的值

SQL查询一个表中类别字段中最大值对应的值一、SQL查询一个表中类别字段中最大值对应的值(对一张表的操作):问题:根据教师id查询checkOutAutoID最大的一条记录里的上期余额?探索:1.group by方法:首先查询表中相同teacherID对应的checkOutAutoID的最大值:select MAX(checkOutAutoID) fro

2017-01-22 15:51:14 24528 16

原创 Mysql安装、配置

Mysql安装、配置与使用一、安装:    Archive版本代表免安装:二、配置:    打开文件夹,新建个my.ini。复制下面的代码保存就ok了。[mysql]# 设置mysql客户端默认字符集default-character-set=utf8 [mysqld]#设置3306端口port = 3306 # 设置mysql的安装目录

2017-01-08 22:05:44 429 20

原创 Ajax下载文件乱码

背景:同事给发了份excel,要求补充数据,每次给同事提供数据都是跑脚本方式,实在麻烦,那就导入excel后再让他导出补充后的excel好了,他自己可以操作,省时省力。采坑纪实:先是采用ajax请求,第一版代码: $.ajax({ type: "POST", url: Feng.ctxPath + "/export/batchExportTask", async: true, data: formDat

2021-10-28 18:42:26 1205 3

原创 结合项目再次讨论redis与数据库一致性问题

背景:方案:读取腾讯binlog写入kafka,kafka消费,淘汰缓存,,,待更新,,

2021-09-28 19:51:32 232

原创 基于aop实现日志拦截

日志拦截系统想要实现的是将用户的具体操作,比如添加或更新,如果是更新要将具体更新的什么内容记录下来。传统日志嵌入业务代码,耦合严重,如果逻辑复杂,日志的输出还会影响主业务,用户体验度明显下降,而本方案,基于Spring AOP切面的思想,对接口统一做日志拦截,降低了与主业务的耦合,大大提高了性能和用户体验度。基本设计1、采用AOP切面技术拦截日志,将业务代码与日志解耦,大大提高性能和用户体验度。2、采用Kafka做日志缓冲,各服务按需获取kafka的数据进行处理。3、采用MongoDB做日志存储。

2021-09-28 19:43:00 745

原创 【ElasticSearch】搜索推荐

搜索推荐:类似百度,用户在输入时,自动带出可能要搜索的关键词。一般的实现方式是通过前缀匹配:GET /my_index/my_type/_search { "query": { "match_phrase_prefix": { "title": "hello d" } }}但是这种方法根据前缀,然后扫描整个倒排索引的性能太差,不推荐使用。引出ngramNgram:ngram的推荐原理:比如输入quick:quick,五种长度下的ngram:len

2020-12-23 16:16:40 598 1

原创 【ElasticSearch】精准搜索

一、and关键字:搜索结果精准控制的第一步,灵活使用and关键字,如果希望所有的搜索关键字都匹配,就可以使用and,实现单纯match query无法实现的效果。GET /forum/article/_search{ "query": { "match": { "title": { "query": "java elasticsearch", "operator": "and" } } }}二、min

2020-12-18 18:33:45 467 1

原创 【ElasticSearch】重建索引

重建索引是为什么?什么时候需要重建索引?比如,我们插入一条数据:PUT /my_index/my_type/3{ "title": "2017-01-03"}title本来只想让它是string类型,但是由于第一条数据插入时es会自动创建映射,将“2017-01-03”映射成date类型:{ "my_index": { "mappings": { "my_type": { "properties": { "title": {

2020-12-09 15:45:58 307

原创 【ElasticSearch】deep paging及解决方案

es分页查询:搜索语法:GET /_search?size=10GET /_search?from=0&size=10什么是deep paging问题?为什么会产生这个问题,它的底层原理是什么?deep paging:简单来说,就是搜索特别深,比如总共有60000条数据,每个shard分了20000条数据,每页10条,要搜索到第1000页,所以每个shard都要将第10001~10010条返回给coordinate node,然后coordinate node收到总共30003条数据,

2020-12-08 15:25:59 326

原创 【ElasticSearch】filter与query对比

对比filter与query的使用:先插入两条数据:PUT /company/employee/2{ "address": { "country": "china", "province": "jiangsu", "city": "nanjing" }, "name": "tom", "age": 30, "join_date": "2016-01-01"}PUT /company/employee/3{ "address": { "co

2020-12-07 18:40:52 188

原创 【ElasticSearch】相关度算法

搜索结果分析:{ "took":1, "timed_out":false, "_shards":{ "total":17, "successful":17, "skipped":0, "failed":0 }, "hits":{ "total":13781, "max_score":1, "hits":[ {

2020-12-07 18:34:44 428

原创 【ElasticSearch】_all metadata引出对mapping思考

一、_all metadata原理:GET /index/type/_search?q=test直接可以搜索所有的field,任一个field包含指定的关键字就可以搜索出来。搜索过程是怎样的?es中的_all元数据,在建立索引的时候,我们插入一条document,它里面包含了多个field,此时es会自动将多个field的值,全部用字符串的方式串联起来,变成一个长字符串,作为_all field的值,同时建立索引。后面如果搜索的时候,没有对某个field指定搜索,就默认搜索_all field,其

2020-12-07 16:56:20 294

空空如也

空空如也

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

TA关注的人

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