自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

userwyh的专栏

When you can't hold it anymore, better to let it go.

  • 博客(21)
  • 资源 (3)
  • 收藏
  • 关注

原创 ngrok内网穿透服务搭建

什么是ngrokngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放。内网穿透内网穿透,即NAT穿透,网络连接时术语,计算机是局域网内时,外网与内网的计算机节点需要连接通信,有时就会出现不支持内网穿透。穿透后,你个人电脑指定的端口就会暴露在外网,可以通过域名来访问到你提供的服务。典型用例...

2019-03-02 23:17:37 922 1

原创 ELK日志采集和查询方法

我是个目录回顾logstash日志采集codec插件grok插件完整的配置文件kibana操作总结回顾前两篇文章简单的介绍了JAVA通过代码如何使用MDC进行日志打印,去查看log4j MDC用户操作日志追踪配置,以及ELK平台的搭建,去查看log4j MDC用户操作日志追踪配置。接下来将结合实际案例,简单介绍生产服务器的日志如何被logstash进行采集,并统一汇总,使得我们能够快速、方便、...

2019-01-27 18:22:57 18775 3

原创 adb 修改手机代理方式

一、使用全局命令设置代理:adb shell settings put global http_proxy 代理IP地址:端口号如:adb shell settings put global http_proxy 127.0.0.1:8888移除代理:adb shell settings delete global http_proxyadb shell setting...

2018-09-05 20:59:07 29735 1

原创 基于mybatis类型转换器实现数据加解密

背景需求对表中的某些字段进行加密,查询之后对字段进行解密,业务代码无需关注加解密环节。mybatis 拦截器 vs 类型转换器mybatis的拦截器能实现上面的需求,但是会拦截所有的sql语句,如果项目中只是部分sql涉及到加解密操作,还是比较牺牲大局的。实现起来也比较麻烦,特别是单参数查询的时候,比如参数名称name,此时需要对name进行加密就相对困难。如果是多参数,因为底层...

2018-04-24 19:30:43 2787 3

转载 设计模式之六大原则(转载)

原作者博客链接:http://www.cnblogs.com/dolphin0520/p/3919839.html一.单一职责原则  原文链接:http://blog.csdn.net/lovelion/article/details/7536542  单一职责原则是最简单的面向对象设计原则,它用于控制类的粒度大小。单一职责原则定义如下:单一职责原则(S

2017-04-01 16:45:05 435

原创 SpringMVC修改返回值类型后的消息转换器处理

