正在查看: J2EE 分类下的文章 第1页 (共 3篇)

卫报的网站技术架构

这是QCon 2009伦敦站,由英国卫报的首席系统架构师Mathew Wall带来的演讲,非常具有借鉴和学习意义。

卫报的R2架构是一个典型的J2EE敏捷开发的实际应用,也是一个企业级的网站从旧的系统(卫报R1)移植到新的系统(R2)的典型实战。

R2的初步应用架构:

可以看到,这是一个典型标准的J2EE敏捷开发架构:

1、采用原生Spring MVC作为Web Tier;

2、使用Velocity 1.5做模板引擎;

3、使用Hibernate ORM做持久层。

4、建立实体Domain Model和其对应的Repository。

6、使用Ehcache配合Hibernate进行缓存

除架构值得学习之外,Mathew还介绍了他们的一些新老系统移植经验,比如,在移植过程中为何首先卫报的Travel频道作为测试对象,以及在这过程中碰到的问题和解决方案。

非常值得一看的视频:http://www.infoq.com/presentations/evolving-architecture-guardian-uk

Tags: 架构,j2ee

Java中的冒泡排序算法

在Java里面有内建的排序函数,比如要对一列字符数组进行排序,可以使用如下方法:

double[] lengths = {120.0, 0.5, 0.0, 999.0, 77.3};
Arrays.sort(lengths);
System.out.println(Arrays.toString(lengths));

当然,我们可以用最原始的排序方法,比如冒泡法来对数组列进行排序,如下:

Integer[] arrIds = {12,24,1,2345,24,10};

int len = arrIds.length;

int temp;

if(len>0){
    for(int i = 0;i<len;i++){
  for(int j=len-1;j>=i;j--){
      if(arrIds[j]>arrIds[i]){
    temp = arrIds[i];
    arrIds[i] = arrIds[j];
    arrIds[j] = temp;
   }
  }
 }
}

for(int i=0;i<len;i++){
    System.out.println(arrIds[i]);
}

可以将以上算法简单的封装成方法,在实际中应用。

Tags: java,排序

JAVA实现向上取整、Unix时间戳到普通日期转换等函数

最近正在做的一个项目使用Java在同一个客户端中Consume多个REST类型的WebService,包括Yahoo! Search API, YouTube Video APIFlickr

我这里想说的不是如何使用Java来调用这几个知名的WebService,而是我个人在客户端制作过程中编写的几个简单实用的函数。关于Java调用WebService的具体方法和方案,我会在稍后的系列日志中详细说明。

说明:由于我本人也是正式接触Java不久,如果以下函数有不妥的地方,请告诉我。

1、Java中的向上取整:

我们知道,在PHP中如果要对一个浮点数进行向上取整操作,只需要使用PHP的内置函数ceil即可。

比如,要将1/3向上取整为1,只需要如下操作:

echo ceil(1/3);

那么在Java中,我们也可以编写一个小函数来实现上面的功能:

public int ceil(int a, int b){
    return(((double)a/(double)b)>(a/b)?a/b+1:a/b);
}

2、Java中将Unix时间戳字符串转换成普通日期格式。

//Convert Unix timestamp to normal date style
private String TimeStamp2Date(String timestampString){
  Long timestamp = Long.parseLong(timestampString)*1000;
  String date = new java.text.SimpleDateFormat("dd/MM/yyyy hh:mm:ss").format(new java.util.Date(timestamp));
  return date;
}

在调用Yahoo! News Search的WebService中,当我们提交了一个REST请求之后,假定Yahoo服务器回传给我们一个XML格式文档(假定是因为REST可以以多种格式回传数据流,比如JSON和CSV),此时每条新闻的日期均采用Unix时间戳来显示。在实际运用中,我们需要将它们转换成人们可以理解的正常格式。这就用到了下面我写的这个简单函数。

FAQ:什么是Unix时间戳?

Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

Tags: java,日期