
程序设计
文章平均质量分 61
码老师
学习使我兴奋,妈妈不要拦我
展开
-
【整理】Java并发程序设计
1.无论任何方式启动线程,都要给一个名字,对排错监控有用public class Name { public void method1(){ Thread thread = new Thread("name"){ public void run() { //doxxx } }; thread.start(); } public void met原创 2013-07-15 09:49:03 · 725 阅读 · 0 评论 -
如何自己开发软件测试工具?
如何自己开发软件测试工具?序言:一说到自动化测试工具,大家很多人都会想到的是QTP、LR或者selenium之类的工具,要大家一开始设计一个这样的工具,其实确实很有难度,因为其包含的功能细节太过庞大。当年的我,开始设计开发工具的过程中,走了很多弯路,例如:做工具的界面技术的历程,刚开始用tcl/tk脚本语言,用tcl写底层框架,用tk写图形界面,后来发现tk虽然构造图形方便,但可拓展性实在转载 2014-02-19 16:35:56 · 1330 阅读 · 0 评论 -
Hibernate get和load区别
get和load方式是根据id取得一个记录下边详细说一下get和load的不同,因为有些时候为了对比也会把find加进来。 1.从返回结果上对比:load方式检索不到的话会抛出org.hibernate.ObjectNotFoundException异常get方法检索不到的话会返回null 2.从检索执行机制上对比: get方法和find方法都是直接从数转载 2014-03-11 14:48:17 · 417 阅读 · 0 评论 -
Spring AOP+ehCache简单缓存系统解决方案
需要使用Spring来实现一个Cache简单的解决方案,具体需求如下:使用任意一个现有开源Cache Framework,要求可以Cache系统中Service或则DAO层的get/find等方法返回结果,如果数据更新(使用Create/update/delete方法),则刷新cache中相应的内容。 根据需求,计划使用Spring AOP + ehCache来实现这个功能,采用ehCac转载 2014-03-13 09:40:29 · 610 阅读 · 0 评论 -
Spring中ref local与ref bean区别
今天在做SSH框架Demo实例时,在ApplicationResources.properties文件时对与感到不解,经查找资料才弄明白,如下: bean id = "userDAOProxy" class = "org.springframework.transaction.interceptor.TransactionProxyFactoryBean" >转载 2014-04-30 14:13:56 · 2394 阅读 · 0 评论 -
@Autowired 注释遇到的问题,@Qualifier 帮助解决问题
当候选 Bean 数目不为 1 时的应对方法在默认情况下使用 @Autowired 注释进行自动注入时,Spring 容器中匹配的候选 Bean 数目必须有且仅有一个。当找不到一个匹配的 Bean 时,Spring 容器将抛出BeanCreationException 异常,并指出必须至少拥有一个匹配的 Bean。我们可以来做一个实验:清单 10. 候选 Bean 数目为 0转载 2014-04-30 14:06:37 · 621 阅读 · 0 评论 -
修改HttpServletRequest的参数【转】
当我们在做web应用的时候都会处理客户端提交到服务器的数据,如去除前后空格,一些非常字符,SQL注入类似的东西,在这里我主要说前后空格我是怎么来解决的,其它也都可以照此方法快速、方便、有效的解决,但是我一般对于非法字符,都是采用了标签来解决它的,并没有使用Filter转义掉(纯属个人解决办法)。 去除前后空格看似非常简单的事,但是有许多人可能就是因为这一个小问题,折磨自己半天,客户端转载 2014-03-19 10:27:00 · 8041 阅读 · 0 评论 -
JAVA学习(七)__Spring的@Autowired注入规则
@Autowired 默认是按照byType进行注入的,但是当byType方式找到了多个符合的bean,又是怎么处理的?经过一些代码的测试,我发现,Autowired默认先按byType,如果发现找到多个bean,则,又按照byName方式比对,如果还有多个,则报出异常。例子:@Autowiredprivate ExamUserMapper examUser转载 2014-04-04 12:03:09 · 516 阅读 · 0 评论 -
RegexpMethodPointcutAdvisor和NameMatchMethodPointcutAdvisor的区别
Spring AOP中有两个PointcutAdvisor——RegexpMethodPointcutAdvisor和NameMatchMethodPointcutAdvisor,它们都在org.springframework.aop.support包中,都可以过滤要拦截的方法。配置方法也大致相同,其中一个最主要的区别是——RegexpMethodPointcutAdvisor:需要加上完转载 2014-06-25 10:11:27 · 1315 阅读 · 0 评论 -
socket中的短连接与长连接
TCP连接简介当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的经典的三次握手示意图:经典的四次握手关闭图: 转载 2014-05-23 14:37:59 · 549 阅读 · 0 评论 -
Hibernate 所有缓存机制详解
hibernate提供的一级缓存hibernate是一个线程对应一个session,一个线程可以看成一个用户。也就是说session级缓存(一级缓存)只能给一个线程用,别的线程用不了,一级缓存就是和线程绑定了。hibernate一级缓存生命周期很短,和session生命周期一样,一级缓存也称session级的缓存或事务级缓存。如果tb事务提交或回滚了,我们称sessio转载 2014-02-18 11:47:47 · 479 阅读 · 0 评论 -
java动态代理笔录
大家都清楚Spring的AOP方面工作是很优秀,但是其内在的基础的东西,还是有一大部分不太了解的,其AOP大量用了ThreadLocal,这一个在前面已做了介绍了,还有一个比较重要的怎样用动态代理组装成AOP. 说到动态代理,有两种情况,第一种是有接口的情况下,你可以选择为jdk自带的动态代理的方式来编写程序,但你想要为一个实在的类编写动态代理的方式的话,这时候就必须选择一些开源的li转载 2013-07-16 11:08:39 · 502 阅读 · 0 评论 -
ThreadLocal浅解
如果有看到spring的一些源码的同学都知道,ThreadLocal对象在spring几乎在每一个重要的类的都存在其身影。到底ThreadLocal是有什么用的呢,让我们来揭开其面纱吧。 假如某一个对象是非线程安全的,在多线程的环境下,对对象的访问则须采用synchronized或lock/unlock进行线程同步,采用这样的方法限制了并发的访问,会带来比较大的性能损失.当然,我们可以转载 2013-07-15 17:18:34 · 542 阅读 · 0 评论 -
并发程序设计-java.util.concurrent介绍
java.util.concurrent 包含许多线程安全、测试良好、高性能的并发构建块。不客气地说,创建 java.util.concurrent 的目的就是要实现 Collection 框架对数据结构所执行的并发操作。通过提供一组可靠的、高性能并发构建块,开发人员可以提高并发类的线程安全、可伸缩性、性能、可读性和可靠性。如果一些类名看起来相似,可能是因为 java.util.concu转载 2013-07-16 17:13:38 · 749 阅读 · 0 评论 -
基于NIO 的轻量级高性能的websocket服务器
【案例】由于遇到一个实时采集股指,并把股指的实时数据在手机,平板电脑(股指数据采用的html展示)上展示给读者;研究了使用ajax轮询请求数据,发现给服务器构成的压力比较大,于是决定想想其他的方法,后来发现html5的websocket可以保持与服务器的连接,所以可实现服务器往页面推送股指数据。因为在之前我使用JAVA 的NIO写了一个专用的http服务器用于公司的产品转载 2013-07-17 08:50:57 · 5257 阅读 · 0 评论 -
【消息队列MQ】各类MQ比较
目前业界有很多MQ产品,我们作如下对比:RabbitMQ是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正是如此,使的它变的非常重量级,更适合于企业级的开发。同时实现了一个经纪人(Broker)构架,这意味着消息在发送给客户端时先在中心队列排队。对路由(Routing),负载均衡(Load balance)或者数据持久转载 2013-07-30 16:57:47 · 671 阅读 · 0 评论 -
linux怎么运行.SH文件
命令行下例如要打开startmysql.sh就直接 sh /目录/目录X界面下就简单了在这个SH文件目录下打开终端 输入 sh startmysql.sh 回车或者对这个文件右键 打开 选择“在终端中打开”就OK转载 2014-02-24 15:17:24 · 790 阅读 · 0 评论 -
JdbcTemplate 使用Mysql 临时表
Mysql 临时表 是Session 级的一个方法中若干个jdbcTemplate.execute 未必是唯一连接的因此关键点在于创建唯一连接的JdbcTemplate[java] view plaincopySingleConnectionDataSource scds = null; try { scds =转载 2014-02-27 14:57:15 · 1587 阅读 · 0 评论 -
cmpp短信开发的一些资料
using System;using System.Collections.Generic;using System.ComponentModel;using System.Net.Sockets;using System.Runtime.InteropServices;using System.Security.Cryptography;using System.Thre转载 2014-05-29 11:20:56 · 1060 阅读 · 0 评论