2016年5月6日
摘要: 由于公司业务的发展,单台服务器已经无法满足并发和用户的需求,所以只能通过水平拓展的方式加机器来解决,线上采用的是Nginx+Tomcat集群的方式来解决。由于当前业务量不是很大,而且由于之前代码的问题要求同一个请求必然映射到特定的服务器来处理请求。所以Nginx的负载均衡策略选择了IP_HASH. 阅读全文
posted @ 2016-05-06 08:34 叼烟斗的纤夫 阅读(15522) 评论(1) 推荐(0) 编辑
  2016年4月30日
摘要: 由于公司新业务突然上来了,单个Tomcat实例已经不能满足业务发展的需要了,只能通过搭建集群来解决问题了。所以就出现了下面的内容: 1.Redis保存Session信息 为了保存Session信息在集群中可用,所以session信息不能保存Tomcat中,因为如果是这样的话要想实现Session信息 阅读全文
posted @ 2016-04-30 17:55 叼烟斗的纤夫 阅读(2049) 评论(1) 推荐(0) 编辑
  2015年11月12日
摘要: 前言 SpringMVC如果在处理业务的过程中发生了异常,这个时候是没有一个完整的ModelAndView对象返回的,它应该是怎么样处理呢?或者说应该怎么去获取一个视图然后去展示呢。下面就是要讲的RequestToViewNameTranslator。1.引出问题 DispathcerServl... 阅读全文
posted @ 2015-11-12 17:32 叼烟斗的纤夫 阅读(1218) 评论(0) 推荐(0) 编辑
  2015年11月6日
摘要: 前言 在介绍SpringMVC 的Controller的具体实现中,我们讲到了MultiActionController。在获取处理请求对于的方法的时候我们用到了下面的代码,来自于MultiActionController的handleRequestInternal的方法: protected M... 阅读全文
posted @ 2015-11-06 07:44 叼烟斗的纤夫 阅读(1057) 评论(0) 推荐(0) 编辑
  2015年11月3日
