- 博客(296)
- 资源 (4)
- 收藏
- 关注

原创 MyBatis 查询映射自定义枚举
背景 MyBatis查询若想映射枚举类型,则需要从 EnumTypeHandler 或者 EnumOrdinalTypeHandler 中选一个来使用 1. EnumOrdinalTypeHandler 是按照序列来存取的,对应数据库的设计为 使用0开始按升序。 2. EnumTypeHandler 是按照枚举的名字来存取的
2017-01-01 11:13:28
11887
4

原创 分布式集群Session共享 简单多tomcat8+redis的session共享实现
什么是Session 用户使用网站的服务,基本上需要浏览器与Web服务器的多次交互。HTTP协议本身是无状态的,需要基于HTTP协议支持会话状态的机制。这样的机制应该可以使Web服务器从多次单独的HTTP请求中看到“会话”,也就是知道那些请求是来自哪个会话的。 具体实现方式为:在会话开始时,分配一个唯一的会话表示(SessionId),通过Coo
2016-09-25 11:10:36
34144
7

原创 一致性Hash算法介绍(分布式环境算法)
应用场景 1. 数据库分表分库规则,数据库服务器扩容降低对之前原有数据库数据的影响,并达到负载的均衡。 2. 分布式缓存负载算法规则,缓存数据库扩容降低对之前原有缓存命中率的影响,对原有缓存服务器在负载都达到均衡。 ... ... 名称解释 一致性Hash:加入一个新节点,对已存在的节点的影
2016-09-10 09:50:28
6595
1
转载 【HTTP劫持和DNS劫持】腾讯的实际业务分析
简单介绍一下HTTP劫持和DNS劫持的概念,也就是运营商通过某些方式篡改了用户正常访问的网页,插入广告或者其他一些杂七杂八的东西。 首先对运营商的劫持行为做一些分析,他们的目的无非就是赚钱,而赚钱的方式有两种: 1、对正常网站加入额外的广告,这包括网页内浮层或弹出广告窗口; 2、针对一些广告联盟或带推广链接的网站,加入推广尾巴。例如普通访问百度首页,被前置跳转为...
2020-03-26 23:49:57
928
原创 iOS使用Charles抓包
介绍Fiddler这个软件由于是用C#开发的,所以很依赖win平台,所以我在实际开发中应用最多的还是Charles,由于开发语言是Java,所以具有很好的跨平台性。下载Charles 4.2.5 Mac上的抓包工具解压密码:xclient.info注册码:Registered Name: https://zhile.ioLicense Key: 48891cf209c6d32bf4...
2018-11-27 11:06:00
1278
转载 Spring Bean的生命周期
Spring Bean是Spring应用中最最重要的部分了。所以来看看Spring容器在初始化一个bean的时候会做那些事情,顺序是怎样的,在容器关闭的时候,又会做哪些事情。示例代码git地址:giraffe0813giraffeInSpringgiraffeInSpring , up-to-datespring版本:4.2.3.RELEASE鉴于Spring源码是用gradle构建的,我也决定舍
2017-05-03 17:13:25
1095
转载 深入理解 Spring 事务原理
本文由码农网 – 吴极心原创,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划!一、事务的基本原理Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行:获取连接 Connection con = DriverManager.getConnection()开启事务con.setAut
2017-05-03 15:24:38
1367
原创 SpringMVC工作原理
Spring的MVC框架主要由DispatcherServlet、处理器映射、处理器(控制器)、视图解析器、视图组成。SpringMVC原理图 SpringMVC接口解释DispatcherServlet接口: Spring提供的前端控制器,所有的请求都有经过它来统一分发。在DispatcherServlet将请求分发给Spring Controller
2017-05-03 15:16:30
1182
1
原创 单例模式
介绍 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 意图:保证一个类仅有一个实例,并提供一个访问它的全局访问
2017-04-12 15:18:14
663
原创 工厂模式
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主要解决接口选择的问题。何时使用:我们
2017-04-12 14:16:11
686
原创 设计模式介绍
简介 设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他
2017-04-12 14:12:31
1027
转载 Spring Boot Web应用开发 CORS 跨域请求支持
一、Web开发经常会遇到跨域问题,解决方案有:jsonp,iframe,CORS等等CORS与JSONP相比1、 JSONP只能实现GET请求,而CORS支持所有类型的HTTP请求。2、 使用CORS,开发者可以使用普通的XMLHttpRequest发起请求和获得数据,比起JSONP有更好的错误处理。3、 JSONP主要被老的浏览器支持,它们往往不支持CORS,而绝大多数现代浏览器都已经支持了CO
2017-01-25 21:21:11
9801
1
转载 Spring Boot Web应用开发 Servlets、Filters、listeners
Web开发使用 Controller 基本上可以完成大部分需求,但是我们还可能会用到 Servlet、 Filter、Listener等等 二.在spring boot中的三种实现方式 方法一:通过注册ServletRegistrationBean、 FilterRegistrationBean 和 ServletListenerRegistrationBean 获得控制 /** * 自定义se
2017-01-25 21:13:26
806
转载 Spring Boot Web应用开发 Servlets、Filters、listeners
Web开发使用 Controller 基本上可以完成大部分需求,但是我们还可能会用到 Servlet、 Filter、Listener等等 二.在spring boot中的三种实现方式 方法一:通过注册ServletRegistrationBean、 FilterRegistrationBean 和 ServletListenerRegistrationBean 获得控制 /** * 自定义se
2017-01-25 18:27:53
679
转载 Spring Boot Web应用开发 错误处理
一.错误的处理方法一:Spring Boot 将所有的错误默认映射到/error, 实现ErrorController@Controller@RequestMapping(value = "error")public class BaseErrorController implements ErrorController {private static final Logger logger =
2017-01-25 18:08:51
954
原创 Spring Boot 日志配置 logback和log4j2
支持日志框架:Java Util Logging, Log4J2 and Logback,默认是使用logback配置方式:默认配置文件配置和引用外部配置文件配置一、 默认配置文件配置(不建议使用:不够灵活,对log4j2等不够友好)# 日志文件名,比如:roncoo.log,或者是 /var/log/roncoo.loglogging.file=roncoo.log# 日志级别配置,比如: lo
2017-01-25 17:20:17
6941
转载 Spring Boot Web应用开发 文件上传
一、Spring Boot 默认使用springMVC包装好的解析器进行上传 二、添加代码 文件: 上传" /> @Controller@RequestMapping(value = "/file")public class FileController { private static final Logger logger = LoggerFactor
2017-01-25 16:52:47
2748
转载 Spring Boot 正确、安全地停止SpringBoot应用服务
安全地停止SpringBoot应用服务引言Spring Boot,作为Spring框架对“约定优先于配置(Convention Over Configuration)”理念的最佳实践的产物,它能帮助我们很快捷的创建出独立运行、产品级别的基于Spring框架的应用,大部分Spring Boot应用只需要非常少的配置就可以快速运行起来,是一个与微服务(MicroServices)相当
2017-01-22 17:19:25
7806
转载 MySQL 列转行统计查询
-- ------------------------------ Table structure for `TabName`-- ----------------------------DROP TABLE IF EXISTS `TabName`;CREATE TABLE `TabName` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `Name` var
2017-01-19 21:17:27
905
原创 Eclipse 个人配置
背景豆沙绿设置、字体设置、将EGIT快捷图标添加到工具栏、禁用 Maven updating indexes、去除不需要加载的模块、取消自动校验、添加快速构建代码等等
2017-01-14 16:26:34
2291
原创 Eclipse 实用插件汇总
反编译 JD、代码规范检查 Checkstyle、检查代码隐藏的 Bug - FindBugs 、检查Java源文件中的潜在问题 PDM、类图 greenUML
2017-01-14 16:24:21
3518
原创 Eclipse Tomcat 热部署
达到的效果是修改 Java 代码不需要重启 Tomcat 就可以生效,但是仅对方法内的方法有效,对于新增方法、新增类等无效。
2017-01-13 23:08:38
2459
原创 Maven 自动打包上传到私服 Nexus
1. Releases 在发布库里面查找(主要用于稳定版) 2. Snapshots 在快照库里面查找(和上面的区别就是在pom加了个<version>0.0.5-SNAPSHOT</version>,主要用于开发阶段) 3. 3rd party 不是我们自己开发的,也在中央库找不到的,就要到这里手动上传包到私服。 4. Central 到中央库查找。
2017-01-13 16:52:56
11692
原创 Maven 常用命令
导出所有依赖jar 1. 使用命令行 cmd 进入工程pom.xml 所在的目录下,输入:mvn dependency:copy-dependencies 会导出所以依赖jar到targed/dependency 下面。 也可以在工程创建lib文件夹,输入以下命令:mvn dependency:copy-dependencies -DoutputDire
2017-01-13 16:38:29
782
原创 Java 处理视频 、音频文件(读取视频时长等) - JAVE
简介 The JAVE (Java Audio Video Encoder) library is Java wrapper on the ffmpeg project. Developers can take take advantage of JAVE to transcode audio and video files from a format to another. In
2017-01-11 21:02:43
30548
10
原创 Spring Boot 集成Mybatis操作数据库
项目结构 pom配置 org.mybatis.spring.boot mybatis-spring-boot-starter 1.1.1驱动 --> mysql mysql-connector-java 5.1.39application.properties #MySQLspring.datasource.url=jdbc:mysql://localhost:330
2017-01-11 09:51:37
4005
原创 Spring Boot 配置文件介绍
属性文件使用Application/YAMLApplication/YAML 属性文件,按优先级按高到低排序,位置高的将覆盖位置低的 1. 当前目录下的一个/config子目录 2. 当前目录 3. 一个classpath下的/config包 4. classpath根路径(root)application.properties##自定义属性#32位随机字符串jerome.
2017-01-10 20:56:45
3450
原创 Spring Boot介绍 Spring Boot RESTfull API快速搭建
简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用 了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。 从 Spring Boot 项目名称
2017-01-09 17:58:52
4894
转载 技术人员的发展之路 - 陈皓
技术人员的发展之路 2016年12月28日 陈皓 评论 79 条评论 54,975 人阅读2012年的时候写过一篇叫《程序算法与人生选择》的文章,我用算法来类比如何做选择,说白了就是怎么去计算,但是并没有讲程序员可以发展的方向有哪些。 所以,就算是有这些所谓的方法论,我们可能对自己的发展还是会很纠结和无所事从,尤其是人到了30岁,这种彷徨和迷惑越来越重。虽然我之前也写过一篇《编程年龄和编程技能
2017-01-06 11:44:07
1584
转载 我的职场经验分享 - 黄勇
原我的职场经验分享 收藏黄勇 发表于 3年前 阅读 2951 收藏 43 点赞 19 评论 302017.1.8,与“码云”相约开源中国总部,火热报名中!!>>> » 时光飞逝,我事业中第一个十年就快结束了。在这十年里,让我收获了很多,今天想与大家分享一下,我在 IT 职场方面的一些个人经验,不一定对每个人都实用,请大家仅作参考吧。大家既然都是做技术的,那我们不妨先从技术这个话题开始说起吧。我要
2017-01-06 11:20:02
745
原创 Zeroc Ice TCP长连接 实现推送功能
业务场景 公司目前推送方案踩过很多坑,用过极光的(我们使用电信定向卡,遇到较多问题,定向ip等等,而且极光偶尔不太稳定推送无法到达,使用第三方避免不了这种问题)、用过自建的UDP推送(UDP会有丢包的情况)还稍微好一点,但是都会有问题,目前我们打算使用Ice的长连接,使设备和服务器保持一个tcp的长连接,实现实时推送的功能。解决的问题 1. 实时推送(双向)
2017-01-05 14:29:26
6754
14
转载 如何用好github中的watch、star、fork
每个 github 项目的右上角,都有三个按钮,分别是 watch、star、fork,但是有些刚开始使用 github 的同学,可能对这三个按钮的使用却不怎么了解, 包括一开始使用 github 的我也是如此,这篇博客,结合自己的理解和使用,说说这三个按钮的用法以及一些个人见解。如下图所示这是我们经常看到的三个按钮。从左至右,依次是 watch star fork,下面分别说下他们的具体作用。w
2017-01-05 10:59:57
2632
原创 MongoDB 客户端工具
Mongo VUE 缺点:没命令行输入的界面 链接:http://pan.baidu.com/s/1skuEOPZ 密码:36b6 【MongoVUE 1.6.9】Robomongo 优点:有命令行输入的界面 缺点 1. 没有导出功能 2. 只有命令行的方式 官网:https://robomongo.
2017-01-01 16:08:53
6748
31
原创 Windows 下安装 MongoDB
http://pan.baidu.com/s/1c1gkIOg (mongodb-windows)第一步:下载MongoDB 从MongoDB官方网站下载MongoDB,根据你的平台选择对应的windows的压缩包并解压,这里解压到D:\mongodb\。如果需要在命令行中快速使用MongoDB bin目录下的命令,可以将D:\db\mongoDB\bin加入到Window环境变量。第二步:配置
2017-01-01 16:00:59
1069
原创 MySQL 中间件 Mycat 安装与使用 - 读写分离
环境Windows (mycat)Linux 虚拟机(主库)Linux 虚拟机(从裤)注:主从同步需要自己配置,参考mysql主从同步配置.note ,Blog:MySQL 主从同步配置下载1. https://github.com/MyCATApache/Mycat-download2. 百度网盘(2016-07-06,链接:http://pan.baidu.com/s/1o86bSbo 密码:
2017-01-01 15:57:06
1221
原创 MySQL 中间件汇总比较
360 Atlas 较为活跃,Atlas 是由 360 Web平台部基础架构团队开发维护的一个基于 MySQL 协议的数据中间层项目。它是在mysql-proxy 0.8.2版本的基础上,对其进行了优化,增加了一些新的功能特性。360内部使用 Atlas 运行的 MySQL 务,每天承载的读写请求数达几十亿条。 主要功能: 1...
2017-01-01 15:54:45
39333
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人