【Dubbo分布式服务框架】5.传统测试工程的搭建1
我们在上一节介绍了Dubbo的基础知识,但是对于开发者来说,不进行实践只讲解理论,是不可能完全理解某门技术的。这里我们就以一个项目的改造为驱动,来给大家展现一下传统Web工程,与使用Dubbo应用的工程的区别。通过动手改变项目的架构,开让大家初步理解Dubbo在开发和使用中扮演的角色,为Dubbo的深入学习打下基础。我们在这里先编写一个Maven结构的WebProject工程,用于后期的改
·
我们在上一节介绍了Dubbo的基础知识,但是对于开发者来说,不进行实践只讲解理论,是不可能完全理解某门技术的。这里我们就以一个项目的改造为驱动,来给大家展现一下传统Web工程,与使用Dubbo应用的工程的区别。通过动手改变项目的架构,开让大家初步理解Dubbo在开发和使用中扮演的角色,为Dubbo的深入学习打下基础。
我们在这里先编写一个Maven结构的WebProject工程,用于后期的改造。
工程需求:
对仓库货物信息进行增删改查的简单工程
工程架构:
SpringMVC框架以及MyBatis框架
数据库:
MySQL
开发工具:
MyEclipse2014
表结构:
只有一张表,commodity
Java环境:
JDK1.8
(1)安装以及配置Maven
由于我们这个工程是Maven工程,所以首先我们要先下载Maven:
下载地址 http://maven.apache.org/download.cgi
我们这里下载3.5.0的版本:
然后将其解压至D盘:
然后在环境变量中添加Maven的Home:
设置为Maven的文件夹所在目录即可。
然后在Path中添加bin所在目录:
之后在在Windows命令提示符下,输入mvn -v,出现以下结果证明
Maven安装成功:
然后在MyEclipse中配置我们的Maven插件重新定位到我们刚刚安装的目录:
(2)在MyEclipse中创建Maven工程
我们要创建两个工程,一个是包含所有依赖的Maven工程web-parent,另外一个就是我们的应用工程web-commodity。这里web-parent主要提供Web工程所需要的依赖jar包,它是为了让其它应用去引用它,使得其它应用的依赖清晰化,之和核心业务的依赖有关。
首先我们创建web-parent工程;
我们选择Maven工程进行创建:
这里我们勾选上Create a simple project (不使用骨架)
这里的Packing我们选择jar的形式,因为我们只需要它提供主要依赖服务即可。
然后我们创建完成的工程结构如下:
为了方便以后的Dubbo整合,我们将工程的jre更换为1.8的:
接下来我们编写POM文件,将SpringMVC与MyBatis的常用依赖引入,编写之后的POM文件如下:
保存pom文件后,我们的依赖被加入classpath下:
因为我们这个工程是用来做核心依赖的,所以我们这里添加一些常用的工具类:
里面包含了Base64工具类,字节处理工具类,日期处理工具类,日志工具类,Md5加密工具类,文件处理工具类,字符串处理工具类,上传工具类等。
常用工具类下载链接: http://pan.baidu.com/s/1pJLSczD
然后我们创建我们的Maven的Web工程,该工程就是我们的商品管理的项目工程web-commodity了,会以web-project工程为核心依赖。
同样是创建Maven工程,但是我们是Web工程,所以选择打包方式为war的形式:
刚创建时pom文件可能会报错,那是因为我们选择了war的打包形式,但是没有添加war的配置maven-war-plugin,我们添加后pom文件如下:
然后我们在POM文件中添加刚才的核心依赖工程web-project:
这时我们不仅获得了SpringMVC与MyBatis工程需要的所有依赖,而且获取了web-parent工程的依赖:
由于我们的项目要使用MyEclipse发布到tomcat下面,这里我们需要先把项目转成dynamic web project。我们在项目上点击右键,选择properties并找到Project Facets:
然后勾选Dynamic Web Module 并点击ok:
然后我们的Maven工程结构就变成dynamic web project了:
我们在WEB-INF下添加web.xml配置文件:
然后改写以下Web工程默认的index.jsp:
我们将该工程发布到tomcat中试验一下:
说明我们的核心依赖工程web-parent和Web工程web-commodity创建成功,并且成功发布到tomcat中加载。
我们在这里先编写一个Maven结构的WebProject工程,用于后期的改造。
工程需求:
对仓库货物信息进行增删改查的简单工程
工程架构:
SpringMVC框架以及MyBatis框架
数据库:
MySQL
开发工具:
MyEclipse2014
表结构:
只有一张表,commodity
Java环境:
JDK1.8
(1)安装以及配置Maven
由于我们这个工程是Maven工程,所以首先我们要先下载Maven:
下载地址 http://maven.apache.org/download.cgi
我们这里下载3.5.0的版本:
然后将其解压至D盘:
然后在环境变量中添加Maven的Home:
设置为Maven的文件夹所在目录即可。
然后在Path中添加bin所在目录:
之后在在Windows命令提示符下,输入mvn -v,出现以下结果证明
Maven安装成功:
然后在MyEclipse中配置我们的Maven插件重新定位到我们刚刚安装的目录:
(2)在MyEclipse中创建Maven工程
我们要创建两个工程,一个是包含所有依赖的Maven工程web-parent,另外一个就是我们的应用工程web-commodity。这里web-parent主要提供Web工程所需要的依赖jar包,它是为了让其它应用去引用它,使得其它应用的依赖清晰化,之和核心业务的依赖有关。
首先我们创建web-parent工程;
我们选择Maven工程进行创建:
这里我们勾选上Create a simple project (不使用骨架)
这里的Packing我们选择jar的形式,因为我们只需要它提供主要依赖服务即可。
然后我们创建完成的工程结构如下:
为了方便以后的Dubbo整合,我们将工程的jre更换为1.8的:
更换后:
接下来我们编写POM文件,将SpringMVC与MyBatis的常用依赖引入,编写之后的POM文件如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.com.commoditySystem</groupId>
<artifactId>web-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- spring版本号 -->
<spring.version>4.2.5.RELEASE</spring.version>
<!-- mybatis版本号 -->
<mybatis.version>3.2.8</mybatis.version>
<!-- mysql驱动版本号 -->
<mysql-driver.version>5.1.29</mysql-driver.version>
<!-- log4j日志包版本号 -->
<slf4j.version>1.7.18</slf4j.version>
<log4j.version>1.2.17</log4j.version>
</properties>
<dependencies>
<!-- 添加jstl依赖 -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
</dependency>
<!-- 添加junit4依赖 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<!-- 指定范围,在测试时才会加载 -->
<scope>test</scope>
</dependency>
<!-- 添加spring核心依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- 添加mybatis依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!-- 添加mybatis/spring整合包依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.2</version>
</dependency>
<!-- 添加mysql驱动依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-driver.version}</version>
</dependency>
<!-- 添加数据库连接池依赖 -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.2.2</version>
</dependency>
<!-- 添加fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.41</version>
</dependency>
<!-- 添加日志相关jar包 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- log end -->
<!-- 映入JSON -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.8.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.0</version>
</dependency>
<!-- 文件上传相关依赖 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.github.abel533/ECharts -->
<dependency>
<groupId>com.github.abel533</groupId>
<artifactId>ECharts</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.5</version>
<scope>compile</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>net.sf.jxls</groupId>
<artifactId>jxls-core</artifactId>
<version>1.0.5</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>上面分别包含了jstl依赖 、junit4依赖、spring核心依赖、mybatis依赖、mybatis/spring整合包依赖、mysql驱动依赖、数据库连接池依赖、日志相关依赖、JSON相关依赖(fastjson)、文件上传相关依赖等。
保存pom文件后,我们的依赖被加入classpath下:
因为我们这个工程是用来做核心依赖的,所以我们这里添加一些常用的工具类:
里面包含了Base64工具类,字节处理工具类,日期处理工具类,日志工具类,Md5加密工具类,文件处理工具类,字符串处理工具类,上传工具类等。
常用工具类下载链接: http://pan.baidu.com/s/1pJLSczD
然后我们创建我们的Maven的Web工程,该工程就是我们的商品管理的项目工程web-commodity了,会以web-project工程为核心依赖。
同样是创建Maven工程,但是我们是Web工程,所以选择打包方式为war的形式:
刚创建时pom文件可能会报错,那是因为我们选择了war的打包形式,但是没有添加war的配置maven-war-plugin,我们添加后pom文件如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.com.commoditySystem</groupId>
<artifactId>web-commodity</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<version>3.1</version>
</configuration>
</plugin>
</plugins>
</build>
</project>同样我们把jre的版本改为1.8,为后续Dubbo改造做准备。
然后我们在POM文件中添加刚才的核心依赖工程web-project:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.com.commoditySystem</groupId>
<artifactId>web-commodity</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>cn.com.commoditySystem</groupId>
<artifactId>web-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<version>3.1</version>
</configuration>
</plugin>
</plugins>
</build>
</project>
这时我们不仅获得了SpringMVC与MyBatis工程需要的所有依赖,而且获取了web-parent工程的依赖:
由于我们的项目要使用MyEclipse发布到tomcat下面,这里我们需要先把项目转成dynamic web project。我们在项目上点击右键,选择properties并找到Project Facets:
然后勾选Dynamic Web Module 并点击ok:
然后我们的Maven工程结构就变成dynamic web project了:
我们在WEB-INF下添加web.xml配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
然后改写以下Web工程默认的index.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>Home</title>
</head>
<body>
这里是web-commodity的首页<br>
</body>
</html>
我们将该工程发布到tomcat中试验一下:
说明我们的核心依赖工程web-parent和Web工程web-commodity创建成功,并且成功发布到tomcat中加载。
下一篇我们将在Web工程上构建SpringMVC和MyBtais的开发环境。
转载请注明出处:http://blog.csdn.net/acmman/article/details/74780968
更多推荐


所有评论(0)