自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

虎皮青椒没虎皮

记录自己IT技术学习的一些收获,不忘初心,砥砺前行

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

原创 图像识别、图像模糊检测

最近有个项目,需要对图片进行模糊检测, 人脸识别等比较复杂的图像处理。经过一番尝试,决定好好研究一下OpenCV的原理和使用。OpenCV官网现在,项目中有个需求——需要对用户操作编辑以后的图片进行质量评估,做模糊检测。我采用了Tenengrad梯度和Laplacian梯度算法。1. 算法- Tenengrad 梯度函数Tenengrad 梯度函数采用Sobel算子分别提取水平和垂直...

2019-01-22 03:22:08 7505 2

原创 2019生活十三图鉴——回顾2019感动我们的那十三个瞬间

2019年已经过去了,回顾2019感动我们的那十三个瞬间。。。图一四川成都,18岁的赵开园7岁因意外截肢,但仍为梦想奋斗,在街边唱《成都》。路过的外卖小哥路过听哭,哽咽地说:“本来我们收入也不高,但是我们要健康的多,还是在生活着,真不容易。”“ 是啊,生活从未偏爱过你。可我能听懂你的歌,就是你生存下去的意义。”图二人来人往的夜晚街头,男人推着三轮车回家,自家的狗...

2020-01-05 13:16:52 973

原创 swagger最新2.9.2使用,以及重写相关插件修复ApiModel作为query请求参数无法根据postion排序的bug

先看一下集成后的完整效果:依赖<properties> <springfox-swagger.version>2.9.2</springfox-swagger.version> </properties> <dependency> <groupId>io.springfox</gro...

2019-02-17 15:55:35 7657 2

原创 Java8新特性总结

Java8新特性归纳如下:Lambda 表达式函数式接口方法引用与构造器引用Stream API接口中的默认方法与静态方法新时间日期 API并行与串行其他新特性1. Lambda表达式Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更 灵活的代码。作为一种更紧凑的代码风格,使 Java...

2019-01-25 21:19:28 315

原创 wechat-java 微信开发Java SDK,支持包括公众号、小程序、微信支付、开放平台的后端开发

