淘淘商城系列(一):项目搭建

本文章来自于我的ssm博客:http://iclyj.cn/blog/articles/89.html


1.先来看看项目的整体结果

1499072952346049910.jpg


2.使用maven管理工程。

    1、 依赖管理

    2、 项目构建

     

    后台创建一个独立的web工程。创建一个maven工程打包方式是war包。

     

    可以创建一个聚合工程,每个模块都是一个jar包,可以被其他系统依赖。

     

    Taotao-parent(父工程管理jar包的版本)

      |--Taotao-common(把通用的工具类打包)

      |--Taotao-manager(继承父工程)

                |-taotao-manager-pojo

                     |-taotao-manager-dao

                     |-taotao-manager-service

                     |-taotao-manager-web(war包)

需要导入的pom的jar包


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
<?xml version= "1.0"  encoding= "UTF-8" ?>
<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>com.ldb</groupId>
     <artifactId>GoBuy-parent</artifactId>
     <version> 1.0 -SNAPSHOT</version>
     <packaging>pom</packaging>
  
     <!-- 集中定义依赖版本号 -->
     <properties>
         <junit.version> 4.12 </junit.version>
         <spring.version> 4.1 . 3 .RELEASE</spring.version>
         <mybatis.version> 3.2 . 8 </mybatis.version>
         <mybatis.spring.version> 1.2 . 2 </mybatis.spring.version>
         <mybatis.paginator.version> 1.2 . 15 </mybatis.paginator.version>
         <mysql.version> 5.1 . 32 </mysql.version>
         <slf4j.version> 1.6 . 4 </slf4j.version>
         <jackson.version> 2.4 . 2 </jackson.version>
         <druid.version> 1.0 . 9 </druid.version>
         <httpclient.version> 4.3 . 5 </httpclient.version>
         <jstl.version> 1.2 </jstl.version>
         <servlet-api.version> 2.5 </servlet-api.version>
         <jsp-api.version> 2.0 </jsp-api.version>
         <joda-time.version> 2.5 </joda-time.version>
         <commons-lang3.version> 3.3 . 2 </commons-lang3.version>
         <commons-io.version> 1.3 . 2 </commons-io.version>
         <commons-net.version> 3.3 </commons-net.version>
         <pagehelper.version> 4.1 . 6 </pagehelper.version>
         <jsqlparser.version> 0.9 . 1 </jsqlparser.version>
         <commons-fileupload.version> 1.3 . 1 </commons-fileupload.version>
         <jedis.version> 2.7 . 2 </jedis.version>
         <solrj.version> 6.2 . 1 </solrj.version>
         <dubbo.version> 2.5 . 3 </dubbo.version>
         <zookeeper.version> 3.4 . 7 </zookeeper.version>
         <zkclient.version> 0.1 </zkclient.version>
         <activemq.version> 5.11 . 2 </activemq.version>
         <freemarker.version> 2.3 . 23 </freemarker.version>
         <quartz.version> 2.2 . 2 </quartz.version>
     </properties>
     <dependencyManagement>
         <dependencies>
             <!-- 时间操作组件 -->
             <dependency>
                 <groupId>joda-time</groupId>
                 <artifactId>joda-time</artifactId>
                 <version>${joda-time.version}</version>
             </dependency>
             <!-- Apache工具组件 -->
             <dependency>
                 <groupId>org.apache.commons</groupId>
                 <artifactId>commons-lang3</artifactId>
                 <version>${commons-lang3.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.commons</groupId>
                 <artifactId>commons-io</artifactId>
                 <version>${commons-io.version}</version>
             </dependency>
             <dependency>
                 <groupId>commons-net</groupId>
                 <artifactId>commons-net</artifactId>
                 <version>${commons-net.version}</version>
             </dependency>
             <!-- Jackson Json处理工具包 -->
             <dependency>
                 <groupId>com.fasterxml.jackson.core</groupId>
                 <artifactId>jackson-databind</artifactId>
                 <version>${jackson.version}</version>
             </dependency>
             <!-- httpclient -->
             <dependency>
                 <groupId>org.apache.httpcomponents</groupId>
                 <artifactId>httpclient</artifactId>
                 <version>${httpclient.version}</version>
             </dependency>
             <!-- quartz任务调度框架 -->
             <dependency>
                 <groupId>org.quartz-scheduler</groupId>
                 <artifactId>quartz</artifactId>
                 <version>${quartz.version}</version>
             </dependency>
             <!-- 单元测试 -->
             <dependency>
                 <groupId>junit</groupId>
                 <artifactId>junit</artifactId>
                 <version>${junit.version}</version>
                 <scope>test</scope>
             </dependency>
             <!-- 日志处理 -->
             <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>slf4j-log4j12</artifactId>
                 <version>${slf4j.version}</version>
             </dependency>
             <!-- Mybatis -->
             <dependency>
                 <groupId>org.mybatis</groupId>
                 <artifactId>mybatis</artifactId>
                 <version>${mybatis.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.mybatis</groupId>
                 <artifactId>mybatis-spring</artifactId>
                 <version>${mybatis.spring.version}</version>
             </dependency>
             <dependency>
                 <groupId>com.github.miemiedev</groupId>
                 <artifactId>mybatis-paginator</artifactId>
                 <version>${mybatis.paginator.version}</version>
             </dependency>
             <dependency>
                 <groupId>com.github.pagehelper</groupId>
                 <artifactId>pagehelper</artifactId>
                 <version>${pagehelper.version}</version>
             </dependency>
             <!-- MySql -->
             <dependency>
                 <groupId>mysql</groupId>
                 <artifactId>mysql-connector-java</artifactId>
                 <version>${mysql.version}</version>
             </dependency>
             <!-- 连接池 -->
             <dependency>
                 <groupId>com.alibaba</groupId>
                 <artifactId>druid</artifactId>
                 <version>${druid.version}</version>
             </dependency>
             <!-- Spring -->
             <dependency>
                 <groupId>org.springframework</groupId>
                 <artifactId>spring-context</artifactId>
                 <version>${spring.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.springframework</groupId>
                 <artifactId>spring-beans</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-jdbc</artifactId>
                 <version>${spring.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.springframework</groupId>
                 <artifactId>spring-aspects</artifactId>
                 <version>${spring.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.springframework</groupId>
                 <artifactId>spring-jms</artifactId>
                 <version>${spring.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.springframework</groupId>
                 <artifactId>spring-context-support</artifactId>
                 <version>${spring.version}</version>
             </dependency>
             <!-- JSP相关 -->
             <dependency>
                 <groupId>jstl</groupId>
                 <artifactId>jstl</artifactId>
                 <version>${jstl.version}</version>
             </dependency>
             <dependency>
                 <groupId>javax.servlet</groupId>
                 <artifactId>servlet-api</artifactId>
                 <version>${servlet-api.version}</version>
                 <scope>provided</scope>
             </dependency>
             <dependency>
                 <groupId>javax.servlet</groupId>
                 <artifactId>jsp-api</artifactId>
                 <version>${jsp-api.version}</version>
                 <scope>provided</scope>
             </dependency>
             <!-- 文件上传组件 -->
             <dependency>
                 <groupId>commons-fileupload</groupId>
                 <artifactId>commons-fileupload</artifactId>
                 <version>${commons-fileupload.version}</version>
             </dependency>
             <!-- Redis客户端 -->
             <dependency>
                 <groupId>redis.clients</groupId>
                 <artifactId>jedis</artifactId>
                 <version>${jedis.version}</version>
             </dependency>
             <!-- solr客户端 -->
             <dependency>
                 <groupId>org.apache.solr</groupId>
                 <artifactId>solr-solrj</artifactId>
                 <version>${solrj.version}</version>
             </dependency>
             <!-- dubbo相关 -->
             <dependency>
                 <groupId>com.alibaba</groupId>
                 <artifactId>dubbo</artifactId>
                 <version>${dubbo.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.zookeeper</groupId>
                 <artifactId>zookeeper</artifactId>
                 <version>${zookeeper.version}</version>
             </dependency>
             <dependency>
                 <groupId>com.github.sgroschupf</groupId>
                 <artifactId>zkclient</artifactId>
                 <version>${zkclient.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.activemq</groupId>
                 <artifactId>activemq-all</artifactId>
                 <version>${activemq.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.freemarker</groupId>
                 <artifactId>freemarker</artifactId>
                 <version>${freemarker.version}</version>
             </dependency>
         </dependencies>
     </dependencyManagement>
     <build>
         <finalName>${project.artifactId}</finalName>
         <plugins>
             <!-- 资源文件拷贝插件 -->
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-resources-plugin</artifactId>
                 <version> 2.7 </version>
                 <configuration>
                     <encoding>UTF- 8 </encoding>
                 </configuration>
             </plugin>
             <!-- java编译插件 -->
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <version> 3.2 </version>
                 <configuration>
                     <source> 1.8 </source>
                     <target> 1.8 </target>
                     <encoding>UTF- 8 </encoding>
                 </configuration>
             </plugin>
         </plugins>
         <pluginManagement>
             <plugins>
                 <!-- 配置Tomcat插件 -->
                 <plugin>
                     <groupId>org.apache.tomcat.maven</groupId>
                     <artifactId>tomcat7-maven-plugin</artifactId>
                     <version> 2.2 </version>
                 </plugin>
             </plugins>
         </pluginManagement>
     </build>
  
</project>


3.创建taotao-parent工程


1499073065689089956.jpg


4.创建taotao-common工程

1499073250799016422.jpg

5.创建taotao-manager工程

1499073336439098018.jpg

在manage下新建pojo,dao,service,web模块,依赖关系如下

1
manage-web-->manage-service-->manage-dao-->manage-pojo

其中pojo、dao、service为jar工程,web为war工程。因为最终项目为war包,故在最底层需要设置成war类型。

6.在taotao-manager中添加taotao-manager-pojo模块

1499073461736049561.jpg

7.在taotao-manager中添加taotao-manager-dao模块


1499073640096004335.jpg


8.在taotao-manager中添加taotao-manager-service模块


1499073782002018099.jpg


9.在taotao-manager中添加taotao-manager-web模块


1499073820596045334.jpg

1499073855705043498.jpg


10.web.xml的配置


1499073896783002575.jpg


11.添加tomcat插件


1499073927361097593.jpg

项目运行出来的结果:


1499074010564011665.jpg


淘淘商城 第一天 讲师:传智.入云龙 1. 聊聊电商行业 1.1. 电商行业发展     近年来,中国的电子商务快速发展,交易额连创新高,电子商务在各领域的应用不断拓展和深化、相关服务业蓬勃发展、支撑体系不断健全完善、创新的动力和能力 不断增强。电子商务正在与实体经济深度融合,进入规模性发展阶段,对经济社会生活的影响不断增大,正成为我国经济发展的新引擎。     中国电子商务研究中心数据显示,截止到2012年底,中国电子商务市场交易规模达7.85万亿人民币,同比增长30.83%。其中,B2B电子商务交易额 达6.25万亿,同比增长27%。而2011年全年,中国电子商务市场交易额达6万亿人民币,同比增长33%,占GDP比重上升到13%;2012年,电 子商务占GDP的比重已经高达15%。预计2013年我国电子商务规模将突破十万亿大关。      图1.2009-2014年中国电子商务市场交易规模(万亿元) 1.2. 11.11 1.3. 电商行业技术特点 Ø 技术新 Ø 技术范围广 Ø 分布式 Ø 高并发、集群、负载均衡、高可用 Ø 海量数据 Ø 业务复杂 Ø 系统安全 2. 淘淘商城 2.1. 淘淘商城简介 淘淘网上商城是一个综合性的B2C平台,类似京东商城、天猫商城。会员可以在商城浏览商品、下订单,以及参加各种活动。 管理员、运营可以在平台后台管理系统中管理商品、订单、会员等。 客服可以在后台管理系统中处理用户的询问以及投诉。 2.2. 功能架构 2.2.1. 系统功能图 2.2.2. 功能描述 后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。 前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。 会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。 订单系统:提供下单、查询订单、修改订单状态、定时处理订单。 搜索系统:提供商品的搜索功能。 单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。 2.3. 技术架构 2.3.1. 传统架构 思考:有什么问题? 1、 模块之间耦合度太高,其中一个升级其他都得升级 2、 开发困难,各个团队开发最后都要整合一起 3、 系统的扩展性差 4、不能灵活的进行分布式部署。 2.3.2. 分布式系统架构 分布式架构: 把系统按照模块拆分成多个子系统。 优点: 1、把模块拆分,使用接口通信,降低模块之间的耦合度。 2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。 3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。 4、可以灵活的进行分布式部署。 缺点: 系统之间交互需要使用远程通信,接口开发增加工作量。 2.3.3. 技术选型(主要技术) l Spring、SpringMVC、Mybatis l JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本编辑器)、CSS+DIV l Redis(缓存服务器) l Solr(搜索) l httpclient(调用系统服务) l Mysql l Nginx(web服务器) 2.4. 开发工具和环境 Eclipse 4.5.0(Mars),自带maven插件,需要手工安装svn插件。 Maven 3.3.3(开发工具自带) Tomcat 7.0.53(Maven Tomcat Plugin) JDK 1.7 Mysql 5.6 Nginx 1.8.0 Redis 3.0.0 Win7 操作系统 SVN(版本管理) 2.5. 人员配置 产品经理:3人,确定需求以及给出产品原型图。 项目经理:1人,项目管理。 前端团队:5人,根据产品经理给出的原型制作静态页面。 后端团队:20人,实现产品功能。 测试团队:5人,测试所有的功能。 运维团队:3人,项目的发布以及维护。 3. 后台管理系统工程结构 3.1. maven管理的好处 1、项目构建。Maven定义了软件开发的整套流程体系,并进行了封装,开发人员只需要指定项目的构建流程,无需针对每个流程编写自己的构建脚本。 2、依赖管理。除了项目构建,Maven最核心的功能是软件包的依赖管理,能够自动分析项目所需要的依赖软件包,并到Maven中心仓库去下载。 A)管理依赖的jar包 B)管理工程之间的依赖关系。 3.2. Maven本地仓库 在当前系统用户的文件夹下。例如当前用户是Administrator那么本地仓库就是在 C:\Users\Administrator\.m2目录下。 只需要用老师提供的.m2覆盖本地的就可以。 Maven插件使用eclipse mars自带maven插件。只需要统一开发环境。 3.3. 依赖管理 传统工程结构: Maven管理的工程结构: 不使用maven:工程部署时需要手动复制jar包。完成工程构建。非常繁琐。 使用maven进行工程构建: 使用maven可以实现一步构建。 3.3.1. 后台管理系统的工程结构 继承: 依赖: 后台管理系统工程结构: taotao-parent -- 管理依赖jar包的版本,全局,公司级别 |--taotao-common  --- 通用组件、工具类 |--taotao-manage  -- 后台系统   |--com.taotao.manage.web   |--com.taotao.manage.service   |--com.taotao.manage.mapper   |--com.taotao.manage.pojo 3.4. 创建taotao-parent 3.4.1. 创建maven工程 3.4.2. 修改pom文件 4.0.0 com.taotao taotao-parent 0.0.1-SNAPSHOT pom <!-- 集中定义依赖版本号 --> 4.12 4.1.3.RELEASE 3.2.8 1.2.2 1.2.15 5.1.32 1.6.4 2.4.2 1.0.9 4.3.5 1.2 2.5 2.0 2.5 3.3.2 1.3.2 3.3 3.4.2-fix 0.9.1 1.3.1 2.7.2 4.10.3 <!-- 时间操作组件 --> joda-time joda-time ${joda-time.version} <!-- Apache工具组件 --> org.apache.commons commons-lang3 ${commons-lang3.version} org.apache.commons commons-io ${commons-io.version} commons-net commons-net ${commons-net.version} <!-- Jackson Json处理工具包 --> com.fasterxml.jackson.core jackson-databind ${jackson.version} <!-- httpclient --> org.apache.httpcomponents httpclient ${httpclient.version} <!-- 单元测试 --> junit junit ${junit.version} test <!-- 日志处理 --> org.slf4j slf4j-log4j12 ${slf4j.version} <!-- Mybatis --> org.mybatis mybatis ${mybatis.version} org.mybatis mybatis-spring ${mybatis.spring.version} com.github.miemiedev mybatis-paginator ${mybatis.paginator.version} com.github.pagehelper pagehelper ${pagehelper.version} <!-- MySql --> mysql mysql-connector-java ${mysql.version} <!-- 连接池 --> com.alibaba druid ${druid.version} <!-- Spring --> org.springframework spring-context ${spring.version} org.springframework spring-beans ${spring.version} org.springframework spring-webmvc ${spring.version} org.springframework spring-jdbc ${spring.version} org.springframework spring-aspects ${spring.version} <!-- JSP相关 --> jstl jstl ${jstl.version} javax.servlet servlet-api ${servlet-api.version} provided javax.servlet jsp-api ${jsp-api.version} provided <!-- 文件上传组件 --> commons-fileupload commons-fileupload ${commons-fileupload.version} <!-- Redis客户端 --> redis.clients jedis ${jedis.version} <!-- solr客户端 --> org.apache.solr solr-solrj ${solrj.version} ${project.artifactId} <!-- 资源文件拷贝插件 --> org.apache.maven.plugins maven-resources-plugin 2.7 UTF-8 <!-- java编译插件 --> org.apache.maven.plugins maven-compiler-plugin 3.2 1.7 1.7 UTF-8 <!-- 配置Tomcat插件 --> org.apache.tomcat.maven tomcat7-maven-plugin 2.2 3.4.3. 将taotao-parent安装到本地仓库。 3.5. taotao-common 3.5.1. 创建工程 3.5.2. 修改pom文件 修改taotao-common工程的pom文件,在文件中添加对taotao-parent的继承。   4.0.0      com.taotao   taotao-parent   0.0.1-SNAPSHOT      com.taotao   taotao-common   0.0.1-SNAPSHOT 3.5.3. 更新工程 工程点击右键→maven→update Project Configuration 3.6. taotao-manage 3.6.1. 创建taotao-manager 修改pom文件: 3.6.2. taotao-manage-pojo 3.6.3. Taotao-manager-mapper 3.6.4. Taotao-manager-service 3.6.5. Taotao-manager-web   1. 配置工程: 2. Web.xml <?xml version="1.0" encoding="UTF-8"?> taotao-manager index.html index.htm index.jsp default.html default.htm default.jsp 3.6.6. 配置tomcat插件 运行web工程需要添加一个tomcat插件。插件必须添加到taotao-manager工程中。因为taotao-manager是聚合工程。在运行时需要把子工程聚合到一起才能运行。 <!-- 配置Tomcat插件 --> org.apache.tomcat.maven tomcat7-maven-plugin 2.2 8080 / 启动tomcat命令:tomcat7:run 3.6.7. taotao-manage子模块依赖关系 依赖关系: web è service service è mapper mapper è pojo 4. 提交代码到SVN 4.1. 提交代码 注意:提交到SVN的Maven项目,只提交src和pom.xml 4.2. 从SVN检出项目 1、 从trunk检出项目,并且重命名项目名称 2、 转化为maven项目 3、 聚合项目中子项目需要从父工程中【导入】,选择 【已经存在的maven项目】,不能从SVN再次检出子项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值