- 博客(117)
- 资源 (1)
- 收藏
- 关注
原创 MyBatis 如果不存在则插入
依靠数据库锁是非常安全的方式,比方说,分布式定时任务,除了使用quartz不让各个机器上同时跑一个定时任务之外,最好在数据库也加一个保险。插入一条数据之前,判断表中有没有这条数据,如果没有才插入,这样就只会有一条数据插入成功。<insert id="insertUniqueInnoIndex" parameterType="com.sf.sfpp.innovation.common.model.In
2017-05-20 14:27:00
12846
转载 kafka概述
出处: http://www.cnblogs.com/tangr206/articles/2274845.html1 基本概念kafka的工作方式和其他MQ基本相同,只是在一些名词命名上有些不同。为了更好的讨论,这里对这些名词做简单解释。通过这些解释应该可以大致了解kafka MQ的工作方式。Producer (P):就是往kafka发消息的客户端Consumer (C):从kafka取消息的客户
2017-05-12 16:36:55
604
转载 KAFKA:如何做到1秒发布百万级条消息
出处: http://rdcqii.hundsun.com/portal/article/709.htmlKAFKA是分布式发布-订阅消息系统,是一个分布式的,可划分的,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。现在被广泛地应用于构建实时数据管道和流应用的场景中,具有横向扩展,容错,快等优点,并已经运行在众多大中型公司的生产环境中,成功应用于大数据领域,本文分享一下我所了解的KAF
2017-05-12 00:04:13
17398
转载 Java反序列化漏洞通用利用分析
原文出处: https://blog.chaitin.cn/2015-11-11_java_unserialize_rce/#h4.1_利用过程概述1 背景2015年11月6日,FoxGlove Security安全团队的@breenmachine 发布的一篇博客[3]中介绍了如何利用Java反序列化漏洞,来攻击最新版的WebLogic、WebSphere、JBoss、Jenkins、OpenNM
2017-05-07 14:21:06
5153
转载 Go语言错误与异常处理机制
出处: http://www.cnblogs.com/Mike-zh/p/3789664.html1 Error接口Go语言中的error类型实际上是抽象了Error()方法的error接口type error interface { Error() string}Go语言使用该接口进行标准的错误处理。 对于大多数函数,如果要返回错误,大致上都可以定义为如下模式,将error作为多种返
2017-05-04 10:31:56
2291
原创 url encode 和 decode
URL,中文名是统一资源定位符,是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。URL不是单单为了HTTP协议而定义的,而是网络上的所有的协议都可以使用。基本URL包含模式(或称协议)、服务器名称(或IP地址)、路径和文件名,如“协议://授权/路径?查询”。完整的、带有授权部分的普通统一资源标
2017-04-30 20:57:09
3066
原创 JSON.parseObject 和 JSON.toJSONString 实例
JSON.parseObject,是将Json字符串转化为相应的对象;JSON.toJSONString则是将对象转化为Json字符串。在前后台的传输过程中,Json字符串是相当常用的,这里就不多介绍其功能了,直接举一下应用的小例子,帮助理解这两个方法的用法。首先用maven引入fastjson<?xml version="1.0" encoding="UTF-8"?><project xmlns
2017-04-30 14:38:42
149681
5
原创 遍历数据库,取出所有微信图片并打印
这个是之前做的一个小demo,因为条件所致,没法使用mybatis。于是当时自己手动写了一段简单的 jdbd连接数据库,从couple表中,将叫做”cp_img”的一列遍历(这一列的数据都是存储在服务器上的图片),并打印在本地的文件夹中。话不多说,直接上代码。import com.alibaba.fastjson.JSON;import com.sf.lottery.common.utils.St
2017-04-29 20:16:49
1206
转载 线程池调整
出处: http://www.importnew.com/17633.html知道吗,你的Java web应用其实是使用线程池来处理请求的。这一实现细节被许多人忽略,但是你迟早都需要理解线程池如何使用,以及如何正确地根据应用调整线程池配置。这篇文章的目的是为了解释线程模型——什么是线程池、以及怎样正确地配置线程池。单线程模型让我们从一些基础的线程模型开始,然后再随着线程模型的演变进行更深一步的学习
2017-04-28 20:01:26
804
转载 ReentrantLock实现原理
出处: http://www.cnblogs.com/maypattis/p/6403682.html1 synchronized和lock1.1 synchronized的局限性synchronized是java内置的关键字,它提供了一种独占的加锁方式。synchronized的获取和释放锁由JVM实现,用户不需要显示的释放锁,非常方便。然而synchronized也有一定的局限性,例如: 1
2017-04-26 14:44:41
850
转载 Java8新特性
原文: http://listenzhangbin.com/post/2017/01/java8-learning-notes/ https://github.com/CarpenterLee/JavaLambdaInternalsJava8是2014年发布的,至今也已经有快三年的时间了,之前虽然有学习过,但是学的比较零散,不成系统,而且也没有覆盖到Java8所有的特性。 由于公司已经使用了JD
2017-04-25 18:58:28
520
1
转载 Java单例详解
原文出处: http://www.barryzhang.com/archives/5211 前言单例(Singleton)应该是开发者们最熟悉的设计模式了,并且好像也是最容易实现的——基本上每个开发者都能够随手写出——但是,真的是这样吗?作为一个Java开发者,也许你觉得自己对单例模式的了解已经足够多了。我并不想危言耸听说一定还有你不知道的——毕竟我自己的了解也的确有限,但究竟你自己了解的程度到底
2017-04-25 15:13:59
392
转载 记录自己理解的一些设计模式
出处: http://fangjian0423.github.io/2017/03/26/design-pattern/记录一下自己理解的一些设计模式,并尽量使用表达清楚的例子进行讲解。(时间不够的话,最后四个可以不看)策略模式策略模式应该是最基础的一个设计模式,它是对行为的一个抽象。jdk中的Comparator比较器就是一个使用策略设计模式的策略。比如有一个Student学生类,有name和a
2017-04-25 14:31:54
623
转载 什么时候使用CountDownLatch
出处: http://www.importnew.com/15731.html正如每个Java文档所描述的那样,CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行。在Java并发中,countdownlatch的概念是一个常见的面试题,所以一定要确保你很好的理解了它。在这篇文章中,我将会涉及到在Java并发编 程中跟CountDownLat
2017-04-24 18:17:11
475
转载 Java多线程之CyclicBarrier、Future和FutureTask
原文出处: http://www.cnblogs.com/xrq730/p/4872722.html1 CyclicBarrier接着讲多线程下的其他组件,第一个要讲的就是CyclicBarrier。CyclicBarrier从字面理解是指循环屏障,它可以协同多个线程,让多个线程在这个屏障前等待,直到所有线程都达到了这个屏障时,再一起继续执行后面的动作。看一下CyclicBarrier的使用实例:
2017-04-24 17:39:05
1251
转载 记一次synchronized锁字符串引发的坑兼再谈Java字符串
出处: http://www.cnblogs.com/xrq730/p/6662232.html1 问题描述业务有一个需求,我把问题描述一下:通过代理IP访问国外某网站N,每个IP对应一个固定的网站N的COOKIE,COOKIE有失效时间。 并发下,取IP是有一定策略的,取到IP之后拿IP对应的COOKIE,发现COOKIE超过失效时间,则调用脚本访问网站N获取一次数据。 为了防止多线程取到同
2017-04-24 12:58:13
699
转载 如何设计一个秒杀系统
原文: http://sobuhu.com/program/2013/04/07/how-to-design-seckill.html 后续补充:这篇文章已经很久了,当初的设想是单机编程,每台服务器获得自己能够卖出多少产品,用户被随机分配到每台机器上进行处理。1 题目1, 这是一个秒杀系统,即大量用户抢有限的商品,先到先得 2, 用户并发访问流量非常大, 需要分布式的机器集群处理请求 3,
2017-04-24 12:32:44
530
转载 mysql中int、bigint、smallint 和 tinyint的区别详细介绍
原文: http://www.cnblogs.com/yiwd/p/5531167.html1 bytes = 8 bit ,一个字节最多可以代表的数据长度是2的8次方 11111111 在计算机中也就是-128到1271.BIT[M]位字段类型,M表示每个值的位数,范围从1到64,如果M被忽略,默认为12.TINYINT[(M)] [UNSIGNED] [ZEROFILL] M默认为4很小的整
2017-04-21 15:00:08
1157
转载 jedisLock—redis分布式锁实现
原文出处: http://www.cnblogs.com/0201zcr/p/5942748.html1 使用分布式锁要满足的几个条件系统是一个分布式系统(关键是分布式,单机的可以使用ReentrantLock或者synchronized代码块来实现)共享资源(各个系统访问同一个资源,资源的载体可能是传统关系型数据库或者NoSQL)同步访问(即有很多个进程同事访问同一个共享资源。没有同步访问
2017-04-10 15:27:22
1110
转载 Java 反射机制实践
原文: www.ziwenxie.site/2017/03/22/java-reflection/1 反射基础本文需要读者对反射机制的API有一定程度的了解,如果之前没有接触过的话,建议先看一下官方文档的Quick Start (https://docs.oracle.com/javase/tutorial/reflect/)。在应用反射机制之前,首先我们先来看一下如何获取一个对象对应的反射类Cl
2017-04-04 18:33:00
600
转载 Java泛型详解
原文链接: http://www.ziwenxie.site/2017/03/01/java-generic/泛型是Java中一个非常重要的知识点,在Java集合类框架中泛型被广泛应用。本文我们将从零开始来看一下Java泛型的设计,将会涉及到通配符处理,以及让人苦恼的类型擦除。1 泛型基础1.1 泛型类我们首先定义一个简单的Box类:public class Box { private S
2017-04-04 16:40:48
422
转载 LinkedBlockingQueue 实现原理分析
原文: http://fangjian0423.github.io/2016/05/10/java-arrayblockingqueue-linkedblockingqueue-analysis/Java中的阻塞队列接口BlockingQueue继承自Queue接口。BlockingQueue接口提供了3个添加元素方法:add:添加元素到队列里,添加成功返回true,由于容量满了添加失败会抛出I
2017-04-04 11:45:05
2142
原创 Caused by: java.net.BindException: Address already in use: bind
项目中有若干微服务,挨个启动的时候,报错com.alibaba.dubbo.rpc.RpcException: Fail to start server(url: dubbo://10.118.44.10:20860/com.sf.sfpp.download.service.DownloadService?anyhost=true&application=sfpp&channel.readonly.
2017-04-03 14:52:00
8415
转载 Hessian和Java反序列化问题小结
原文出处: http://hittyt.iteye.com/blog/16917721 Hessian反序列化问题众所周知,Hessian框架提供的序列化方式,在性能上要优于Java自己的序列化方式。他将对象序列化,生成的字节数组的数量要相对于Java自带的序列化方式要更简洁。目前公司的一个项目中,有RPC调用的需要,这里我们使用了公司自己的开源RPC框架Dubbo作为远程调用框架,进行业务方法的
2017-04-01 15:01:58
2660
转载 java 动态代理
原文链接: http://www.cnblogs.com/absfree/p/5392639.html1 概述1.1 什么是代理我们大家都知道微商代理,简单地说就是代替厂家卖商品,厂家“委托”代理为其销售商品。关于微商代理,首先我们从他们那里买东西时通常不知道背后的厂家究竟是谁,也就是说,“委托者”对我们来说是不可见的;其次,微商代理主要以朋友圈的人为目标客户,这就相当于为厂家做了一次对客户群体的
2017-03-25 23:23:35
465
原创 linux 测试工具教程合集
有关于这个问题,网上有很多教程了,所以我只是把查过的几个记录下来。1 jdk和jmeter的安装https://wenku.baidu.com/view/22a58a8658fb770bf68a5588.html2 linux下jmeter的使用http://blog.csdn.net/ceo158/article/details/9331813 这一篇的安装就不要看了,安装的修改少了一行3 jm
2017-03-12 18:18:56
643
原创 使用 openresty/nginx 搭建mp4视频服务器
首先,环境中必然要有gcc-c++环境yum -y install gcc-c++1 使用openrestry这里使用的是1.11.2.1版本的openrestry和1.0.2版本的openssl,tar.gz包,网上一搜有很多。假设将这两个文件都放在/home/wujiang/mp4/下面tar -zxvf openresty-1.11.2.1.tar.gztar -zxvf openssl-1
2017-03-09 19:06:49
3741
原创 linux nginx命令小结
之前部署nginx,暂时想起来这么多常用的记下来,后面想起别的会补充。1 配置下载tar.gz包,解压,配置configure,然后make && make install,这里假设配好的nginx在 /usr/local/nginx目录下2 查看正在运行的nginx进程ps -ef | grep nginx会看到下面的结果root 108516 1 0 15:12 ?
2017-03-08 15:47:05
617
翻译 TiDB 官方设计文档翻译(三)
这个系列共三篇译文: TiDB 官方设计文档翻译(一) TiDB 官方设计文档翻译(二) TiDB 官方设计文档翻译(三) 原文: https://pingcap.github.io/blog/2016/10/17/how-we-build-tidb/5.3 TiDB核心技术让我们继续讨论TiDB。TiDB有一个与MySQL兼容的协议层,有以下功能:将表数据映射到键值存储,
2017-03-05 21:54:53
4271
翻译 TiDB 官方设计文档翻译(二)
本文承接的是上一篇,TiDB 官方设计文档翻译(一) 原文出自 https://pingcap.github.io/blog/2016/10/17/how-we-build-tidb/#105 如何开发在本节中,将介绍TiKV和TiDB的架构和核心技术。5.1 架构关于TiKV架构,让我们从下往上看。最底层,RocksDB。上一层,Raft KV,是一个分布式层。MVCC,Multiver
2017-03-05 19:04:03
5958
翻译 TiDB 官方设计文档翻译(一)
TiDB是新兴的NEWSQL数据库,由国内的PINGCAP团队研发。 有关于TiDB的架构、部署和运维,官方有中文的文档,链接是: https://github.com/pingcap/docs-cn官方还有另外一份文档,讲的是TiDB和TiKV的设计思想和技术细节,个人很喜欢,但是用英文写的。这里提供该文档的翻译。 官方英文设计思想的文档链接: https://pingcap.github
2017-03-05 14:56:56
16413
转载 AOP的底层实现-CGLIB动态代理和JDK动态代理
转载来源: http://blog.csdn.net/dreamrealised/article/details/12885739AOP是目前Spring框架中的核心之一,在应用中具有非常重要的作用,也是Spring其他组件的基础。它是一种面向切面编程的思想。关于AOP的基础知识,相信多数童鞋都已经了如指掌,我们就略过这部分,来讲解下AOP的核心功能的底层实现机制:如何用动态代理来实现切面拦截。A
2017-01-17 17:26:18
604
原创 JSON后端向前端传递数据 JAVA
1 后端两个辅助类ConcurrentDateUtil.java,用于生成我们需要格式的时间import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class ConcurrentDateUtil {
2017-01-13 19:03:13
14335
转载 Cookie/Session机制详解(2)Session
这篇讲的非常详细,原文出自: http://blog.csdn.net/fangaoxin/article/details/6952954/会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。本章将系统地讲述Cookie与Ses
2017-01-13 13:50:03
444
转载 Cookie/Session机制详解(1)Cookie
这篇讲的非常详细,原文出自: http://blog.csdn.net/fangaoxin/article/details/6952954/ Cookie/Session机制详解(1)Cookie Cookie/Session机制详解(2)Session会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过
2017-01-13 13:48:54
691
原创 WebSocket详解(二)应用实例
上一节中我们介绍了HTTP协议的缺点以及WebSocket做了哪些改进,知道了相关的基本概念。这一节通过一个简单的例子来展示如何使用WebSocket。这个例子的场景是这样的: 年会上,展示给观众的是一个页面,后台人员控制的是另一个页面。在后台控制页面上点击停止摇一摇,然后展示给观众的页面弹出最后的获奖者。页面控制的例子还是很常见的,也不一定用WebSocket,这里只是用WebSocket举个例
2017-01-12 19:50:16
7256
原创 WebSocket详解(一)基础概念
初次接触websocket是做公司的年会弹幕系统,当时就是短时间突击怎么使用,并没有深入理解原理。现在公司年会结束,抽时间整理一下,写这两篇博客出来。WebSocket详解(一)基础概念 WebSocket详解(二)应用实例1 网络协议的基本知识首先我们来回顾一下OSI网络分层模型: 分层 功能 CP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,H
2017-01-11 14:57:41
6566
1
转载 两种计算Java对象大小的方法
之前想研究一下unsafe类,碰巧在网上看到了这篇文章,觉得写得很好,就转载过来。原文出处是: http://blog.csdn.net/iter_zc/article/details/418227191 基础知识普通对象的结构如下,按64位机器的长度计算 1. 对象头(_mark), 8个字节 2. Oop指针,如果是32G内存以下的,默认开启对象指针压缩,4个字节 3. 数据区 4.
2017-01-10 20:41:24
19083
1
原创 mybatis自动生成代码 IDEA
mybatis是一个基于java的持久层框架,有了它,我们可以方便的进行数据库的增删改查(好吧,我承认我对于增删改查已经吐了)。。。mybatis可以根据数据库的表,自动生成xml,mapper以及model类,节省了程序员的大量时间。网上eclipse和mybatis的教程比较常见,IDEA则比较少。本文就来介绍一下IDEA中mybatis如何自动生成上述代码。上图中,红色括号的部分,都是myba
2017-01-10 15:47:22
8873
1
原创 JAVA 单元测试总结
单元测试的重要性这里就不说了,直接进入正题。很多程序员不喜欢写单元测试,导致项目经常会花很多时间去debug,这完全得不偿失。对关键方法进行单元测试,可以在早期业务逻辑还没那么复杂的时候,尽快排除症结。在dao,manager,server,web这样的分层项目中,通常单元测试是要写在server层的,因为server层可以测的最多。本文中不介绍单元测试的原理,只是介绍单元测试最常用的断言和Jmoc
2017-01-10 12:42:29
20749
maven-3.5.0
2017-09-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