- 博客(71)
- 资源 (1)
- 收藏
- 关注
原创 使用iText为PDF加图片水印
Maven依赖: com.sankuai.mms mms-boot 1.0.3Java代码:替换watermark_backgroud.png为本地图片即可。public static void imageWatermark(String inputPath, String outputPath) throws IOException,
2016-05-05 12:45:21 7514
原创 Git下部署项目的shell脚本
公司的jekins没法部署git的项目,配置管理员一时半会儿也没解决,自己就也写了一个脚本。这个脚本是用来部署dubbo服务的,也可以简单修改后用来部署一些web应用。可以实现:1)集群中已有代码的备份;2)从git上下载代码进行编译和打包,如果编译失败会停止;3)部署到集群;4)代码回滚。#!/bin/bash#author lygj1025@163.comSERVER_IPS=(1
2015-10-28 09:25:25 2696
原创 读《少有人走的路》(一)
《少有人走的路》是一本关于心理学的理论书籍,这本书中讲述了四个方面的内容,包括:自律、爱、成长和宗教、力量的书籍。我用Kindle快速阅读了一边,有在PC上翻看了第一部分关于自律的内容,感觉很有收获。虽然是一本理论上的书籍,但是书中有大量的心理学实例,是有一定指导意义的,建议感兴趣的朋友都读一读。关于自律,作者介绍了自律的重要性,并提出从四个方面实现个人的自律,分别是:推迟满足感、承担责任、尊
2015-09-27 10:31:46 1815
原创 JDBC基础
最近在进行数据查询优化的时候,发现自己对JDBC基础掌握的还不够,所有阅读了JDBC官方reference,并做了一个思维导图。如下: 其中大部分的知识都很容易了解,但是对于RowSet和一些高级特性还不了解,需要继续深入学习。另外JDBC只是一个规范,对于常用数据库(如Oracle和Mysql)的驱动,对于这些规范的支持是否全面,使用的时候要注意什么问题,都需要继续学习。
2014-08-07 15:00:49 641
原创 一个使用POI进行Excel多线程写操作的demo
最近项目中要使用POI进行Excel大数据量写入的功能,以下是alex写的一个简单demo。其中,使用了ThreadPoolExecutor、CountDownLatch。由于POI的sheet中使用TreeMap存储行数据集,所以对Sheet的行创建是非线程安全的,所以进行了同步操作。
2014-07-22 13:34:35 18211 6
原创 POI使用总结
POI是apache下一个进行office相关格式文件的读写开源工具。我们最近在使用这个框架实现Excel格式数据的导入和导出功能。这里进行一个使用总结。POI提供两种读写API模型:事件模型(eventmodel)和用户模型(usermodel)。
2014-07-22 13:24:14 2560
原创 总结使用Apache作为WebLogic集群代理
使用服务器集群,结合负载均衡器,可以提高系统并发访问量。通常会有两种负载均衡的方式:硬件方式和软件方式。以硬件作负载均衡器的方式,成本较高,所以经常使用软件作为负载均衡器。具体有哪些硬件、软件可以作为负载均衡器?负载均衡的具体过程是什么样?有哪些负载均衡而产生的特殊问题?在系统设计、开发阶段分别应该注意什么问题?这些问题还需要后续深入研究。 使用Apache作为WebLogic集群负载均
2014-04-03 22:46:09 2442
原创 使用oracle定时任务和存储过程实现数据拷贝
1. 准备测试表。-- Create tablecreate table TEST1( OID VARCHAR2(10) not null, COUNT NUMBER)tablespace USERS -- 表空间要修改 pctfree 10 initrans 1 maxtrans 255 storage ( initia
2014-01-24 14:22:03 711
原创 Java的CyclicBarrier(循环屏障)
在读Java编程思想的时候,书中提到如果需要实现多个线程合并除了使用join方法,还可以使用CyclicBarrier。翻看CyclicBarrier的API的时候,发现对应的介绍中一个很使用的Demo就动手敲了一遍。这里发出来,便于以后参考。这个Demo实现了使用多个线程对一个float型的二维数组进行求和计算。每第一维度对应一个线程,每个线程计算自己对应子数组元素的和,然后使用cyclic
2013-04-18 13:16:36 1013
原创 Extjs的Ext.form.ComboBox
Extjs的ComoBox类似于HTML中的select表单对象,其中select的option是由Store对象进行管理的。在使用Combobox的时候碰到各式各样的问题或要求,以下介绍一些典型的使用方式。Form中提交ValueFieldStore中的每条记录(record)包含两个(或两个以上)的属性,一个用于展示(displayField),一个是实际值(valueField),在
2013-04-07 18:04:17 1497
原创 读《高性能建站指南》(下)
第七条规则:避免CSS表达式的应用。个人对CSS表达式缺少应用,所以没有直接体会,但是大概的意思就是使用CSS表达式进行页面样式进行修改时,可能会造成表达式的多次重复性运行,导致执行效率的降低。例如,使用CSS表达式调用javascript函数对DOM进行动态操作。第八条规则:使用外部Javascript和CSS。使用内联的Javascript和CSS文件确实可以提高文件的加载速度,应用减少了
2013-04-03 13:36:19 645
原创 读《高性能建站指南》(上)
绪言部分介绍了为什么要进行web前端性能的优化以及HTTP协议的简单知识。为什么要进行web前端性能的优化?作者提出了一个前端性能的黄金法则:一般情况下,web页面的显示展示过程中,10%~20%用于下载HTML文档,而80%左右的现在前端组件(图片、js、css),因此对前端组件的处理会对web性能有很大的影响。此外,单纯的从系统整体调优的角度考虑,前端性能调优的工作量更小(相对于后台设计、架构
2013-03-29 19:05:23 1200
原创 精神懈怠
这是日志里2月26号的文章。先来看看精神懈怠的表现吧!说好的坚持学习英语,可是已经记不清这是第多少次虎头蛇尾了(可能虎头还没有画完)。说好的坚持做每日计划和时间统计,可是计数的一个“正”都还没写完啊!说好的坚持早起,可是温暖的被窝总是那么吸引人。说好的坚持读书,养成读书的习惯,可是最后总会给自己找各种借口。说好的…… 精神懈怠,表示你又一次被打败了,那个“邪恶的你”!久而久之
2013-03-22 09:11:55 711
原创 2013年的春节
这是元宵节前的文章,原文如下:今天是正月十四,按照老家的习俗过完十五这个年就算是翻过去了,可是,今年的春节却是如此的难以忘怀。 腊月十五的上午我接到妈妈的电话:“俊,你奶奶快不行,赶紧回来!”。我退掉订好的节前回去的火车票,第二天下午四点左右到的家,可还是没有见到她老人家最后一面,我再也见不到那个二十多年以来对我影响最大的人啦!我跪倒在奶奶身边,哭喊着:“奶奶~奶奶~”。再回
2013-03-22 09:10:37 566
原创 [置顶] 问题集锦一
2011-12-28:问:如何使用JS闭包控制对象属性访问范围?解:http://alexgao.iteye.com/admin/blogs/1633611 2012-01-08:问:如何理解threadLocal?该如何应用?解:http://alexgao.iteye.com/admin/blogs/1634060 2012-01-10:问:什么是复合主键?
2013-02-28 14:00:37 363
原创 Java RTTI
Java RTTI的思维导图:RTTI(runtime type info)用于在运行时识别对象的类型信息。java虚拟机不能在运行时加载所有类型对象(动态加载),同时部分类型的信息是无法再编译器就获取的,需要在业务逻辑中依据类型信息进行相关逻辑的处理,这是就需要RTTIl了。众所周知,java类在编写时会生成.class文件,那.class文件时如何使用的呢?在创建java类对应
2013-02-28 14:00:33 320
原创 最近该读哪些书(三)
以下最近接触的几本非技术书籍:《影响力》、《如何阅读一本书》、《暗时间》(刘未鹏)、《我不是教你诈》(刘墉)、《激荡三十年》(吴晓波)、《鲁宾逊漂流记》(中英文对比版)。《影响力》之所以经典,也许它是一本那么“实在”的书籍,生活的处处点滴你都能在书中找到对应的规则:互惠、承诺一致、社会认同、权威、喜好、短缺。读了全书后,感觉开始对生活中的现象进行反思了,激发了自己思考的源泉。但是,自己还是时不
2013-02-28 14:00:31 412
原创 项目管理之项目基础概念
从这篇文章开始对自己PMP考试的知识进行分析总结。首先,回顾下项目管理的基础知识:项目基础概念、项目生命周期与组织、单个项目的管理过程。项目管理的基础概念包括:项目是什么;项目与运营的关系;什么是项目管理;项目经理是什么样的角色;项目干系人包括哪些。 项目是什么?项目,是为了创造独特的产品、服务或成果的临时性工作。项目本身具有特殊性(各自条件不同)、临时性(有具
2013-02-28 14:00:29 410
原创 使用DOM实现事件响应函数的注册、删除及事件传递的终止
看代码, 如下: // inner的响应函数 var clickInner = function(e){ alert(1.1); }; // banner的响应函数 var clickBanner = function(e){ alert(2.1); } // body的响应行数 var clickBody = fu
2013-02-28 14:00:27 317
原创 JS中事件流测试
以下是一段用于测试两种事件流的类型:捕获(capture)和冒泡(bubble),如下: document.onreadystatechange = function () { if(document.readyState=="complete") { var inner = document.getElementById('i
2013-02-28 14:00:25 313
原创 最近该读哪些书(二)
之前列举了最近的读书情况,大概明白了读书效果比较差的几个原因,但是究竟为什么会出现这样的情况,如何避免以后再出现类型的情况,需要在这篇文章里进行梳理。先说说为什么会出现这种情况。个人发展目标不清晰是主要原因。近一年时间开始尝试Team的管理,可是实践工作中处理的主要问题还是技术问题,组员的、自己的和其他项目组的。既然接受了问题就要想尽办法去解决,所以一直以来google的主要都是技术问题,
2013-02-28 14:00:23 273
原创 理解ThreadLocal
跟以前的文章一样,还是先来一个例子。public class ThreadLocalDemo implements Runnable { //创建线程局部变量studentLocal,在后面你会发现用来保存Student对象 private final static ThreadLocal studentLocal = new ThreadLocal (); pu
2013-02-28 14:00:21 264
原创 使用JS闭包控制对象属性访问范围
var util = function(){ // default value; var varA = 'a',varB = 'b'; return{ init : function(varJson){ varA = varJson.a; varB = varJson.b; }, getValueA : function(){ return varA;
2013-02-28 14:00:19 333
原创 Extjs源码——extend
Extjs的extend方法是框架本身的一个基础方法,用于形成所有组件之间的继承结构。如果要理解extend方法实现,必须要理解javascript面向对象基础(可参考此文)。先写一个extend方法具体应用的例子:Person = function(atts){ if(atts){ this.id = atts.id; this.name = atts.name; thi
2013-02-28 14:00:17 397
原创 最近该读哪些书(一)
2011年我买了许多书,却没有认真的读。最近觉得要静下心来坚持读写书了,可是却不知道该读那本?先列举下有那些书可供选择。所有的书从内容上划分为:技术类和非技术类,从介质上分为纸质类和电子类。书不较多,也比较杂,我就想到哪写到哪。 《java编程思想》技术类 纸质、电子每次都是读这本书都是读了几天就坚持不住了,后来开始挑着读,还是坚持不住。《java与模式》技术类 纸质、电子
2013-02-28 14:00:15 366
原创 Servlet中context和session相关listener
1.ServletContextAttributeListener 监听对ServletContext属性的操作,比如增加/删除/修改 2.ServletContextListener 监听ServletContext,当创建ServletContext时,激发contextInitialized (ServletContextEvent sce)方法;当销毁Servle
2013-02-28 14:00:12 374
原创 应用设计模式之策略模式(Reflection)
前两篇文章介绍了结合静态代理和简单工厂对策略进行应用,这里介绍使用反射方式应用策略模式。定义反射策略类:/** * @author alex * */public class StratagemReflection { private AbstractDao dao; public StratagemReflection(String className) throw
2013-02-28 14:00:10 658
原创 应用设计模式之策略模式(Factory)
上一篇介绍了策略模式结合静态代理对策略进行应用,这里介绍结合简单工厂对策略模式的应用。定义策略枚举: public enum DaoType { /** * hibernate */ HIBERNATE, /** * ibatits */ IBATITS} 定义策略工厂:/** * @author alex * */public
2013-02-28 14:00:08 305
原创 应用设计模式之策略模式(Context)
策略模式:定义的固定的接口并有一系列不同类型的具体实现,能够在程序中动态使用这些具体的实现。策略模式常与代理模式、工厂模式一起使用,以实现策略之间的灵活切换。 基础类/接口: package dp;public abstract class AbstractDao { public abstract Object getById(); public void s
2013-02-28 14:00:06 1119
原创 Javascript原型链
以一段代码认识原型链。 //Animal构造函数function Animal(name){ this.name = name;}//Animal原型对象Animal.prototype = { id:"Animal", sleep:function(){ alert("sleep"); }} var dog = new Ani
2013-02-28 14:00:04 271
原创 Oracle优化器
Oracle的优化器有两种优化方式,即基于规则的优化方式(Rule-Based Optimization,简称为RBO)和基于代价的优化方式(Cost-Based Optimization,简称为CBO),在Oracle8及以后的版本,Oracle强列推荐用CBO的方式 RBO方式:优化器在分析SQL语句时,所遵循的是Oracle内部预定的一些规则。比如我们常见的,当一个where子句中
2013-02-28 14:00:02 279
原创 Oracle查询不走索引
今天在进行sql条有的时候,发现子查询中总是不走索引,对于的字段是建立了索引了的,可是不管怎么折腾就是不通过索引进行查询。网上对oracle查询不走索引的解释包括数据量较小(不值得走索引)、包含统计函数、未建立主键、对应列为nullable等等。后来,在与另外的同事讨论时才知道,原来是因为索引结果过多而进行全表遍历。表中总数据量为1千万,而索引对应条件查询的结果有500多万,在进行执行计划分析时,
2013-02-28 14:00:00 1282
原创 跨站点请求伪造防范(转载)
CSRF 的防范机制有很多种,防范的方法也根据 CSRF 攻击方式的不断升级而不断演化。常用的有检查 Refer 头部信息,使用一次性令牌,使用验证图片等手段。出于性能的考虑,如果每个请求都加入令牌验证将极大的增加服务器的负担,具体采用那种方法更合理,需要谨慎审视每种保护的优缺点。1. 检查 HTTP 头部 Refer 信息,这是防止 CSRF 的最简单容易实现的一种手段。根据 RFC 对
2013-02-28 13:59:58 651
原创 AppScan中的安全漏洞类型及解决方案
记录下近期项目中使用AppScan发现的安全漏洞,在后续持续跟踪:1. 内部IP泄露;2.检测到应用程序检测脚本;3.HTML敏感信息泄露;4.跨站点请求伪造;5.发现内部IP泄露模式;6.已解密的登录请求;(明文发送请求参数)7.会话标识未更新;(不要接受外部创建的会话标识)8.SQL盲注;9.登录错误消息凭证枚举; 其中“跨站点请求伪造”类型的安全文
2013-02-28 13:59:56 2332
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人