SpringMVC修改返回值类型后的消息转换器处理这标题看起来有点奇怪,所以先以一个小小的案例来说明一下本文要描述和解决的问题问题案例假设有一个Controller方法如下 @RequestMapping(value = "test") @ResponseBody public Object test() { Map<String,String> param =

2017-03-05 23:09:16 14445 2

原创 从jar中拷贝资源文件

why?在代码中读取各种各样的资源文件对程序猿们来说是屡见不鲜的事情,对于集成环境下(eclipse、idea)这些代码也总是能运行得好好的,一点都不会让程序猿操心,因此很多人会就此打住。直到这些代码被打成jar包A,然后模块B依赖A时可能就会出现找不到资源文件等各种各样的问题。比如说,我们使用System.load来装载库文件的话,即便我们能得到存放资源文件的路径/D:/project/demo.

2016-12-10 15:18:26 6341 2

原创 ELK 日志分析平台搭建

一、ELK介绍本节内容来自 开源实时日志分析ELK平台部署,感谢原作者详细的介绍。日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这

2016-10-22 20:42:27 4320 2

原创 log4j MDC用户操作日志追踪配置

一、MDC介绍 MDC(Mapped Diagnostic Context,映射调试上下文)是 log4j 和 logback 提供的一种方便在多线程条件下记录日志的功能。某些应用程序采用多线程的方式来处理多个用户的请求。在一个用户的使用过程中,可能有多个不同的线程来进行处理。典型的例子是 Web 应用服务器。当用户访问某个页面时,应用服务器可能会创建一个新的线程来处理该请求,也...

2016-10-19 19:24:04 49507 8

原创 Spring多数据源配置

有时候因为项目的需要,可能一个项目需要连接多个数据库,比如后台管理系统,每个用户的权限管理什么的可能就是自己独有的一个数据源,然后业务操作又是另外一个数据源。如果仅仅是管理一个项目的业务,那可能偷懒点,干脆把表挪到一起,凑合着用,但是可能一个管理后台还管理着多个项目的业务配置,每个项目又是独立的数据库,因此为这样一个后台管理系统配置一套多数据源切换还是很有必要的。虽然有时候没有明确要求说要分开

2016-09-11 02:32:00 4575 3

原创 获取Spring MVC注解@ResponseBody的一种实现

一般来说,提供给终端调用的API接口在Controller都会直接使用@ResponseBody来进行注解。此时如果我们想要在其他地方来获取方法的返回值,并做一些操作,此处以保存日志为例。每一个接口返回的都是Result类型,大概如下: @RequestMapping(value="a") @ResponseBody public Result a(){

2016-09-11 01:08:16 9416 2

原创 利用ScriptEngineManager执行js的RSA加密

有时候出于各种原因我们需要模拟登陆一个网站,有的网站可能会把密码在前端用js加密后再传输到服务器。此时我们就需要找到对应的js方法,把它针对性的处理,再使用JAVA提供的ScriptEngineManager去执行提取处理后的js方法,得到我们想要的加密后的密码。以服务器提供exponent和modulus为例,js根据这两个参数对密码进行RSA加密,然后传输给服务器进行解密。首先修改secu

2016-08-28 15:14:40 4108 2

原创 修改mybatis-generate源码实现实体类加上字段注释

使用mybatis代码自动生成插件可以节约开发者很多时间,但是由它生成的实体类并没有把表字段注释给加上,这样后期要想知道某个属性是做什么的,不得不去数据库查看,相对来说幸福感就没有那么强了,基于此,只能自己试着去修改源码,实现自己想要的文件样子,功夫不负有心人,在简单了解下源码后终于把实体类加上注释了,本文介绍如何去修改mybatis代码生成源码,实现实体类加上字段注释。        首先需

2015-11-10 20:19:01 11465 4

原创 使用jenkins进行项目构建

当服务器的数量比较多的时候,部署项目的时候如果仍然采取最原始的方法(如使用WinSCP等工具手动拖代码),不仅效率低下,而且对于改动比较多的项目,遗落掉文件也是时常发生的事情。这种工作真的让程序员觉得一点成就感都没有。于是,我们找到了Jenkins工具,Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:1、持续的软件版本发布/测试项目。2、监控外部调用执行的工作

2015-10-18 20:18:29 9985 2

原创 微信支付(JS API) JAVA

基于微信支付文档V3.3.7进行编码,使用JS API(网页内)并测试通过,应用在项目中。Form:public class PayForm extends BaseForm{ private String code; //通过code换取微信的openid,谁支付的 private Integer transactionID; //交易ID private String

2015-07-06 14:36:09 7887 3

原创 Struts2 访问首页时经过Action加载数据

网站默认的欢迎页是不经过后台action方法,此时便无法通过s标签加载一些后台数据,又不想在欢迎页进行页面的跳转打开"真正的首页",即www.test.com打开就是我们想要的页面数据,而不是经过跳转后在地址栏上显示www.test.com/inde.html,然后才是我们想要的页面数据。首先我们需要配置web.xml,把默认的欢迎页修改成以下代码 i

2015-07-06 10:58:20 2990

原创 Struts标签实现分页(当前页码在中间显示)

现有需求需要实现如下格式布局的分页:上一页 X X X X X 下一页分析:1、当前页不是第一页显示上一页按钮2、当前页不是最后一页显示下一页按钮3、中间的数字显示相对麻烦些      针对开始数字      page.index > 3 ? page.index+2 > page.totalPage ? page.totalPage-4 : page.index-2

2015-07-02 14:48:30 1095

原创 centos6.5 负载均衡(nginx) session共享(redis)

一、安装JDK71.查询已经安装的jdkrpm -qa|grep jdk2.卸载已经安装的jdkrpm -e --nodeps  *****(查询出来的东西...)3.将安装文件jdk-7u79-linux-x64.rpm上传到/usr/javacd /usr/java4.安装rpm -ivh jdk-7u79-linux-x64.rpm 5.编辑profile

2015-06-26 21:35:00 1333

原创 tomcat内存溢出:PermGen space解决方法

最近集群服务器中的几台服务器在半夜自动重启tomcat后一段时间便都会报java.lang.OutOfMemoryError: PermGen space。习惯性的百度,得到的答案基本上都是统一的解决办法:手动设置MaxPermSize大小修改TOMCAT_HOME/bin/catalina.sh 在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上

2015-03-23 14:38:59 25652 4

原创 lucene更新索引失败

最近在使用lucene更新索引时出现了lucene并不是删除原来的记录再重新创建,而是又直接新建了一条记录,导致搜索出来的结果完全不正确。由于之前使用过lucene的索引更新并没有此问题,最近因为需要根据ID排序,因此创建document时将myCardID改成NumericField类型,难道是这个问题引起的?新增一个Field保存ID的值,并修改更新索引Term的域,重新跑过lucene后,问

2015-03-09 10:15:21 2440

原创 微信红包高级接口JAVA实现

应用场景:       网站某一类型注册类型会员通过微信公众账号进入其账号中心时,可以获取一次领取红包资格,红包资格在某一个特定范围内。微信红包调用流程:       后台API调用:待进入联调过程时与开发进行详细沟通;      告知服务器:告知服务器接收微信红包的用户openID,告知服务器该用户获得的金额;      从商务号扣款:服务器获取信息后从对应的商务号扣取对应的

2015-03-07 15:50:21 17215 29

可在Java ScriptEngineManager执行的security.js

使用详情见 博客 利用ScriptEngineManager执行js的RSA加密 http://blog.csdn.net/userwyh/article/details/52345718

2017-04-05

微信企业红包 JAVA 实现

微信高级接口 企业红包的 JAVA 实现 springMVC+Spring+Mybatis

2016-01-05

微信红包高级接口JAVA实现

微信公众号给用户发送企业红包的JAVA实现

2015-12-31

空空如也

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

TA关注的人

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