- 博客(42)
- 收藏
- 关注
原创 spring4.0源码分析之注解━━━Annotation
Annotation比起xml是各有优势,Annotation用起来就是简洁,少了大量的配置文件。配置文件则很容易的就看出类之间的关联,看xml配置文件即可。但是如果用Annotation,还得看java代码。至于选择使用什么就看自己实际的情况而定。这里讲解spring在用Annotation的时候,是怎么读取Annotation,又像IOC中注入BeanDefinition的。...
2013-08-08 10:42:21
256
原创 spring4.0源码分析之━━━DefaultNamespaceHandlerResolver类
之所以讲解DefaultNamespaceHandlerResolver类,是因为这个类跟解析xml的时候有着莫大的关联。并且从中也可以学到一些构建代码方法,先看一下我们的配置文件,一般我们会以这样的开头<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3...
2013-08-07 22:25:10
177
原创 spring4.0源码分析解析xml补充━━━(PluggableSchemaResolver类)
上面一篇文件讲了BeanDefinition的原理。这一篇讲spring解析xml的时候一些小特点。主要是验证,然后不同的xml名称空间会有不同的类来解析xml。解析xml,spring没有用到第三方库,而是直接使用java的api。这里是和spring解析xml类似的代码。我们从这里开始。@Testpublic void testSpringReaderXml() t...
2013-08-06 08:37:52
372
原创 spring4.0源码分析━━━(AbstractBeanDefinition类)
上一篇有讲解析xml,其中有说道BeanDefinition,但是不够详细。AbstractBeanDefinition是spring配置文件bean标签的实现,了解这个类很关键。源代码如下: public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccessor implements ...
2013-08-05 11:17:32
182
spring4.0源码分析━━━实例化Bean(AbstractAutowireCapableBeanFactory类)
实例化bean和依赖注入是在AbstractBeanFactory的入口,但是实际还是在AbstractAutowireCapableBeanFactory这个类中实现。bean实例化的时候有两种基本的方式,就是一用默认构造函数,一是在xml配置自己的可带参数的构造函数,这两种方式在spring中实例的流程是不一样的,对应的BeanDefinition的数据也是不同...
2013-07-31 14:41:58
233
原创 spring4.0源码分析━━━(AbstractBeanFactory类分析)
AbstractBeanFactory在Spring中占着重要的作用,起着一个承上启下的作用。其中最重要的就是getBean方法了,就是从IOC容器中得到Bean都是在本类启动。其类图结构如下: 这里通过讲解其中重要的几个方法了解spring中BeanFactory的实现。getMergedLocalBeanDefinition(String ...
2013-07-31 12:07:20
344
原创 spring4.0源码分析━━━(AOP实现)
AOP的概念 AOP为Aspect Oriented Programming的缩写,意为:面向切面编程(也叫面向方面)。这就让一些问题很简单化了,例如:开始我们实现了一些逻辑并上线了,现在客户又来了一个新的需求。要在每次交易之前统计下,或者记录下他们的交易简单资料。而你发现你其他模块可能正好有这部分的功能。那AOP就可以用得上了,使用AOP就可以在不修改源代码的情况...
2013-07-30 09:51:26
107
spring4.0源码分析━━━(实例化bean)
前面有一篇说了spring的解析xml,解析xml最终的作用就是生成BeanDefinition。而实例化的时候会先得到BeanDefinition,而这BeanDefinition已经包含了实例化所有的属性,包括class,property等。详细见前面文章。 解析xml的时候是没有初始化的,而是在第一次getBean的时候才会实例化,当然也可以通过l...
2013-07-29 09:21:47
196
spring4.0源码分析━━━(解析xml)
最近比较闲,所以想研究下开源的框架,之前研究过基于NIO写的一个分布式框架,但是一直没有空写出心得体会。很快又忘记了,所以想把最近研究的spring开源框架写出来。其实每研究或者说读一个框架,都会受益良多。对自己的技术有很大的提升。 今天先写spring的IOC。IOC的概念控制反转,我的体会是spring通过xml的配置,把一些属性的实例化本来是由我们自己程序做...
2013-07-26 16:34:58
166
原创 批量把excel文件转换成csv文件
可能有很多朋友需要把excel文件转换成csv文件或者txt文件,然后导入数据库。一个excel文件可以直接用excel轻松搞定。但是文件很多的情况下,却是比较的麻烦。本人写了一个批处理脚本,可以轻松的搞定多文件转换成csv问。 @echo offfor %%f in (%1\*.xls) do (echo %%~f %2D:\xls2csv\xls2...
2013-04-28 23:56:52
1685
查出某个字段的最大记录和前N条记录
经常会有查询数据库最大的记录或者前N条记录,根据某个字段分组。自己整理如下。 数据如下: id kc xh score ------ ------ ------ --------1 语文 0023 702 语文 0024 7...
2013-04-09 11:52:58
258
原创 ant发布路径问题
ant中project中有一个basedir属性配置,配置目录用户的,如果没有配置,则为编译xml的当前目录。然后如果有一个target中有java,我们知道每个java运行都有一个运行目录,即user.dir,可用System.getProperty("user.dir")或者,然后无论basedir怎么配置,ant中运行的目录也都是ant配置文件的当前目录。也就是basedir怎么配置...
2012-11-26 16:08:23
182
原创 replaceAll抛出PatternSyntaxException异常的小陷阱
有时候使用replaceAll方法的时候会抛出PatternSyntaxException异常,通过看源代码发现。然后这个是没有显式的抛出异常,所以使用replaceAll方法的时候,没有try或者throw是完全没有错误的,因为PatternSyntaxException是一个运行时异常,就是只有运行时出错才抛出异常。不能算一个bug,只能是用这个方法的一个小陷阱。 pub...
2012-11-12 23:00:47
463
原创 SVN强制提交大于5个字符的日志,并且去掉前后空格
set SVN_BINDIR=C:\"Program Files"\"VisualSVN Server"\binset REPOS=%1set TXN=%2set s=%SVN_BINDIR%\svnlook log "%REPOS%" -t "%TXN%"for /f "delims=" %%a in ('%s%') do set myvar=%%aset logmes...
2012-11-12 09:10:50
419
原创 JAVA根据数据库表结构生成javabean工具类
package com.zzx.study.jdbc;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter;import java.sql.Connection;import java.sql.DriverManager...
2012-11-11 01:12:27
301
1
原创 DOS批处理命令目录中带空格怎么办
很多时候会用到DOS批处理执行有些命令,但是如果命令目录中有空格,是一件很麻烦的事情。例如命令汇总有这个目录C:\Program Files (x86)\,则一般会报'C:\Program' 不是内部或外部命令,也不是可运行的程序。在DOS中都加一个"",就可以了。但是如果是在批处理文件中还是不行,则分别用"",把带有空格的目录括起来。"\"就无须用,例如下面这个set SVN_BINDIR...
2012-11-10 22:37:06
2601
原创 正则表达式find和group详解
正则表达式是一个很好的东西,要使用好得好好研究。最近对find和group方法比较模糊。经研究记录下笔记。 调用group()方法前,都前要用find方法。否则报错。其实看Matcher类可以看到其中有一个int[] groups;其实这个数组就是保存group匹配的数据。首先要知道一个正则表达式之后有几组。可通过groupCount()方法得到,其实很简单,是有几对大括号就有几组。例如...
2012-11-01 20:57:00
1231
原创 javascript代码自动补全插件
firebug是个很牛的插件,对web开发者来说。前面也有篇文章说道firebug的用法。http://zzx19452008-163-com.iteye.com/blog/1160631 这里再介绍一个插件,我们到chrome浏览器的console中输入javascript代码时会发现它会帮我们做好多事,代码提示是一个很好的事情。但是firebug一直没有,出现了firebu...
2011-09-17 01:17:24
1584
原创 javascript正则表达式的反向引用
正则表达式中用"()"括起来的称为分组,例如var patt=/(\w)(\d)/这里就用了分组。有多少组呢?2组。反向引用是按照从左到右遇到的左括号字符的顺序进行编号和创建的。所以是两组。看下面的例子var str1="1d2a2"var patt =/(\w)(\d)/console.log(str1.match(patt))得到结果为:["d2", "d",...
2011-09-04 14:10:40
169
原创 myeclipse反编译插件安装和JAVA反编译工具
很多情况下我们想知道源码,但是又木有源码的情况下怎么办呢?不急,这里提供一个很好的工具,和myeclipse的反编译JAVA插件的安装。安装过程如下: 安装插件第一步,不说了 2. 出现如下name输入:JD-Eclipse。网站输入: http://java.decompiler.free.fr/jd-eclipse/update...
2011-09-02 20:37:35
238
原创 java正则表达式简介和split详细介绍
java正则表达式Java的正则表达式是由java.util.regex的Pattern和Matcher类实现的。Pattern对象表示经编译的正则表达式。静态的compile( )方法负责将表示正则表达式的字符串编译成Pattern对象。只要给Pattern的matcher( )方法送一个字符串就能获取一个Matcher对象。此外,Pattern还有一个能快速判断能否在input里面找...
2011-09-01 20:14:05
139
原创 javascript正则表达式贪婪和惰性量词详解和实例
正则表达式中量词有下面六种:?表示0次或1次* 表示0次或0次以上+ 表示1次活1次以上{n} 表示正好n次{n,m} 表示n-m次{n,}表示n次以上 简单的应用上面的还是很简单的。例如:var str = "bad bbad";var patt = /b?a\w*/g;console.log(str.match(patt)) 得到...
2011-09-01 00:42:28
151
原创 Ext操作dom和Jquery操作dom详细介绍
一:Ext操作Dom 可以通过Id获取Ext.Element对象 var aaa = Ext.get("input"); //input为id var bbb =Ext.fly("input"); //只操作一次建议用这个 可以通过下面方式把Ext.Element对象转换成dom对象 var p...
2011-08-30 02:10:20
199
原创 javascript正则表达式多行匹配和RegExp理解
一:多行匹配很多时候我们可以通过边界符号(^,$,\b,\B)达到我们匹配某些字符串的目的。但是如果字符串有多行呢,这个其实很简单了,只需加个m就指定为多行匹配了。实例: var str = "first second\nthird fourth\nfifth sixth";var patt = /(\w+)$/gmconsole.log(str.match(patt));...
2011-08-29 17:50:40
516
原创 javascript非捕获性分组和前瞻
非捕获性分组:前面讲了创建反向引用的分组,这种分组一般称为捕获性分组。同时也存在一种非捕获性分组。它不会创建反向引用,因为在比较长的正则表达式中,分组多了会很影响效率。所以使用非捕获性分组。创建非捕获性分组是这样的(?:开始然后写表达式。例如 var str = "#123231312";var patt = /#(?:\d)/console.log(patt.test(s...
2011-08-29 17:09:53
153
原创 javascript中RegExp的exec方法和String的match方法
正则表达式是一个强大的东西,以前一直对这里比较模糊,这里写下理解。 RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具。下面是两种创建方式var patt =/pattern/attributes参数 attributes 是一个可选的字符串,包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。ECMAScript ...
2011-08-29 16:37:21
154
原创 JqueryEasyUI选项卡-Tabs的使用,Tabs使用经典错误的解决方法
最近在学习jquery框架,感激比较容易,也比较实用,虽然没有ext那么强大,但是一般的需求还是能满足。并且很好的一点是,jquery在众多人的关注努力下每天都在进步。以前的UI设计也不是很好,但是出现了JqueryEasyUI1.2之后,发现和ext越来越接近了。呵呵,真的很强大,相信这个UI会越来越好,也会有越来越多的人关注这个框架,这个UI。 以下是easyUI1.2的tabs...
2011-08-28 12:46:51
246
原创 myeclipse快捷键大全
Eclipse 常用快捷键Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发 效率。Eclipse中有如下一些和编辑相关的快捷键。 1. 【ALT+/】 此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方 法和属性名称犯愁,当记不全类、方法和属性的名字时,多体验一下【ALT+/ 】快捷键带来的好处吧。...
2011-08-27 14:00:13
88
原创 myeclipse自动提示设置,设置后输入所有字母都可以提示
1.打开MyEclipse 6.0.1,然后“window”→“Preferences” 2.选择“java”,展开,“Editor”,选择“Content Assist”。 3.选择“Content Assist”,然后看到右边,右边的“Auto-Activation”下面的“AutoActivation triggers for java”这个选项。其实就是指触发代码提示...
2011-08-27 13:53:13
177
原创 javascript对象继承的几种方法
前面一篇文章有降到javascript对象的创建,http://zzx19452008-163-com.iteye.com/admin/blogs/1157889 这里继续讲javascript中对象的继承的实现。javascript中对象的继承有5种一:对象冒充 所谓对象冒充,就是新的类冒充旧的类(旧的类必须采用构造函数方式),从而达到继承目的. eg.1...
2011-08-25 15:54:24
125
原创 javascript创建对象的几种方法
面向对象的语言大都有一个类的概念,通过类可以创建多个具有相同方法和属性的对象。虽然从技术上讲,javascript是一门面向对象的语言,但是javascript没有类的概念,一切都是对象。任意一个对象都是某种引用类型的实例,都是通过已有的引用类型创建;引用类型可以是原生的,也可以是自定义的。原生的引用类型有:Object、Array、Data、RegExp、Function。 !引用...
2011-08-25 15:03:07
147
原创 javascript函数&函数执行环境
一:javascript函数javascript的Function也是一种对象,它的作用有三个:1:普通的逻辑代码容器2:对象的方法3:构造函数 创建函数也有三种方法:1:function语句定义函数(逻辑代码容器,计算两个数的和)。也称定义式; function fun(x,y){ alert("arguments"+arguments[0]+" "+...
2011-08-25 01:35:12
154
原创 class.getClassLoader()路径问题
像通常的jdbc或者hibernate等配置文件时,我们要获得这些配置文件里的信息。我们一般用下面这个方法:ClassName.class.getClassLoader().getResourceAsStream(file)这样就可以获得一个输入流,我们则可以通过这个输入流获得这个文件的信息了,但是如果你的文件放在包下面,则你须加上包的路径:如下格式net/sf/cindy/example/j...
2011-07-26 22:36:46
229
原创 Mysql更新数据库多列中的共同字符串
Mysql数据库中substring和concat函数,其中oracle和sqlserver中也有这种函数。这两个函数加起来还是可以做很多事情的。例如,有一个表中有一列MENU_TYPE其中有这样的三条数据:一:/sys_privilege/menuAction_findSonMenu.action二:/sys_privilege/menuAction_findSonMenu.action...
2011-03-23 20:55:11
110
原创 JqueryEasyUI中combotree应用
JqueryEasyUI是一个不错的UI设计库,包含了很多。其中有用到combotree,这是对html标签中select的更好,是一个下拉树,显示效果比较好,看起来层次清晰,并且不是很难。图片效果如下: [imgr]1[/imgr][imgr]2[/imgr]查看JqueryEasyUI里的demo得到要到达这个效果其实只是一句话可以搞定,<input name="fo...
2011-03-22 01:39:36
164
JSON数据形式工具类
WEB开发中经常要用到JSON数据形式,如何把一个类转换成一个JSON数据形式是经常会遇到的问题。特别见到的例子是前台数据的展现要用到JSON数据形式。这里将如何把一个来转换成JSON数据形式。常用到json-lib.jar包中的JsonConfig类、JSONArray和JSONObject。当然我们可以进一步对这些进行封装到达更好的效果这里有一个JsonConfig经常是起到一个过滤器...
2011-03-22 01:07:45
98
Jquery简单Ajax的封装,简化开发
开发过程中经常要用到Ajax从后天返回一些数据,从官网API上学习得,可以这样使用:$.ajax({ url:"/school_class/studentInfoAction_validatorCode.action?studentInfoVo.studentNo="+$("#studentNo").val()+"&studentInfoVo.studentinfo...
2011-02-23 16:11:39
92
原创 Jquery学习appendTo和after区别和应用
appendTo(content)解释为:把所有匹配的元素追加到另一个指定的元素元素集合中。实际上,使用这个方法是颠倒了常规的$(A).append(B)的操作,即不是把B追加到A中,而是把A追加到B中。 Api上的例子:HTML 代码:<p>I would like to say: </p><div></div><di...
2011-02-23 15:50:00
177
Jquery修改时下拉框级联初始化问题
做CRUD时,点击一条数据进行修改。如果数据中有下拉框,怎样初始化是一个问题。以下是我的办法:<select id="yearId" name="studentInfoVo.yearId" class="easyui-validatebox" validType="requiredSelect['-1','请选择学年度']" onchange="selectGrade(this);"&
2011-02-23 15:36:19
219
原创 Jquery+Ajax+struts2+乱码问题
当Jquery和struts2同时使用时一个巧妙解决乱码的问题,struts2有自带一个Encoding的Filter能解决乱码问题,当然有中文的时候,form要用post请求。具体配置如下:<constant name="struts.i18n.encoding" value="UTF-8" />这个要struts2 的2.1.8版本才能使用,但是2.1.6也可以使用,但...
2011-01-25 16:47:28
152
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人