对微信公众号相关Api进行封装,方便以后复用整个项目的结果采用Maven聚合工作,方便公有部分的复用,方便以后小程序、微信支付、开放平台的Api的封装。使用, 比如获取accessToken, @Test public void testAccessToken() { WechatPSInMemoryConfigImpl config = new WechatPSI...

2019-01-12 22:17:14 1883

原创 文本贴图处理控件: 可拖动,旋转,缩放,删除,选择颜色,支持多行文本编辑

预览使用TextStickerView mTextStickerView = new TextStickerView(this, null);mTextList.add(mTextStickerView);RelativeLayout.LayoutParams layoutparams = new RelativeLayout.LayoutParams(RelativeLayout.La...

2018-12-15 21:05:23 590

原创 Tinker热修复原理以及组件化封装

需要创建以下类TinkerManager(对Tinker进行组件化再次封装,减少对系统的侵入)CustomApplicationLike(委托(代理)模式:Tinker需要对Application的生命周期进行监听,通过ApplicationLike进行委托)CustomPatchListener(自定义PatchListener监听patch receiver事件)CustomResu...

2018-12-02 13:35:34 1085

原创 基于OkHttp3,Retrofit2和RxJava2高度封装的网络请求库

RxJava2_Retrofit2_GoodHttpUtils项目地址该网络库基于OkHttp3,Retrofit2和RxJava2进行了高度封装,使网络请求变得异常方便,支持单文件,多文件上传及进度监听,支持文件下载及进度监听目前对以下需求进行了封装一般的请求(类似表单)传复杂的Json对象单个文件上传监听进度单个文件上传监听进度+其他表单参数多文件上传监听进度+其他表单参数...

2018-11-26 19:41:35 1249 1

原创 Spring Cloud Config远程配置中心

在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring cloud config 配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion。支持远程更改,服务在不重启的情况下,使配置生效。spring cloud config分s...

2018-10-22 01:18:54 2587

原创 构建者builder模式

  遇到多个构造器参数时,我们可以考虑使用构建器Builder模式,相比于重叠构造器模式(定义多个重载的构造函数),JavaBeans模式(通过set方法挨个构造),Builder构建者模式实现的方式更加优雅,对象更利于使用,在保证安全性的同时又兼顾了可读性。 一些著名的框架,比如okhttp, retrofit,安卓中各种原生的组件,比如dialog等随处可见Builder构建者模式。接...

2018-10-18 01:23:58 241

原创 Spring Cloud服务注册发现——Eureka及其高可用

EurekaEureka是大名鼎鼎的Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。Eureka包含两个组件:Eureka Server和Eureka Client。...

2018-10-14 22:04:23 750

原创 戏说微服务,大话Spring Cloud

微服务必然是分布式的。分布式的特点:  多节点     不共享主内存 节点之间通过网络发送消息合作 (比如通过http rest接口,通过RPC)      注意:微服务可以是异构的,即服务可以是不同的语言,不同的数据库,服务直接通过http或者RPC进行通信。下面是一个简单的微服务架构:服务注册与发现组件       服务提供方,要将自己的地址等信...

2018-10-14 13:42:53 207

原创 Linux云服务器企业级知识库线上部署与自动化发布实践

知识库介绍:企业级知识库管理系统。网站前台:http://www.wjxxr.com/全文检索(基于Lucene的全文索引):管理员后台:http://admin.wjxxr.com/ 知识详情页(使用FreeMark静态化技术,用户直接访问静态化页面,由于Tomcat不适合作为静态资源的web容器,采用Nginx作为静态资源的容器,而Nginx能处理并发的请求为4...

2018-09-22 04:19:39 477

原创 Nginx的高可用

什么是负载均衡高可用Nginx作为负载均衡器,所有请求都到了Nginx,可见Nginx处于非常重点的位置,如果Nginx服务器宕机后端web服务将无法提供服务,影响严重。为了屏蔽负载均衡服务器的宕机,需要建立一个备份机。主服务器和备份机上都运行高可用(High Availability)监控程序,通过传送诸如“I am alive”这样的信息来监控对方的运行状况。当备份机不能在一定的时间内收到...

2018-08-23 11:38:44 355

原创 Redis缓存提升使用率小Tip

缓存中可以缓存热点数据,提高缓存的使用率(特别是对于我们这种搭不起Redis集群的屌丝,毕竟内存很贵呀)。我们可以对要缓存的数据设置缓存的有效期expire。一般是一天的时间,可以根据实际情况调整。思路:如果一条数据,在缓存有效时间内没有人访问,则从缓存中及时清除。如果该条数据在缓存有效时间内,多次被人访问,则重新设置缓存时间,即:重新倒计时。比如电商项目中获取商品详情:/* *...

2018-08-21 18:47:15 613

原创 用全文检索构建站内搜索和大数据搜索引擎

全文检索首先对要搜索的文档进行分词,然后形成索引,通过查询索引来查询文档。全文检索是目前搜索引擎,大数据搜索的关键技术。全文检索系统可实现亚秒级的检索速度以及每秒上百次的并发检索支持。需求:实现淘宝京东等电商网站中商品信息搜索功能,可以根据关键词(分词)、分类、商品简介,详情等搜索商品信息,可以根据相关度,价格,销量等做排序。比如,我们搜索“实惠的老人机”要求:分词检索:比...

2018-08-14 20:02:23 2075 2

原创 利用FastDFS和Nginx构建高可用的DFS分布式文件服务器

最近在重构以前做过的电商项目,知识库项目的服务器架构。电商项目由于服务端需要存储商家上传的海量的图片,知识库系统需要存储大量的用户上传的各种格式的文件,为了实现高可用应对高并发,所以需要单独抽离出一套文件服务器系统来处理,该文件服务器须满足以下几个特点:负载均衡、线性扩容、冗余备份。以JavaWeb项目为例。之前的方式:打成一个war包放在一台Tomcat容器下。将用户上传的文件直接存...

2018-08-09 12:02:40 2529 1

原创 Dubbo和Zookeeper常见错误解决

最近在使用阿里的分布式服务中间件Dubbo框架重构项目时遇到以下错误:1、Spring配置文件Dubbo标签报错原因:dubbo约束文件Key配置错误错误:http://code.alibabatech.com/schema/dubbo正确:http://code.alibabatech.com/schema/dubbo/dubbo.xsd2.客户端连接Linux上的Zoo...

2018-08-07 10:36:11 2508

原创 服务器系统架构的演变

以对并发量要求比较高的电商项目为例。1. 单服务架构——最多能应付400-500的并发量,打成一个war包,运行在一台服务器下。存在的问题:       1、功能耦合度高。        比如说:搜索模块其中某个小功能出现了BUG,这时候修复了该BUG,重新打成WAR需要重新部署到服务器,重新部署期间,就会影响其他正常运行的其他功能模块。       2、系统维护成本高...

2018-08-03 17:24:47 567

原创 MySql两种存储引擎的区别及应用场景

MySql主要有两种存储引擎:InnoDB和MyISAM。应用场景:1).MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。如果应用中需要执行大量的SELECT查询,那么MyISAM是更好的选择。2).InnoDB用于事务处理应用程序,具有众多特性,包括ACID事务支持。如果应用中需要执行大量的INSERT或UPDATE操作,则应该使用InnoDB,这样可以提高多用户并发操作的性能...

2018-06-27 18:32:08 1984

原创 Android调试神器Stetho——像web端一样调试页面并查看应用包下的文件

Stetho是Facebook开源的一个Android调试工具,通过Stetho,开发者可以使用chrome的inspect功能,对Android应用进行调试和查看。项目地址:点击打开链接stetho提供的功能主要有:View Hierarchy:布局层级查看,免去使用查看布局边界的花花绿绿带来的痛苦和卡顿,而且能看到每个view和layout的各类属性。Network Inspection:网络...

2018-06-21 18:53:43 2254

原创 bootstrap-treeview多级树形菜单,后台JSON格式如何组织?

树形列表菜单的数据组织形式一般有两种:一种是一次性向服务器请求所有节点的数据,一种是先请求根目录的节点,当用户点击该节点时,再去请求该节点的子叶节点的数据。这里我们的需求是第一种。树形菜单是我们经常会用到的一种菜单展现方式,这里我推荐bootstrap-treeview,它是一款效果非常酷的基于bootstrap的jQuery多级列表树插件。该jQuery插件基于Twitter Bootstrap...

2018-06-11 21:47:45 19585 2

原创 Spring批量导入XML Catalog

Spring的配置是件特别繁琐的事情,比如为了让在配置文件中能有自动提示,我们必须引入相应的xsd或dtd等Schema约定文件。一般来说,我们是这么做的:但这种做法非常的麻烦,如果有100个xsd我们就要导入100次,而且还要设置Key值。我们可以这样做,将需要导入的约定文件做成jar包,以插件的形式放到Eclipse的插件放置目录。编写一个plugin.xml文件:<?xml versi...

2018-05-24 23:13:54 497

原创 SpringMVC架构设计及源码分析

SpringMVC是典型的MVC三层架构,今天我们具体聊聊:当发起一个请求时,SpringMVC的MVC三层架构的具体执行过程,今天小虎皮带您深入到源码层一探庐山真面目。当用户发起一个请求时,被前端控制器DispatcherServlet捕捉到,DispatcherServlet会将该请求交给处理映射器HandlerMapping处理,HandlerMapping处理完会返回处理执行链,告诉前端控...

2018-05-20 12:42:08 266

原创 SpringMVC执行流程

Spring MVC是当前最优秀的MVC框架之一。试想一下,当我们发起一个请求时:http://localhost:8080/SpringMVC/index.action,SpringMVC是如何执行的?1.发起一个请求http://localhost:8080/SpringMVC/index.action2.请求被web.xml中的servlet-mapping拦截。<servlet-ma...

2018-05-20 11:13:04 110

原创 Retrofit2如何优雅地打印网络请求的报文日志

在移动端开发时,我们常常需要像web端一样可以方便地查看我们向服务器发送请求的报文详细日志(如请求地址,请求参数,请求类型,服务器响应的耗时时间,请求返回的结果等等)。使用Retrofit2时,如果我们需要打印上述的网络请求的日志,可以采用日志拦截器的方案得以实现。1.导入网络库和日志库我这里采用的是Rxjava +Retrofit compile 'com.squareup.retrofit2:...

2018-05-18 16:34:21 11296 1

原创 Android第三方推送分析

最近,公司的一个物联网项目Android端,由于要保证推送的到达率和稳定性,由于Google 的原生推送(C2DM,现在的 GCM)不能正常使用,故只能退而求其次采用了集成多方推送的方案。目前国内的主流的手机厂商主要有:华为,小米,OPPO, VIVO, 魅族等。华为,小米都有官方自己的推送服务,其他厂商尚未提供相关的推送通道。我们在华为手机上集成华为推送,小米手机上集成小米推送,其他厂商的手机采...

2018-05-17 13:53:57 1261

原创 Gradle修改本地仓库的位置

Gradle和Maven都是当前热门的自动化构建工具。使用Gradle去构建项目,由于没有办法像Maven一样配置Setting文件来修改本地库的位置,我们可以通过设置环境变量GRADLE_USER_HOME的路径来改变gradle的本地仓库的位置。因为Gradle如果不配置环境变量,则会在用户目录下(在Windows下是C盘的目录)创建.gradle目录,并将下载的依赖文件保存在这个目录里。如果...

2018-05-15 13:51:47 31358

原创 基于SSH框架开发企业级CRM客户管理系统

一.需求分析二.服务架构采用单服务架构,后期的博客会将该项目扩展到服务集群和分布式缓存系统架构,敬请期待。三.数据表设计部分E-R图:用户表:CREATE TABLE `sys_user` ( `user_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '用户id', `user_code` varchar(32) NOT NULL COMME...

2018-05-14 18:59:46 892 2

原创 NoSQL非关系型数据库比如Redis,MongoDB等在web2.0时代的大展拳脚

为什么需要NoSQL由于传统的关系型数据库在面对,特别是超大规模和高并发的SNS(社交网络服务)类型时,暴露了很多难以克服的问题,例如:1、High performance - 对数据库高并发读写的需求 web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。关系数据库应付上万次SQL查询还...

2018-04-27 16:39:44 490

原创 在Linux环境下,如何用命令行搭建JavaEE服务器开发环境(JDK1.8,Tomcat8.5, MySQL5.6)

在安装之前,需要个远程连接的工具,因为在实际开发中,Linux服务器都在其他的地方,我们要通过远程的方式去连接Linux并操作它,Linux远程的操作工具有很多,企业中常用的有Puttty、secureCRT、SSH Secure等。这里,我使用SSH Secure工具进行远程连接,该工具是免费的图形化界面及命令行窗口集一身的远程工具。安装包链接:https://pan.baidu.com/s/1...

2018-04-26 16:29:17 882

原创 MySQL-Workbench画数据库EER图

MySQL Workbench 是一款专为MySQL设计的ER/数据库建模工具,给我们提供强大的数据库建模功能。打开软件以后,不要连接数据库,点击左下角的Model+。选择Add Diagram,进入ER建模界面。点击工具栏的“添加Table”按钮,新建一张表格。双击表格,创建各个字段。还可以创建各种约束。还可以将ER Model输出成sql脚本。最后,提供MySQL Workbench软件官方下...

2018-04-17 16:12:13 5634

空空如也

空空如也

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

TA关注的人

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