- 浏览: 459042 次
- 性别:
- 来自: Runner
最新评论
-
BigHanson:
写得非常棒,醍醐灌顶 可以转发吗
spring security验证流程 -
背后的光:
spring security验证流程 -
hanlongjie:
commons-lang(time应用) -
litianpeng:
虽然是2009年写的帖子 不过还是要请问一下先生 我按照你的 ...
Ajax Fancy Capcha -
蔡小鱼:
ibatis总结
文章列表
在系统中,由于有些属性不是固定的,比如数据库用户名与密码,所以需要相应的配置文件。而
配置文件有两件方式,一种是属性properties文件,一种是XML文件。
读取属性文件的方式在较早的配置文件中比较流行:
Properties bundle = new Properties();
bundle.load(getClass().getResourceAsStream("messages.properties"))
assertThat(bundle.getProperty("first.name"), is("Arthur" ...
- 2009-10-27 14:52
- 浏览 1131
- 评论(0)
Junit4更新的版本很多,现在已经更新到4.7了。发生的变化也相当的明显,为了更好的使用测试,有必要去学习一下其新的功能。
总的来说,其变化还是比较多的,下面列举一些改变之处:
1. 测试由原来的命名模式改变注解,即testXXX变为@Test。其中@Test还提供了额外的属性。如expected,表示期望抛出的异常,用法如下:
@Test(expected = NullPointerException.class)
public void unsupportedDBCheck() {
throw new NullPointerException();
}
由于上面得到 ...
上一次介绍了一下DbUtils组件的基本用法,其中最值得关注的就是QueryRunner对象,这应该是整个DbUtils组件最重要的一个组件,因此下面将详细的介绍其功能。
DbUtils的方法并不多,除前面已经介绍的query对象外,还有两个比较重要的方法,分别是fillStatement与 batch方法,可以看出这两个方法都与Statement相关。
batch方法的参数形式为:
batch(String sql, Object[][] params)
上面的方法执行一个批处理操作,其中params表示参数替换的数组,下面给出其简单用法:
............. ...
- 2009-10-20 12:36
- 浏览 6711
- 评论(1)
以前用惯了Hibernate,一下不用很不习惯,因为Hibernate的确为程序员省下了很多事。很多小的项目都在用Hibernate,暂且不说有没有跨数据库的特性,也不说对象关系映射是否重要,基本的SQL 动作处理也是一件很麻烦的事。
总结一下,至少有三方面比较麻烦:
1. 异常处理。如果直接用JDBC,几乎每个操作都要抛出几个异常,因此代码看起来很不优雅。
2. 创建的对象很多。大多数操作都要显示的建立statement,ResultSet对象,致使代码看起 来很长,其实这些都可以再封装。
3. JavaBean与ResultSet对象的转化。这是一个很枯燥的工作,而且这样的工作还会重复做很多 ...
- 2009-10-20 03:16
- 浏览 2884
- 评论(0)
JAVA的时间日期处理一直是一个比较复杂的问题,可以说大多数程序员都不能得心应手的处理这些问题,就算通过commons.lang.time包简化了,使用起来仍然有些麻烦,个人认为这可能是最复杂的一个子包。不过相对原始的JDK API,还是 ...
- 2009-10-18 13:54
- 浏览 10722
- 评论(1)
使用commons-lang的基本原则上就是要明折哪些类新版本的JDK中已经有相似的功能,而哪些类还不能由JDK替代,虽然本着尽量使用新版API的原则,但的确有些类是不能由新版API替代的。其中有一些类很有用处,下面将重点介绍本人认为很有用而且新版API不能替代的工具类。
Validate :这个类可能是最简单的了,但是这种思想是很值得学习的。在写方法的时候经常会遇见验证对象是否为空的问题,这样可以增加程序的可调试性。如:
public static void escapeHtml(Writer writer, String string) throws IOException {
...
- 2009-10-18 13:42
- 浏览 2816
- 评论(0)
在网上找了一下,并没有发现关于commons-lang的详细使用方法,最近也有空,所以仔细的学习了一下,发在网上,也可供大家参考。
builder包的作用主要是为了帮助程序员创建一致的equals(Object), toString(), hashCode(), compareTo(Object) 方法。说实话这些方法如果完全由程序员自己来实现的确有些困难,有很多细节需要注意,但现实通过builder包提供的帮助,实现起来要容易得多。它包括以下几个类:
CompareToBuilder
EqualsBuilder
HashCodeBuilder
ReflectionToStringBui ...
- 2009-10-18 13:25
- 浏览 2281
- 评论(0)
突然想用一下c3p0连接池,在网上找了一下,要么根本不能用,要么就是达不到自己的要求。
不过后来想起以前有人写过这样的一个类,于是拿出来试了一下,果然能用,而且功能也非常完善。
环境:
eclipse3.5
mysql-connector-java-5.1.7-bin.jar
c3p0-0.9.1.2.jar
commons-logging-1.1.1.jar
JAVA类代码如下:
public class ConnectionPool {
public static void cleanUp(Connection con) {
_instance._cleanUp( ...
- 2009-10-18 03:54
- 浏览 2351
- 评论(1)
开发环境:
JDK:jdk1.5.0_16
服务器:jboss-4.2.2.GA
JWS面向服务的开发有三中方式,从JAVA到WSDL方式是最简单的,利用JAX-WS的注解,在JAVA类上进行标识,然后以Servlet的形式发布,服务器在解析的过程中自动生成WSDL。
从WSDL到JAVA也比较简单,只是不太常用,不过还是有必要了解到底是怎么回事。
JBOSS自带了一个工具来实现此功能,ANT任务使用的类为:org.jboss.wsf.spi.tools.ant.WSConsumeTask,它为调用wsconsume命令
先看build.xml
<?xml version=&q ...
- 2009-06-21 02:51
- 浏览 9898
- 评论(0)
为了减少代码中的NullPointerExceptions,可以用@Nullable对参数进行约束:
其实并不是异常就不存在,只是把它放在统一的地方进行管理了。
示例代码如下:
@Test
public void testCheckNotNull() {
getUser("",null);
}
public void getUser(String username,@Nullable String address){
Preconditions.checkNotNull(username,"username");
...
- 2009-05-27 21:32
- 浏览 1978
- 评论(1)
关于Guice的单例,自己一直都不是很明白,虽然其用户文档也看过几遍了,可能是本人太愚昧的缘故,一直很迷惑。今天又花了点时间试了一下,基本明白是怎么会事了。
要保证注入的实例是同一个对象,那么第二次注入时就不能再调用构造器了。
实现的方式用几种:
this.bind(Service.class).to(ServiceImp.class).in(Scopes.SINGLETON);
this.bind(Service.class).to(ServiceImp.class).asEagerSingleton()
this.bind(Service.class).to(ServiceI ...
- 2009-05-27 20:53
- 浏览 3789
- 评论(0)
由于Spring太过庞大,所以本人也一直都不太喜欢,当guice1出来时,就关注过一阵子,但始终没有行动去试用,听说2.0出来了,最近闲着也没事,就去试用了一下,单从IOC方面来说,做得的确比较出色。
于是做了一个例子,把常用的功能都试了一下,其中需要的JAR包只有两个:
aopalliance.jar
guice-2.0.jar
下面是例子的代码:
public interface Service {
public void sayHello();
}
public class ServiceImp implements Service {
public void sa ...
- 2009-05-22 18:04
- 浏览 1819
- 评论(0)
DomainDrivenDesign(英文版)
- 博客分类:
- 常用
找了很久,终于把这本书找到了。
其实仔细看了一下,中文版翻译得还是挺准确的,不过有时候感觉还是不太放心,所以在这里把英文版也保存好。
- 2009-05-13 20:46
- 浏览 1146
- 评论(0)
事务分本地事务和分布式事务,本地事务相对简单,这里讨论一下分布事事务。
分布式环境如何管理涉及一个以上资源的事务呢?主要是通过被称为两阶段
提交(two-phase commit)来实现的。在执行一个以上的数据库操作时,如果第一个数据库操作成功,第二个数据库操作失败,要回滚第一个操作是非常困难的。所以在提交事务之前,两阶段提交协议会询问每个资源管理器的当前事务能否提交成功,如果任何一个资源管理器表示不能提交事务,那么就回滚整个事务。
EJB有两种使用事务的方式。
第一种方式通过容器管理的事务,叫CMT,另一种通过bean管理的事务叫BMT。
在CMT中,容器自动提供事务的开始、提交和回滚。总 ...
- 2009-03-17 00:41
- 浏览 17621
- 评论(0)