maven-module多模块依赖项目在eclipse中搭建与开发

一、Maven-module多模块依赖项目说明

Maven-module项目可以把较大的项目按照功能或者层次进行横向与纵向的模块化分割。项目结构是父项目子模块的结构进行组织。整个项目以pom型项目进行组织,其模块可以是jar项目,也可以是war项目,也可以pom项目。合理的使用maven-module项目,可以是项目结构分明,同时提高了代码的复用性。

二、Maven-module项目示例结构

本文以maven插件官方示例(具体地址请查看附录)为素材,进行了项目搭建、运行与打包。项目代码压缩包请查看附录。

Maven project structure

pom.xml          (top level pom with packaging pom)

my-api/pom.xml     (api project with packaging jar)

my-api-impl/pom.xml  (api implementation project with packaging jar)

my-webapp/pom.xml   (webapp project with packaging war)

三、Maven-module项目eclipse下使用tomcat启动

直接上图

继续阅读maven-module多模块依赖项目在eclipse中搭建与开发

java使用Gson进行json字符串反序列化转map对象时,int变为double的解决办法

java处理json字符串与java对象的互转,google家的Gson是个很好的工具。不过使用中也遇到了一些坑(有的其实更像是惊喜),与大家分享下。

一、json字符串反序列化转map对象时,int变为double的解决办法。

二、json字符串中格式时间字符串与Date对象的直接转换。

三、字符串与枚举的直接转换(自带此功能)。

Gson默认的坑

问题:使用Gsonjson字符串转为map时,原来的int类型反序列化后成为double类型。

Json字符串:

"{\"lngnum\":12,\"dbnum\":12.34,\"datetime\":\"2014-12-23 12:09:21\",\"date\":\"2014-12-23\",
\"next\":{\"lngnum\":12,\"dbnum\":12.34,\"datetime\":\"2014-12-23 12:09:21\",\"date\":\"2014-12-23\"}}";

实现方式:

/**
 * 使用默认的gson对象进行反序列化
 *
 * @param json
 * @param typeToken
 * @return
 */
public static <T> T fromJsonDefault(String json, TypeToken<T> typeToken) {
Gson gson = new Gson();
return gson.fromJson(json, typeToken.getType());
}

转化结果:

lngnum-12.0-Double//整型变为了浮点类型
dbnum-12.34-Double
datetime-2014-12-23 12:09:21-String
date-2014-12-23-String
====================
next-Map start
lngnum-12.0-Double//整型变为了浮点类型
dbnum-12.34-Double
datetime-2014-12-23 12:09:21-String
date-2014-12-23-String
next-Map end
====================

方法一:重新实现TypeAdapter

实现方式:

继续阅读java使用Gson进行json字符串反序列化转map对象时,int变为double的解决办法

基于websocket-api.jar的websocket java客户端

在之前文章《基于websocket-api.jar的websocket server服务》文章中,介绍了webosocket服务端编程与html5的客户端编写。此文章则重点介绍如何在使用java编写websocket client,以方便实现websocket接口的服务间调用。

此项目源代码已经在github托管,访问地址:websocket-demo

在开发过程中发现,websocket client需要依赖运行的tomcat容器,否则无法正常接收服务器端返回的消息。所以,是通过tomcat启动时,实例化bean时调用了客户端。如果博友实现了不依赖运行中的tomcat的调用方式,还望不吝赐教。

继续阅读基于websocket-api.jar的websocket java客户端

基于websocket-api.jar的websocket server服务

HTML5不仅提供了更加炫酷的系统资源的调用,也带来了websocket这一全双工的通信方式。再此之前,前端页面与服务端的通信基本只能依赖http协议进行短连接。为了能实现长连接的效果,多采用前端主动轮询的方式,持续从服务端拉取信息。虽说后来诞生了推送机制,但应用范围并不是十分广泛,而且性能较低。而websocket通信提供了另一种简单可靠而且效率更高的方式,weboscket通信只在建立连接是传递头信息,而在客户端提交与服务端推送信息时,是没有头信息传递的。而且,建立websocket连接后,服务端可以择时进行消息的主动推送。

本文介绍的是基于tomcat中自带jar包websocket-api.jar与html5内置对象WebSocket的服务端与浏览器客户端的通信demo。

一、java服务端websocket-server-demo示例

此示例的java服务端项目为pom项目,有关pom项目的内容,将在后续文章中介绍。下面介绍下weboscket-server-demo项目的几个主要文件。

1.pom项目配置文件(pom.xml)

添加依赖的jar包

<!-- tomcat websocket-api -->
    <dependency>
        <groupId>javax.websocket</groupId>
        <artifactId>javax.websocket-api</artifactId>
        <version>1.1</version>
        <scope>provided</scope>
    </dependency>
<!-- tomcat websocket-api -->

添加依赖tomcat插件

<!-- apache tomcat maven plugin -->
    <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
            <uriEncoding>UTF-8</uriEncoding>
            <port>8082</port>
            <path>/websocket-server</path>
        </configuration>
    </plugin>
<!-- //apache tomcat maven plugin -->

继续阅读基于websocket-api.jar的websocket server服务

web页面与java websocket接口的压力测试

对于网站开发,压力测试是少不了的。压力测试可以对网络,服务器,系统架构的优化程度进行检验。以便提前知道网站的负载能力,并未优化提供依据。

对于网站的压力测试,基本离不开下面两点的测试:web页面访问的压力测试和java接口的压力测试(我们接口是通过websocket实现)。

web页面访问压力测试工具可以使用apache自带的ab命令进行检测;java websocket接口的压力测试可以使用Jmeter+websocket插件进行检测。

ab安装与使用 继续阅读web页面与java websocket接口的压力测试