- 浏览: 496803 次
- 性别:
- 来自: OnePiece
最新评论
-
zhanggang807:
第二种方法比较好
<spring> 定时任务每次都执行两次的问题,慎用new ClassPathXmlApplicationContext() -
assasszt:
谢谢分享,很清楚的讲明了原理。
字符集与字符编码简介 -
su0nils000:
难得的笔记
<进阶-2> 打造高效正则表达式 -
足至迹留:
mini188 写道用MD5来解决碰撞是不是也是可行的呢?个人 ...
Hash简介 -
mini188:
用MD5来解决碰撞是不是也是可行的呢?
Hash简介
文章列表
修改第三方源码并重新打包
- 博客分类:
- 问题记录
1.场景
很多时候需要下载第三方源码修改并重新编译打包,比如mybatis-generator-core-1.3.2.jar需要修改其中的org.mybatis.generator.internal.DefaultCommentGenerator.java。
2. 步骤
2.1 抽源码并修改
我们可以从jar包里反编译源码(可能跟源码会有些不一致),最好从source包(mvn下载)里解压抽出源码,然后修改。
2.2 编译
把class的jar包mybatis-generator-core-1.3.2.jar放在E:\git_other目录下,把mybatis-generator-core- ...
1. 问题描述
使用cglib库进行动态生成代理类时调用了默认改造方法,enhancer.create(),为了省事,把目标类写成了内部类,导致错误:
java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given
at net.sf.cglib.proxy.Enh ...
super用在了匿名内部类里
- 博客分类:
- 问题记录
1.问题描述
本来是重构时在父类里增加了一个protected方法(这个方法在子类中多处出现),然后在子类里使用这个方法的地方都用super来调用这个方法,结果编译始终不对。编译器提示super下面没有这个方法。
2. 问题分析
对比后发现有些地方能用,有些地方不能用。原来根本原因在于有些子类的方法里使用了匿名内部类,在内部类的方法里使用super自然代表的就不是外部类的父类了,而是内部类自己的父类。原因清楚了,搞得差点开始怀疑人生:)
3. 回顾
3.1 super关键字
http://blog.csdn.net/anmei2010/article/details/4093118
CGI(Common Gateway Interface),通用网关接口
通用网关接口,简称CGI,是一种根据请求信息动态产生回应内容的技术。通过CGI,Web 服务器可以将根据请求不同启动不同的外部程序,并将请求内容转发给该程序,在程序执行结束后,将执 ...
负载均衡(Load balancing)是一种计算机网络技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。
使用带 ...
GOF设计模式中有一种叫做观察者模式(Observer),属于行为型模式。又叫发布-订阅(Publish/Subscribe)模式、模型-视图 (Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个 主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。http://zoroeye.iteye.com/blog/2100318
观察者模式被称为是模式中的皇后,而且java jdk也对它做了实现,可见该设计模式的重要位置。在图形化设计 ...
1. 问题描述
...
Error creating bean with name 'A': Injection of resource fields failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [IA] is defined: Unsatisfied dependency of type [interface IA]: expected at least 1 matching bean
at org.spr ...
从前端同事那学到的小技巧,以前通过页面查找元素调用的哪些方法时都是先在工程里找到对应的页面,然后再找绑定的方法,有时候页面都要找半天。现在好了,直接就能找到绑定的事件调用的哪些方法,直接到工程里搜就可以了。
1. 选择要查看的元素
2. 通过事件,分析自己要查找的方法,然后单击一下即可
1. 设置自定义系统属性java命令行-D
在java命令行指定:
java -D<name>=<value> // set a system property 设置系统属性。
http://www.tuicool.com/articles/MnEBNjm
http://blog.sina.com.cn/s/blog_605f5b4f0100hlt9.html
idea和myeclipse里可以在指定vm参数的地方设置
2. javap [options] class
javap是jdk自带的一个工具,可以反编译,也可以查看java编译器生成的字节码,是分析代码的 ...
1. pom的继承依赖
如果父pom中使用的是<dependencies>....</dependencies>方式,则子pom会自动使用pom中的jar包,如果父pom使用<dependencyManagement><dependencies>....</dependencies></dependencyManagement>方式,则子pom不会自动使用 ...
1. function的参数以字符串形式传入另一个function
下面是一个function
function createDialog(dialogTip, buttonObject, callback, successTip, errorTip)
{
var dialog=new ModalDialog({
content:dialogTip,
buttons: [
{
name: '确定',
close: true,
click: function() {
...
1. 错误现象
Error:java: Annotation processing is not supported for module cycles. Please ensure that all modules from cycle [A,B] are excluded from annotation processing
2. 问题分析
查找http://stackoverflow.com/questions/27223917/how-to-configure-annotations-processing-in-intellij-idea-14-for-current-project发 ...
starUML小tip
- 博客分类:
- uml
1. starUML展示内部类
starUML的Class Digram可以add Class增加内部类,但是默认在外部类图标上没有展示,可以手动拖到外部类上。
http://blog.sina.com.cn/s/blog_6d2890600101hujf.html
名词解释: 水平扩展和垂直扩展
- 博客分类:
- 运维
垂直扩展
简单说来,垂直扩展就是升级原有的服务器或更换为更强大的硬件。这是比较直接的方法,比如说内存不足时就增加更多的内容。或者,花费一大笔钱为一个大型主机服务器增加存储吞吐量和/或计算能力。
这种方法的优点是,购买更多内存是进行扩展的最便宜的方式之一。其缺点是,每台服务器所能支持的可扩展内存量都有一个上限。一旦现有的服务器达到这一上限,那么是时候更新到新服务了。
水平扩展
水平扩展指的是通过增加更多的服务器来分散负载,从而实现存储能力和计算能力的扩展。这可以通过增加本地的刀片服务器(虽然有些人认为增加刀片服务器是一种垂直扩展形式),或者增加云端的虚拟机和服务器。
参考:
http://w ...
DNS(Domain Name System,域名系统)是因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做 ...