2017年1月

@Component、@Repository 、@Service三个spring注解的选择

1. @Component为通用注解。我们不知道为那一层时用这个注解。

2. @Repository为持久层组件注解。

3. @Service为业务逻辑层组件注解。

 

1.1 下载,解压

$ wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
$ tar -zxvf zookeeper-3.4.9.tar.gz -C /usr/local/zookeeper-3.4.9

1.2 启动

默认就是单机模式,

$ cp conf/zoo_sample.cfg conf/zoo.cfg 拷贝配置文件保留原有的
$ ./bin/zkServer.sh start

1.3 使用java 客户端连接ZooKeeper

$ ./bin/zkCli.sh -server 127.0.0.1:2181

然后就可以使用了,实际上谈不上安装,只是解压,启动而已另外一篇文章中需要zookeeper作为注册中心的

- 阅读剩余部分 -

Dubbo是什么?

Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。
Dubbo[]是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。

Spring集成

Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。

Zookeeper集成

Dubbo采用全Zookeeper作为注册中心,服务提供者在此发布服务,服务消费者在此获取需要调用的服务。
有三个项目组成dubbo-api,dubbo-server,dubbo-client组成。

- 阅读剩余部分 -

try{

A.close();

B.close();

}catch (

Exception e) {}

建议修改为:

try{

A.close();

}catch (Exception e) {}

try{

B.close();

}catch (Exception e) { }

避免A.close()出现异常导致B.close();资源无法回收

Integer 转为String三种方法有以下三种方法,

Integer obj=1;

1:String.valueOf(obj);

2:obj.toString();

3:""+obj;

我们分别按照以上方法循环执行以上操作,代码如下:
public static void main(String[] args) {
int loopTime = 50000;
Integer i = 0;
long startTime = System.currentTimeMillis();
String str = null;
for (int j = 0; j < loopTime; j++) {
str = String.valueOf(i);
}
System.out.println("String.valueOf():" + (System.currentTimeMillis() - startTime) + "ms");
startTime = System.currentTimeMillis();
for (int j = 0; j < loopTime; j++) {
str = i.toString();
}
System.out.println("Integer.toString():" + (System.currentTimeMillis() - startTime) + "ms");
startTime = System.currentTimeMillis();
for (int j = 0; j < loopTime; j++) {
str = i + "";
}
System.out.println("i + \"\":" + (System.currentTimeMillis() - startTime) + "ms");
}

执行结果如下,基本就在以下结果附近徘徊

String.valueOf():5ms
Integer.toString():2ms
i + "":9ms

可见Integer.toString(),执行时间最短最快,自己在做的过程中很多地方却用了第三种方式。我们看看String.valueOf()的源码:

public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}

 

可以看出前两者实现相差不大,只是多做了一次为空的判断,也许我们在在做转换的时候就已经做了。所以我们在做转字符串操作时,尽量用Integer.toString()操作。

至于最后一种方法的实现方式,还需要查查资料了。