架构
文章平均质量分 80
java风云
软件架构师
展开
-
ThreadLocal和同步锁机制的对比分析
概括起来说,对于多线程资源共享的问题,同步机制采用了“以时间换空间”的方式,而ThreadLocal采用了“以空间换时间”的方式。前者仅提供一份变量,让不同的线程排队访问,而后者为每一个线程都提供了一份变量,因此可以同时访问而互不影响。 同步机制利用所实现资源的同步访问,确保某一个时刻只有一个线程在访问资源;而ThreadLoca则规避了同步,让每一个线程有自己的一份副...原创 2014-10-10 20:06:23 · 704 阅读 · 0 评论 -
实战CGLIB系列文章之开篇:CGLIB简介、原理与应用
本系列文章均整理自我在先前一家公司的CGLIB使用总结和笔记。鉴于CGLIB文档及示例较少,因此分享出来,希望对看到的人有所帮助,同时欢迎大家提出宝贵意见。------------------------------------CGLIB介绍与原理(部分节选自网络)一、什么是CGLIB?CGLIB是一个功能强大,高性能的代码生成包。它为没有实现接口的类提供代理,为J转载 2014-11-01 21:58:43 · 324 阅读 · 0 评论 -
实战CGLib系列之proxy篇(一):方法拦截MethodInterceptor
本系列文章均整理自我在先前一家公司的CGLib使用总结和笔记。分享出来,希望对看到的人有所帮助,同时欢迎大家提出宝贵意见。如需转载,请勿修改,且注明作者shensy及出处。--------------------------------------实战CGLib系列文章本篇介绍通过MethodInterceptor和Enhancer实现一个动态代理。一、首先说一下J转载 2014-11-01 21:59:26 · 633 阅读 · 0 评论 -
Https VS Http 性能比拼
今天在请求数据的数据的时候,服务器使用的是https 请求,相对安全些,但是结果让我请求图片和资源的时候也使用https 请求,我之前写的http 请求根本用不了!我就感到非常的不爽!最后听公司的人说了下,最后他们决定 重要信息使用hpps 访问,但是对于资源什么的就使用http 吧! 开始没什么认识,只感觉到使用https 请求数据的时候,要经过安全验证,安全性很高!度娘了下!原来使用h转载 2014-11-06 00:33:14 · 1043 阅读 · 0 评论 -
https登陆 及 数字证书 检查 设计思路及解决方法总结
在一些管理严格的部门需要使用数字证书进行登陆,此时需要专门的数字证书登陆代码才行。下面就总结一下最近做的一个项目的情况,供大家参考。在此感谢给予无私帮助的成功软件周经理和李工。一、https 登陆的思路先不谈网站的https配置问题,另文详细说明。 为了减少网站代码的变化,一般网站都采用了,只有登陆页面使用https,而正常页面还是使用http方式。我的解决办法是这转载 2014-11-06 00:34:25 · 619 阅读 · 0 评论 -
MapReduce工作原理
右图是论文里给出的流程图。一切都是从最上方的user program开始的,user program链接了MapReduce库,实现了最基本的Map函数和Reduce函数。图中执行的顺序都用数字标记了。1.MapReduce库先把user program的输入文件划分为M份(M为用户定义),每一份通常有16MB到64MB,如图左方所示分成了split0~4;然后使用fork将用户进程拷贝到转载 2014-10-21 15:00:33 · 357 阅读 · 0 评论 -
NoSQL开篇——为什么要使用NoSQL
【编者按】NoSQL在2010年风生水起,大大小小的Web站点在追求高性能高可靠性方面,不由自主都选择了NoSQL技术作为优先考虑的方面。今年伊始,InfoQ中文站有幸邀请到凤凰网的孙立先生,为大家分享他之于NoSQL方面的经验和体会。非常荣幸能受邀在InfoQ开辟这样一个关于NoSQL的专栏,InfoQ是我非常尊重的一家技术媒体,同时我也希望借助InfoQ,在国内推动NoSQL的发展转载 2014-10-21 00:05:58 · 288 阅读 · 0 评论 -
SSL与CA
某项目的业务系统要求在用户使用的过程使用数字证书。在刚接手这个任务时,我对个中的知识几乎不了解,于是到处搜刮相关资料,网上此类文章甚多,但都比较零散,而且个人认为其中绝大部分未能尽释所疑。在经历了数天的郁闷及实践以后,终有所悟,作此文以记。1 对称加密与非对称加密对称加密方法的加密与解密采用相同的密钥,因此任何人只要获得其中的密钥,就可以对密文进行解密。而非对转载 2014-11-05 23:44:12 · 357 阅读 · 0 评论 -
重构一:用多态替换switch语句
编程中我们尽量少用switch语句,使用switch语句会出现大量重复代码,我们可以采用java的多态特性,使用state模式来替换switch语句,具体方式如下: 举个例子,假设一个电影租赁的程序,包括客户(Customer)、租赁(Rental)、电影(Movie)三个类,在Movie类中,有一个获取电影租金的方法getChartge,它需要根据电影的类型和租期来计算电...原创 2018-12-16 15:49:20 · 8771 阅读 · 0 评论 -
java日志框架简介
java常用日志框架类别 slf4j和commons logging是java领域常用的日志框架接口,这两大框架分别对应一些列日志具体实现框架,commons logging 是Apache 开源组织下的框架,阵营中主要包括:log4j:Apache软件基金会的 一个java项目,它是由Ceki Gülcü首创的 。log4j 2:它是log4j的改进版本,Apache的又一个开源产品,...原创 2018-12-29 07:16:12 · 432 阅读 · 0 评论 -
lockback的使用
logback简介logback是由log4j的创始人开发的新日志框架,包括三个模块:logback-corelogback-classiclogback-accesslogback-core是核心模块,logback-classic是日志框架,相当于log4j,logback很好的实现了slf4j,logback-access提供跟web 容器有关的日志访问功能。logback与...原创 2018-12-30 09:50:56 · 4549 阅读 · 0 评论 -
重构二:以查询取代临时变量
如果你的程序中有一个临时变量,他的赋值操作是通过一个表达式来进行的,那我们可以把这个表达式单独提炼出一个函数,在源程序中对变量的引用改为对这个函数的引用。动机如果在一个函数内部通过表达式对一个临时变量赋值,这驱使你会写出越来越长的代码,因为只用这样你才能访问到临时变量,而且这个表达式不能够被重用,如果表达式的代码单独提炼为函数之后,类中所有的函数都可以对其进行引用,这样也可以更方便进行复用。...原创 2019-01-06 18:33:11 · 653 阅读 · 0 评论 -
spring bean的会话和请求作用域
bean生命周期spring bean默认装配生成对象是采用单例形式,只创建一个对象,这种形式,当需要保存对象状态时候存在一定问题,多处共用该对象会造成对象污染,srping bean还有原型、会话、请求等其他几种对象生成方式。单例:在整个web应用中,只产生bean的一个实例。原型:在每次注入或者在应用上下文中获取bean时候都产生一个bean的实例。会话:在应用的一次会话中产生一个b...原创 2019-01-12 11:50:26 · 1443 阅读 · 0 评论 -
实战CGLib系列之proxy篇(五):接口生成器InterfaceMaker
本系列文章均整理自我在先前一家公司的CGLib使用总结和笔记。分享出来,希望对看到的人有所帮助,同时欢迎大家提出宝贵意见。如需转载,请勿修改,且注明作者shensy及出处。--------------------------------------实战CGLib系列文章本篇介绍接口生成器InterfaceMaker。一、作用:InterfaceMaker会动转载 2014-11-01 22:04:08 · 570 阅读 · 0 评论 -
实战CGLib系列之proxy篇(二):回调过滤CallbackFilter
本系列文章均整理自我在先前一家公司的CGLib使用总结和笔记。分享出来,希望对看到的人有所帮助,同时欢迎大家提出宝贵意见。如需转载,请勿修改,且注明作者shensy及出处。--------------------------------------实战CGLib系列文章本篇介绍回调过滤器CallbackFilter。一、作用在CGLib回调时可以设置对不同方转载 2014-11-01 22:00:39 · 601 阅读 · 0 评论 -
Tomcat负载均衡原理详解及配置(Apache 2.2.19+Tomcat 7.0.12)
结构图使用Tomcat的童鞋们注意了。为了增加tomcat的性能和稳定性,我们一般采用balance和session同步机制。 下图列出了我们常用也是最简单的解决方案。说明1 balance负载均衡我们一般采用Apache proxy和Apache+mod_jk方式所使用软件:Apache2.2.19 http://httpd.apache.org/downloa转载 2014-10-14 21:02:38 · 774 阅读 · 0 评论 -
单例模式
饿汉式: public class Singleton{ private static Singleton singleton = new Singleton (); private Singleton (){} public Singleton getInstance(){return singlet转载 2014-10-10 17:25:57 · 237 阅读 · 0 评论 -
单例模式应用场景
单例模式(Singleton)也叫单态模式,是设计模式中最为简单的一种模式,甚至有些模式大师都不称其为模式,称其为一种实现技巧,因为设计模式讲究对象之间的关系的抽象,而单例模式只有自己一个对象,也因此有些设计大师并把把其称为设计模式之一。好多没怎么使用过的人可能会想,单例模式感觉不怎么用到,实际的应用场景有哪些呢?以下,我将列出一些就在咱们周边和很有意义的单例应用场景。1. Win转载 2014-10-10 19:09:42 · 349 阅读 · 0 评论 -
Java 多线程下的单例模式
单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。正是由于这个特 点,单例对象通常作为程序中的存放配置信息的载体,因为它能保证其他对象读到一致的信息。例如在某个服务器程序中,该服务器的配置信息可能存放在数据库或 文件中,这些配置数据由某个单例对象统一读取,服务进程中的其他对象如果要获取这些配置信息,只需访问该单例对象即可。这转载 2014-10-10 21:05:33 · 253 阅读 · 0 评论 -
OpenSessionInViewFilter原理以及为什么要用OpenSessionInViewFilter
OpenSessionInViewFilter原理以及为什么要用OpenSessionInViewFilter struts2 里面OpenSessionInViewFilter一定要写在最上面 下面有讲解---------------------------------------------------------------1、说说为什么使用转载 2014-11-16 14:33:50 · 340 阅读 · 0 评论 -
使用URLClassLoader动态加载类
一般动态加载类都是直接用Class.forName()这个方法,但这个方法只能创建程序中已经引用的类,并且只能用包名的方法进行索引,比如Java.lang.String,不能对一个.class文件或者一个不在程序引用里的.jar包中的类进行创建。但使用URLClassLoader就可以直接根据创建一个单独的.class文件,并且每当重新载入后并实例化后都是最新的方法。类似于jsp,当你在eclip转载 2014-10-30 16:01:23 · 1060 阅读 · 0 评论 -
李开复:程序员能干一辈子
“编程序是艺术而不是工程,程序员应该得到大家的尊重,过了30岁仍然可以干这行。”昨天,Google中国区总裁李开复面对进入Google中国编程挑战赛决赛的选手们说。 1月20日晚,经过晋级500、500进250、250进50的在线厮杀角逐,50名最后胜出者被邀请来京参加冠军赛,分享总价值25万元的高科技奖品。 Google编程挑战赛在全球已经举办了三届,今年第一次来到中国,吸引转载 2014-10-14 13:17:32 · 658 阅读 · 0 评论 -
IT人-不要一辈子靠技术生存
我现在是自己做,但我此前有多年在从事软件开发工作,当回过头来想一想自己,觉得特别想对那些初学JAVA/DOT。NET技术的朋友说点心里话,希望你们能从我们的体会中,多少受点启发(也许我说的不好,你不赞同但看在我真心的份上别扔砖头啊).一。 在中国你千万不要因为学习技术就可以换来稳定的生活和高的薪水待遇,你千万更不要认为哪些从事 市场开发,跑腿的人,没有前途。不知道你是不是知道,咱们中国有相转载 2014-10-14 13:18:46 · 332 阅读 · 0 评论 -
程序人永远的痛
我在做教育方面软件的时候做过人工智能方面的自动解题系统,但是放到市场上去学生是不需要这样的系统的.游戏开发我也干过,但是老板们对做游戏引擎是没有兴趣的,我的经验是感觉凡是同研发时间长的东西挂上边任何公司都会觉得风险太大,所以国内做游戏的多数是在用老外的引擎,因为一些引擎确实还是比较便宜的,但是游戏方面入行和转行都是不太容易的,如果认为会做游戏就可以自己开游戏公司,哪是绝对错误的,因为里面水深了,比转载 2014-10-14 13:24:49 · 324 阅读 · 0 评论 -
实战CGLib系列之proxy篇(三):延迟加载LazyLoader
本系列文章均整理自我在先前一家公司的CGLib使用总结和笔记。分享出来,希望对看到的人有所帮助,同时欢迎大家提出宝贵意见。如需转载,请勿修改,且注明作者shensy及出处。--------------------------------------实战CGLib系列文章本篇介绍延迟加载器LazyLoader。一、作用:说到延迟加载,应该经常接触到,尤其是使用Hibern转载 2014-11-01 22:01:14 · 375 阅读 · 0 评论 -
实战CGLib系列之proxy篇(四):改进版延迟加载Dispatcher
本系列文章均整理自我在先前一家公司的CGLib使用总结和笔记。分享出来,希望对看到的人有所帮助,同时欢迎大家提出宝贵意见。如需转载,请勿修改,且注明作者shensy及出处。--------------------------------------实战CGLib系列文章本篇介绍改进版延迟加载器Dispatcher。一、作用:上一篇文章中,介绍了延迟加载器La转载 2014-11-01 22:01:51 · 450 阅读 · 0 评论 -
NoSQL与关系型数据库设计理念比较
关系型数据库中的表都是存储一些格式化的数据结构,每个元组字段的组成都一样,即使不是每个元组都需要所有的字段,但数据库会为每个元组分配所有的字段,这样的结构可以便于表与表之间进行连接等操作,但从另一个角度来说它也是关系型数据库性能瓶颈的一个因素。而非关系型数据库以键值对存储,它的结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一原创 2014-10-20 21:02:06 · 1290 阅读 · 0 评论 -
log4j2的使用
log4j2简介logback是由log4j的创始人开发的新日志框架,包括三个模块:logback-corelogback-classiclogback-accesslogback-core是核心模块,logback-classic是日志框架,相当于log4j,logback很好的实现了slf4j,logback-access提供跟web 容器有关的日志访问功能。logback与l...转载 2019-07-19 09:18:11 · 3099 阅读 · 0 评论