ThreadLocal俗称线程变量,是为解决多线程程序的并发问题而提出的。与一般变量的区别在于它的生命周期是线程范围。 如果把ThreadLocal申明成静态static类型,那会怎么样呢,是否会影响它原来的作用域? 看下面测试代码: public class ThreadLocalTest { private static Thr
1年前发布 8732阅读 评论
Photoshop是强大的图形处理软件,在前端开发领域中,主要用于页面的图形设计与网站UI切图。 目前最新版为Adobe Photoshop CS6 在CS6中整合了其Adobe专有的 Mercury图像引擎,通过显卡核心GPU提供了强悍的图片编辑能力。 但是相对于CS5来说,操作上发生了一定程度的变化,所以
1年前发布 5375阅读 评论
现在的很多网站,在你登录时一般都会有个复选框让你选择是否记录你的登录状态,当勾选时,下次再访问该网站就会为你自动登录,免去再次输入账号密码的麻烦,带来一定的便利性。我们要做的就是实现这个功能。 先来看看它的几种实现方式: [1] 使用Cookie来保存,这是最常见的方
1年前发布 19185阅读 评论
自己搭建了服务器,nginx+tomcat,一切都正常,但是在首次登录成功的时候,会出现找不到页面的错误,再次刷新则正常。通过分析后发现当登录成功时nginx会在url末尾加上一个sessionid=xxxxxx这样的参数,而登录成功后首页是由tomcat来解析获取数据的,这个参数导致该url不再符
1年前发布 9388阅读 评论
1. 显示环境变量HOME $ echo $HOME /home/redbooks 2. 设置一个新的环境变量hello $ export HELLO="Hello!" $ echo $HELLO Hello! 3. 使用env命令显示所有的环境变量 $ env HOSTNAME=redbooks.safe.org PVM_RSH=/usr/bin/rsh Shell=/bin/bash TERM=xterm HISTSIZE=1
1年前发布 7324阅读 评论
一般来说,linux服务器大多是通过ssh客户端来进行远程的登陆和管理的,使用ssh登陆linux主机以后,如何能够快速的和本地机器进行文件的交互呢,也就是上传和下载文件到服务器和本地; ?? 与ssh有关的两个命令可以提供很方便的操作: ?? sz:将选定的文件发送(send)到本地机
1年前发布 5872阅读 评论
常用模拟 有时候,需要通过模拟用户操作,来达到单击的效果。例如在用户进入页面后,就触发click事件,而不需要用户去主动单击。 在JQuery中,可以使用trigger()方法完成模拟操作。例如可以使用下面的代码来触发id为btn的按钮的click事件。 $('#btn').trigger("click&quo
1年前发布 4050阅读 评论
前面,我们已经准备好了一切,配置信息、任务信息、数据库查询出来的表信息等等都已经拿到手了,接下来就是根据这些信息来进行代码生成了。 代码生成说白了就是弄个模板,字符串的替换而已,无非就是怎么样才能实现的比较优雅,在这里我们使用了velocity,可以省下大量繁琐的
1年前发布 6125阅读 评论
数据库信息的查询,无非就是查询表拥有的列,列的备注以及表的主键,实现起来十分简单。 这里主要考虑的就是,如何能有一个好的扩展,在更换数据库的时候可以方便的切换而不用修改源代码。 我们先来定义一个接口,这个接口只有一个方法,就是查询表的列信息: /** * 数据库
1年前发布 4785阅读 评论
今天更新项目,在用jboss启动项目时突然报出了 XML document structures must start and end within the same entity.的错误,项目是spring + mybatis配置,查看报错的xml文件,发现文件本身并没有错误,但是有很多include标签添加了其它的xml,一个个排查,发现用 <![CDAT
1年前发布 10912阅读 评论
前面已经解析完了配置文件,有了一切我们想要的信息,接下来就是代码生成了。 假设我们直接去编写代码生成类,有10张表的代码需要生成,那这个类就要负责所有的工作:数据库连接的打开、关闭,表信息的查询,再是代码的生成等等,这样实现起来是不是会很麻烦?我完成了实体类m
1年前发布 5013阅读 评论
今天从公司svn服务器下载项目,是一个maven工程,在导入eclipse之后出现An internal error occurred during: "Updating Maven Project". Unsupported IClasspathEntry kind=4的问题。 在网上查了一下了解到,是因为eclipse使用的m2e插件有一个前提是使用前不允许命
1年前发布 10758阅读 评论
在开始具体的编码之前先来看一下项目的主要结构图: 代码的主要结构如上图所示,下面对每一部分逐一介绍: EasyCodeStarter 工具启动的入口,main方法声明类,主要调用XmlParser解析配置文件,GenerationOrganizer进行代码生成。 XmlParser 配置文件的解析类,所有解析后的信
1年前发布 5018阅读 评论
高内聚(High Cohesion) 高内聚是另一个普遍用来评判软件设计质量的标准。内聚,更为专业的说法叫功能内聚,是对软件系统中元素职责相关性和集中度的度量。如果元素具有高度相关的职责,除了这些职责内的任务,没有其它过多的工作,那么该元素就具有高内聚性,反之则为低内聚
1年前发布 8057阅读 评论
在实际的项目开发中,有很大一部分的时间都在做一些重复的工作,比如与数据库表对应的实体类的编写,普遍使用的dao、service的基本增删改查操作等等,因此,编写一个代码自动生成工具可以大大的提高工作效率,虽然一些框架和开发工具都附带有代码生成的功能,但是比较单一,一
1年前发布 8073阅读 评论
1. 关于 Velocity 用户指南旨在帮助页面设计者和内容提供者了解Velocity 和其简单而又强大的脚本语言(Velocity Template Language (VTL))。本指南中有很多示例展示了用Velocity来讲动态内容嵌入到网站之中,但是所有的VTL examples 都同演示用于所有的页面和模版。 感谢选择
1年前发布 15111阅读 评论
今天在用jquery实现列表页面的checkbox全选全不选的功能时,发现怎么都获取不到checkbox是否被选中的值,看如下代码: function chkAll(theChk, chkName) { var isChecked = jQuery(theChk).attr("checked"); jQuery("input[name=" + chkName +
1年前发布 6653阅读 评论
在做项目编码时,几乎都不可避免的要用到Redirect跳转并保存其中的参数。例如下面的需求: 在用户的列表页面删除一个用户,在删除后仍停留在列表页面,但是要显示删除成功或者相应的错误信息。 以上这种情况在后台我们一般都分成2个controller,一个删除的controller和一个查
1年前发布 41827阅读 评论
MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑。 MyBatis中用于实现动态SQL的元素主要有: if choose(when,otherwise) trim where set foreach if就是简单的条件判断,利用if语句我们可以实现某些简单的条件选择。先来看如下一个例子
1年前发布 5108阅读 评论
代码注释是一种良好的编程习惯,但是手动添加注释,比较的麻烦。? 在用了一段时间Intellij idea后,里面有一个很好的插件javadoc,可以自动生成类和方法的javadoc注释。 虽然eclipse也自带有一定的添加注释功能,但功能远没有这么强大。 经过一翻搜索之后,发现Eclipse同样有
1年前发布 9471阅读 评论