摘要: 1.DispatcherServlet作用说明 DispatcherServlet提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好处。DispatcherServlet主要用作职责调度工作,本身主要用于控制流... 阅读全文
posted @ 2015-11-03 16:04 叼烟斗的纤夫 阅读(2509) 评论(0) 推荐(0) 编辑
摘要: 说明: 例子就不举了,还是直接进入主题,本文主要是以SpringMVC的Controller接口为入点,来分析SpringMVC中C的具体实现和处理过程。1.Controller接口 public interface Controller { /** * Process the reques... 阅读全文
posted @ 2015-11-03 10:21 叼烟斗的纤夫 阅读(3639) 评论(0) 推荐(0) 编辑
  2015年10月30日
摘要: 文章转自 [再次写给我们这些浮躁的程序员],很不错,也很受用。果断mark!愿共勉加油!!!! 阅读全文
posted @ 2015-10-30 17:58 叼烟斗的纤夫 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 1.引入问题 切入正题,看下面代码,结果应该是怎么样的public class App{ public static void main( String[] args ){ byte a=1 ; int b = 10; a= a+b; ... 阅读全文
posted @ 2015-10-30 16:16 叼烟斗的纤夫 阅读(1225) 评论(0) 推荐(0) 编辑
  2015年10月29日
摘要: 网上关于LOG4J的使用文章太多了,写这篇文章的目的一方面是为了回顾LOG4J的用法,一方面针对配置的使用自动将日志插入数据库,自动发送邮件,还有就是自定义输入实现。后续文章会总结下从LOG4J到LOG4J2,再到logback,从commons-logging到sl4j。1.简单介绍 LOG4J... 阅读全文
posted @ 2015-10-29 15:56 叼烟斗的纤夫 阅读(525) 评论(0) 推荐(0) 编辑
  2015年10月27日
摘要: 1.从上一篇文章中可以SpringMVC初始化的过程中完成的其中一件事就是DispatcherServlet的相关策略的配置,如下所示 protected void initStrategies(ApplicationContext context) { initMultipartResolver... 阅读全文
posted @ 2015-10-27 08:12 叼烟斗的纤夫 阅读(942) 评论(0) 推荐(0) 编辑
  2015年10月26日
摘要: 1.说明 SpringMVC作为Spring提供的MVC实现,可以实现与Spring的天然无缝联合,因为具有很广泛的用途。具体的关于SpringMVC的处理流程逻辑我在这里就不在赘述了。还是来通过源码来追述下SpringMVC的启动过程。2.入口DispatcherServlet作为SpringM... 阅读全文
posted @ 2015-10-26 22:12 叼烟斗的纤夫 阅读(5529) 评论(0) 推荐(0) 编辑
  2015年10月25日
摘要: 领导以前是做C的,没有做过Web开发,就问我,Web技术发展的大致过程,我就是简单的说了开发过程的演化,下来后有自己找些资料补充下,如下所示:(着这是个简单的说明,感兴趣的可以再自己找找资料)。1.CGICGI: (Common Gateway Interface)公共网关接口,一种在 web ... 阅读全文
posted @ 2015-10-25 12:24 叼烟斗的纤夫 阅读(251) 评论(0) 推荐(0) 编辑
  2015年10月23日
摘要: 今天一个新同事问我,我知道如何利用XML的方式来构建动态SQL,可是Mybatis是否能够利用注解完成动态SQL的构建呢?!!答案是肯定的,MyBatis 提供了注解,@InsertProvider,@UpdateProvider,@DeleteProvider 和@SelectProvider,来... 阅读全文
posted @ 2015-10-23 07:25 叼烟斗的纤夫 阅读(22274) 评论(0) 推荐(1) 编辑
  2015年10月18日
摘要: 由于是创业公司,开发人员较少,所以公司临时决定让几个C的程序猿临时客串Java。所以避免不了有很多基础问题,今天就有两个人都问我,JavaBean和POJO的区别,我可按照自己的理解给他们大致说了下,可是仔细一推敲发现自己好像没有那么透彻的讲解很清楚,就查了下资料,记下了一些笔记和理解。1.Ja... 阅读全文
posted @ 2015-10-18 16:51 叼烟斗的纤夫 阅读(2604) 评论(0) 推荐(0) 编辑
  2015年8月11日
摘要: 在编程中,一个原子操作是只会出现一次的。一个原子操作在中间不会停止:要么全部发生要么一点也不发生。我们只有在原子操作完成之后才会看到原子操作的具体影响。甚至是非常简单的表达式能够构造分解为简单操作的复杂操作。但是,你可以指定一些原子操作: + 对于所有的引用变量和大部分的原始类型(除了long和do... 阅读全文
posted @ 2015-08-11 10:41 叼烟斗的纤夫 阅读(530) 评论(0) 推荐(0) 编辑
摘要: 关于happens-before规则的解释网上有很多,我就不敢班门弄斧了。贴出两篇不错的文章以供学习。#1.[happens-before俗解](http://ifeve.com/easy-happens-before/)#2.[深入Java内存模型——happen-before规则](http:/... 阅读全文
posted @ 2015-08-11 10:22 叼烟斗的纤夫 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 当不同的线程针对相同的数据却读到了不同的值时就发生了内存一致性错误。内存一致性错误的原因是非常复杂的。幸运的是我们程序员不需要详细的理解这些原因,我们需要做的事情就是使用策略来规避这些。避免内存一致性错误的关键就是需要先理解`happens-before ` 关系。这个关系只是简单保证了一个确定语句... 阅读全文
posted @ 2015-08-11 09:39 叼烟斗的纤夫 阅读(795) 评论(0) 推荐(0) 编辑
  2015年8月10日
摘要: 在并发编程中有两个基本的概率就是进程和线程。在Java编程中并发编程更多的是关注线程。但是进程也是很重要的。 一个计算机一般会有很多活跃的进程和线程。有一点是没有疑问的在单核系统中,任何时候实际上都是只会有一个一个线程在运行。单核的系统的处理时间是按照OS中的时间片功能来在进程和线程之间共享的。拥... 阅读全文
posted @ 2015-08-10 19:49 叼烟斗的纤夫 阅读(263) 评论(0) 推荐(0) 编辑
  2015年8月8日
摘要: 接下来打算把HTTP2协议的头部压缩算法给翻译下,敬请等候。[HPACK - Header Compression for HTTP/2](http://http2.github.io/http2-spec/compression.html)##HPACK:HTTP/2头部压缩###概要说明 ... 阅读全文
posted @ 2015-08-08 17:54 叼烟斗的纤夫 阅读(2237) 评论(0) 推荐(0) 编辑
摘要: 由于项目需要,需要获取授权用户的在运营商(中国移动、中国联通、中国电信)那里的个人信息、话费详单、月汇总账单信息(需要指出的是电信用户的个人信息无法从网上营业厅获取)。抓取用户信息肯定是要模仿用户登录授权,然后爬取自己需要的东西。自然想到了利用HttpClient。关于HttpClient的介绍可以... 阅读全文
posted @ 2015-08-08 15:12 叼烟斗的纤夫 阅读(858) 评论(0) 推荐(0) 编辑
  2015年8月4日
摘要: 在本机(Win7)中 利用VirtualBox安装了一个Ubuntu虚拟机,由于使用桥接,所以本机和虚拟机处于同一个网络局域网下,,主机能访问虚拟机。可是在Ubuntu更新软件的时候才发现不能联网。首先Ping localhost 发现正常的没问题,说明网卡OK。可是在虚拟机ping本机的时... 阅读全文
posted @ 2015-08-04 21:16 叼烟斗的纤夫 阅读(2832) 评论(0) 推荐(0) 编辑
  2015年8月3日
摘要: ##1.创建一个空的PDF 下面的小例子表示如何使用PDFBox来创建一个新的PDF文档。```java // 创建一个空的文档PDDocument document = new PDDocument();// 创建一个空的Page然后添加到文档中PDPage blankPage = new PDP... 阅读全文
posted @ 2015-08-03 22:40 叼烟斗的纤夫 阅读(628) 评论(0) 推荐(0) 编辑
摘要: 根据[官网](https://pdfbox.apache.org/index.html)的介绍可知,PDFBox是一个用来处理PDF文档的开源的Java工具包。这个项目运行创建PDF文档、对已有文档进行操作并且能够从文档中提取内容。它也包含了几个命令行工具。还有一点很重要,它是开源的,我很喜欢这点。... 阅读全文
posted @ 2015-08-03 22:09 叼烟斗的纤夫 阅读(1475) 评论(1) 推荐(0) 编辑
  2015年5月17日
摘要: 设计模式在软件开发者中非常受欢迎的。每个设计模式都是对常见软件问题的通用的描述解决方案。我们使用设计模式的好处有:+ 1.设计模式已经对于一个重复出现的问题进行了定义并且提供了**工业标准的解决方案**,因为如果我们合理的使用设计模式就可以节省很多时间。+ 2.使用设计模式提供的**复用性**可以产... 阅读全文
posted @ 2015-05-17 14:15 叼烟斗的纤夫 阅读(390) 评论(0) 推荐(0) 编辑
  2015年5月10日
摘要: 1.null的使用 Java中,null是一个关键字,用来标识一个不确定的对象。因此可以将null赋给引用类型变量,但不可以将null赋给基本类型变量。比如我们在定义一个变量的时候我们通过会这样做:XXXX xxxx = null;在需要赋值的时候xxx = new XXXX();我们知道我们在定... 阅读全文
posted @ 2015-05-10 09:33 叼烟斗的纤夫 阅读(1282) 评论(0) 推荐(0) 编辑
  2015年5月8日
摘要: 1.问题提出 今天在和同事讨论问题的时候,无意间谈到了Integer对象的比较,先看下代码:package test;public class IntegerEqual { /** * @param args */ public static void main(String[] args) ... 阅读全文
posted @ 2015-05-08 14:52 叼烟斗的纤夫 阅读(6005) 评论(0) 推荐(0) 编辑
  2015年5月7日
摘要: 1.出错 今天在测试代码的时候发现程序报错,看代码才知道是使用HashMap.values()方法的时候出错。因为项目中需要获取Map的值的集合然后进行遍历,所以就很自然的调用了HashMap.values()方法,如下所示package collections;import java.uti... 阅读全文
posted @ 2015-05-07 13:04 叼烟斗的纤夫 阅读(11105) 评论(1) 推荐(4) 编辑
摘要: 1.异常的分类 1) Checked exception: 这类异常都是Exception的子类 。异常的向上抛出机制进行处理,如果子类可能产生A异常,那么在父类中也必须throws A异常。可能导致的问题:代码效率低,耦合度过高。C#中就没有使用这种异常机制。 2)Unchecked exce... 阅读全文
posted @ 2015-05-07 08:00 叼烟斗的纤夫 阅读(389) 评论(0) 推荐(0) 编辑
  2015年4月10日
摘要: 1.说明 “Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。(只是简单说明这个语句的作用,不是这篇文章的重点)2.使用举例: 2.1表结构类型mysql> desc actor... 阅读全文
posted @ 2015-04-10 22:49 叼烟斗的纤夫 阅读(1200) 评论(0) 推荐(0) 编辑
  2015年4月9日
摘要: 做个简单笔录,就当是重温下基础知识。1.先看代码: package com.test;public class Test { public static void main(String[] args) { Son s = new Son(); } } class Pa... 阅读全文
posted @ 2015-04-09 14:16 叼烟斗的纤夫 阅读(380) 评论(0) 推荐(0) 编辑