1.环境说明
编译器:Intellij IDEA (相比eclipse来说更为智能,个人比较喜欢。)
数据库:mySql
rpc:用rabbitmq实现
(有关rabbitmq环境搭建以及rpc实现,请参考这篇博客RabbitMQ(一)—RabbitMQ基础知识)
2.框架结构分析
框架主要由两大部分组成:conductor层和api层
2.1 conductor层说明
这一层作为最底层和数据库进行交互的数据层,整体来说相当于MVC中的Model层。
主要由 mybatis + springmvc + spring 实现,就是我们常说的ssm。
在conductor层将数据获取到传给api层。
2.2 api层
这一层直接获取conductor传过来的数据,生成api接口,在View层调用。相当于MVC中的Controller
主要由springmvc实现
2.3 rpc
RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
使用rpc 可以让不同机器上运行的conductor层以及api层进行数据交互。
有关rpc更多知识以及用rabbitmq实现rpc可以参考以下博文:
3.数据准备
创建数据库Item
CREATE TABLE `items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(32) NOT NULL COMMENT '商品名称',
`price` float(10,1) NOT NULL COMMENT '商品定价',
`detail` text COMMENT '商品描述',
`pic` varchar(64) DEFAULT NULL COMMENT '商品图片',
`createtime` datetime NOT NULL COMMENT '生产日期',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
insert into `items`(`id`,`name`,`price`,`detail`,`pic`,`createtime`) values (1,'台式机',3000.0,'该电脑质量非常好!!!!',NULL,'2015-02-03 13:22:53'),(2,'笔记本',6000.0,'笔记本性能好,质量好!!!!!',NULL,'2015-02-09 13:22:57'),(3,'背包',200.0,'名牌背包,容量大质量好!!!!',NULL,'2015-02-06 13:23:02');
4.conductor层搭建
4.1 基本配置
在IDEA中新建maven项目
打开Project Structure(ctrl+shift+alt+s)配置web根目录位置以及web.xml的位置。
目录结构如下:
4.2 添加依赖
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lishiqi.ssm</groupId>
<artifactId>myConductor</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>myConductor Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<org.springframework-version>4.0.2.RELEASE</org.springframework-version>
<rabbitmq.version>3.0.4</rabbitmq.version>
<spring.amqp.version>1.3.6.RELEASE</spring.amqp.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<commons-io.version>1.4</commons-io.version>
</properties>
<dependencies>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib-ext-spring</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>