Java中的静态块 - 最佳实践

时间:2014-02-13 16:02:54

标签: java static ibatis

我的java程序中有静态块,并且需要将相同的代码放在几个java文件中。是否存在避免复制的最佳实践?将这段代码粘贴在多个文件中?

static Reader reader;
static SqlMapClient smc;


static {

    try {

        if(reader==null){
        reader = Resources.getResourceAsReader("sqlmapconfig.xml");
        smc = SqlMapClientBuilder.buildSqlMapClient(reader);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

2 个答案:

答案 0 :(得分:1)

您可以创建一个类,在其中编写所有静态方法。所以你对每个静态方法都有一个中心位置。 例如:

public class AllMyMethod {

    public static myMethod() {

    try {
        if(reader==null){
            reader = Resources.getResourceAsReader("sqlmapconfig.xml");
            smc = SqlMapClientBuilder.buildSqlMapClient(reader);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static myMethod2() {

    }

.......

}

然后你做:AllMyMethod.myMethod();

例如,您可以使用staticfinal变量执行相同的操作...

答案 1 :(得分:1)

如果您真的想要“最佳实践”,那就是使用IOC容器为您注入这些东西。 IOC容器可以读取配置文件并为您创建SqlMapClient并将其注入您的DAO。

曾经有一个名为Ibatis-DAO的项目处理过这种事情,当Clinton Begin弃用它时,他特别建议人们使用Spring。