`
文章列表
默认日期为3/23/2011  改为2010-03-23等 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><titl ...
       Annotation比起xml是各有优势,Annotation用起来就是简洁,少了大量的配置文件。配置文件则很容易的就看出类之间的关联,看xml配置文件即可。但是如果用Annotation,还得看java代码。至于选择使用什么就看自己实际的情 ...
        上面一篇文件讲了BeanDefinition的原理。这一篇讲spring解析xml的时候一些小特点。主要是验证,然后不同的xml名称空间会有不同的类来解析xml。解析xml,spring没有用到第三方库,而是直接使用java的api。这里是和spring解析xml类似的代码。我们从这里开始。 @Test public void testSpringReaderXml() throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factor ...
上一篇有讲解析xml,其中有说道BeanDefinition,但是不够详细。AbstractBeanDefinition是spring配置文件bean标签的实现,了解这个类很关键。源代码如下:   public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccessor implements BeanDefinition, Cloneable { /** * Constant for the default scope name: "", equivalen ...
            AbstractBeanFactory在Spring中占着重要的作用,起着一个承上启下的作用。其中最重要的就是getBean方法了,就是从IOC容器中得到Bean都是在本类启动。其类图结构如下:      这里通过讲解其中重要的几个方法了解spring中BeanFactory的实现。 getMergedLocalBeanDefinition(String beanName)方法:通过beanName得到最有的BeanDefinition。得到BeanDefinition是实例化bean的先决条件。可以看到AbstractAutowireCapableBe ...
          前面有一篇说了spring的解析xml,解析xml最终的作用就是生成BeanDefinition。而实例化的时候会先得到BeanDefinition,而这BeanDefinition已经包含了实例化所有的属性,包括class,property等。详细见前面文章。          解析xml的时候是没有初始化的,而是在第一次getBean的时候才会实例化,当然也可以通过lazy-init这个属性来控制。也就是启动的时候是否加载。一般的情况下是会加载,虽然比较慢。但是比到使用的时候再加载更加的快。因为有些业务需要很快处理完成,而你加载又浪费掉一段时间。所以一般情况下是启动 ...
       最近比较闲,所以想研究下开源的框架,之前研究过基于NIO写的一个分布式框架,但是一直没有空写出心得体会。很快又忘记了,所以想把最近研究的spring开源框架写出来。其实每研究或者说读一个框架,都会受益良 ...
         可能有很多朋友需要把excel文件转换成csv文件或者txt文件,然后导入数据库。一个excel文件可以直接用excel轻松搞定。但是文件很多的情况下,却是比较的麻烦。本人写了一个批处理脚本,可以轻松的搞定多文件转换成csv问。      @echo off for %%f in (%1\*.xls) do ( echo %%~f %2 D:\xls2csv\xls2csv.exe %%~f %2 ) echo convert success   其中有两个参数,一个是excel存的文件目录,一个是要转换成csv的文件编码。细心的朋友有看到有用到xls2cs ...
        经常会有查询数据库最大的记录或者前N条记录,根据某个字段分组。自己整理如下。         数据如下:   id      kc      xh       score   ------  ------  ------  -------- 1       语文      0023          70 2       语文      0024          76 3       语文      0025          68 4       数学      0023          15 5       数学      0024           ...
  ant中project中有一个basedir属性配置,配置目录用户的,如果没有配置,则为编译xml的当前目录。然后如果有一个target中有java,我们知道每个java运行都有一个运行目录,即user.dir,可用System.getProperty("user.dir")或者,然后无论basedir怎么配置,ant中运行的目录也都是ant配置文件的当前目录。也就是basedir怎么配置都对运行目录是没有作用的,运行目录在使用相对路径的时候就起作用了。basedir配置会对带path,location的属性起作用。例如编译的配置文件build.xml中有以下一个ta ...
有时候使用replaceAll方法的时候会抛出PatternSyntaxException异常,通过看源代码发现。然后这个是没有显式的抛出异常,所以使用replaceAll方法的时候,没有try或者throw是完全没有错误的,因为PatternSyntaxException是一个运行时异常,就是只有运行时出错才抛出异常。不能算一个bug,只能是用这个方法的一个小陷阱。       public String replaceAll(String regex, String replacement) { return Pattern.compile(regex).matcher(thi ...
  set SVN_BINDIR=C:\"Program Files"\"VisualSVN Server"\bin set REPOS=%1 set TXN=%2 set s=%SVN_BINDIR%\svnlook log "%REPOS%" -t "%TXN%" for /f "delims=" %%a in ('%s%') do set myvar=%%a set logmess=%myvar% :intercept_left if "%myvar%" ...
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; import java.sql.PreparedStatement; import java.sql.ResultSetMetaData; import java.sql.SQLExcepti ...
很多时候会用到DOS批处理执行有些命令,但是如果命令目录中有空格,是一件很麻烦的事情。例如命令汇总有这个目录C:\Program Files (x86)\,则一般会报'C:\Program' 不是内部或外部命令,也不是可运行的程序。在DOS中都加一个"",就可以了。但是如果是在批处理文件中还是不行,则分别用"",把带有空格的目录括起来。"\"就无须用,例如下面这个 set SVN_BINDIR=C:\"Program Files (x86)"\"VisualSVN Server"\bin。则批 ...
正则表达式是一个很好的东西,要使用好得好好研究。最近对find和group方法比较模糊。经研究记录下笔记。 调用group()方法前,都前要用find方法。否则报错。其实看Matcher类可以看到其中有一个int[] groups; 其实这个数组就是保存group匹配的数据。首先要知道一个正则表达式之后有几组。可通过groupCount()方法得到,其实很简单,是有几对大括号就有几组。例如: @Test public void testLookAhead() { Pattern p = Pattern.compile("(\\w{2})(aa)"); ...
Global site tag (gtag.js) - Google Analytics