淘淘商城第一天—电商行业的背景。淘淘商城的介绍。搭建项目工程。Svn的使用。

 

1、电商行业的模式:

B2B:企业到企业,商家到商家。代表:阿里巴巴、慧聪网。

B2C:商家到客户。代表:京东、淘宝商城(B2B2C)。

C2C:客户到客户。淘宝集市。

O2O:线上到线下。

2、技术架构

2.1传统架构

思考:有什么问题?

  1. 模块之间耦合度太高,其中一个升级其他都得升级
  2. 开发困难,各个团队开发最后都要整合一起
  3. 系统的扩展性差
  4. 不能灵活的进行分布式部署。

解决方法:

优点:

把模块拆分成独立的工程,单点运行。如果某一个点压力大可以对这一个点单独增加配置。其他的点不受影响。

缺点:

系统之间交互需要额外的工作量来进行接口的开发。

把系统拆分成多个工程,要完成系统的工程需要多个工程协作完成。这种形式叫做分布式。

 

2.2分布式的架构

分布式架构:

把系统按照模块拆分成多个子系统。

优点:

  1. 把模块拆分,使用接口通信,降低模块之间的耦合度。
  2. 把项目拆分成若干个子项目,不同的团队负责不同的子项目。
  3. 增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
  4. 可以灵活的进行分布式部署。

缺点:

系统之间交互需要使用远程通信,接口开发增加工作量。

3、技术选型(主要技术

  1. Spring、SpringMVC、Mybatis
  2. JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本编辑器)、CSS+DIV
  3. Redis(缓存服务器)
  4. Solr(搜索)
  5. httpclient(调用系统服务)
  6. Mysql
  7. Nginx(web服务器)

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(版本管理)

 

配置JDK:http://product.pconline.com.cn/itbk/software/rjwt/1505/6483358.html#ad=7094

 

eclipse配置

将配置好的文件覆盖源文件(配置好的eclipse包括字体、自动提示等)

 

5、后台管理系统工程搭建

5.1Maven

  1. 依赖管理、jar包、工程之间的依赖。
  2. 项目构建。实现项目的一步构建。
  3. 工程聚合、继承、依赖。

 

5.2Maven的工程类型:

  1. war包工程
  2. Jar包工程
  3. Pom工程。

 

5.3父工程的搭建

父工程应该是一个pom工程。在父工程中定义依赖的jar包的版本信息。Maven插件的版本。

 

5.3.1安装本地仓库

使用.m2覆盖本地仓库的内容。在个人文件夹administrator下

eclipse Mars版本自带maven插件 ,可在windows→preferences→user settings查看本地仓库路径

 

5.3.2创建maven工程

 

file→new→maven project→勾选create a simple project

注意:创建工程时弹出内存不足的问题!

解决方法http://www.itkeyword.com/doc/2377005206577633860/java-maven

 

5.3.3修改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>com.taotao</groupId>
	<artifactId>taotao-parent</artifactId>
	<version>0.0.1-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>3.4.2-fix</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>4.10.3</solrj.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>
			<!-- 单元测试 -->
			<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>
			<!-- 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>
		</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.7</source>
					<target>1.7</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>

 

tips:xml注释与取消快捷键

其中的一些jar包:

  1. joda-time:时间操作组件
  2. commons-lang3:封装的一些字符串的操作
  3. commons-io:针对开发IO流功能的工具类库
  4. commons-net:服务器通讯(FTP、HTTP)
  5. com.fasterxml.jackson.core(Jackson包):在springMVC中将对象转换为JSON数据
  6. org.apache.httpcomponents(httpclient包):提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议
  7. com.github.pagehelper(pagerhelper包):分页插件

5.4创建一个common工程

放一些通用的工具类,也需要继承taotao-parent工程。

5.4.1创建工程

5.4.2 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>
	<parent>
		<groupId>com.taotao</groupId>
		<artifactId>taotao-parent</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<groupId>com.taotao</groupId>
	<artifactId>taotao-common</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<!-- jar包的依赖 -->
	<dependencies>
		<!-- 时间操作组件 -->
		<dependency>
			<groupId>joda-time</groupId>
			<artifactId>joda-time</artifactId>
		</dependency>
		<!-- Apache工具组件 -->
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-io</artifactId>
		</dependency>
		<dependency>
			<groupId>commons-net</groupId>
			<artifactId>commons-net</artifactId>
		</dependency>
		<!-- Jackson Json处理工具包 -->
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
		</dependency>
		<!-- httpclient -->
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpclient</artifactId>
		</dependency>
		<!-- 单元测试 -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</dependency>
		<!-- 日志处理 -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
		</dependency>
	</dependencies>
</project>

5.5后台管理工程创建

搭建一个聚合工程:

5.5.1工程结构

传统工程结构:

 

Maven管理的工程结构:

 

不使用maven:工程部署时需要手动复制jar包。完成工程构建。非常繁琐。

使用maven进行工程构建:

使用maven可以实现一步构建。

后台管理系统工程结构:

taotao-parent -- 管理依赖jar包的版本,全局,公司级别

|--taotao-common  --- 通用组件、工具类

|--taotao-manage  -- 后台系统

  |--com.taotao.manage.web

  |--com.taotao.manage.service

  |--com.taotao.manage.mapper

  |--com.taotao.manage.pojo

 

5.5.2Taotao-manager工程

5.5.2.1工程搭建

5.5.2.2修改pom文件

依赖于taotao-common

<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>
	<parent>
		<groupId>com.taotao</groupId>
		<artifactId>taotao-parent</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<groupId>com.taotao</groupId>
	<artifactId>taotao-manager</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>pom</packaging>
	<!-- 依赖管理 -->
	<dependencies>
		<dependency>
			<groupId>com.taotao</groupId>
			<artifactId>taotao-common</artifactId>
			<version>0.0.1-SNAPSHOT</version>
		</dependency>
	</dependencies>
</project>

5.5.3 Taotao-manager-pojo模块

5.5.3.1创建工程

右键taotao-manager→new→Maven Module

5.5.3.2 Pom文件

不需要修改,taotao-manager-pojo模块不依赖任何jar包。

 

5.5.4 Taotao-manager-mapper模块

5.5.4.1 创建工程

5.5.4.2 Pom文件

依赖taotao-manager-pojo。因为要用的mybatis,所以还要从parent中拷贝相关的jar包(mybatis组件、mysql、连接池),版本号可删除。

<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>
	<parent>
		<groupId>com.taotao</groupId>
		<artifactId>taotao-manager</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<artifactId>taotao-manager-mapper</artifactId>
	<!-- 依赖管理 -->
	<dependencies>
		<dependency>
			<groupId>com.taotao</groupId>
			<artifactId>taotao-manager-pojo</artifactId>
			<version>0.0.1-SNAPSHOT</version>
		</dependency>
		<!-- Mybatis -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
		</dependency>
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
		</dependency>
		<dependency>
			<groupId>com.github.miemiedev</groupId>
			<artifactId>mybatis-paginator</artifactId>
		</dependency>
		<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper</artifactId>
		</dependency>
		<!-- MySql -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>
		<!-- 连接池 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
		</dependency>
	</dependencies>
</project>

5.5.5 Taotao-manager-service模块

 

5.5.5.1 创建工程

5.5.5.2 Pom文件

依赖于taotao-manager-mapper。因为sevice层要用到spring,所以从parent中拷贝spring相关组件jar包。

<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>
	<parent>
		<groupId>com.taotao</groupId>
		<artifactId>taotao-manager</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<artifactId>taotao-manager-service</artifactId>
	<!-- 依赖管理 -->
	<dependencies>
		<dependency>
			<groupId>com.taotao</groupId>
			<artifactId>taotao-manager-mapper</artifactId>
			<version>0.0.1-SNAPSHOT</version>
		</dependency>
		<!-- Spring -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aspects</artifactId>
		</dependency>
	</dependencies>
</project>

5.5.6 Taotao-manager-web模块(就是controller模块)

5.5.6.1创建工程

需要打成war包

5.5.6.2 Pom文件

需要依赖taotao-manager-service。因为需要jsp相关组件,所以还要从parent中拷贝jsp相关组件jar包(JSTL、servlet、文件上传等,后期需要别的再另加上)

<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>
	<parent>
		<groupId>com.taotao</groupId>
		<artifactId>taotao-manager</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<artifactId>taotao-manager-web</artifactId>
	<packaging>war</packaging>
	<!-- 依赖管理 -->
	<dependencies>
		<dependency>
			<groupId>com.taotao</groupId>
			<artifactId>taotao-manager-service</artifactId>
			<version>0.0.1-SNAPSHOT</version>
		</dependency>
		<!-- JSP相关 -->
		<dependency>
			<groupId>jstl</groupId>
			<artifactId>jstl</artifactId>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jsp-api</artifactId>
			<scope>provided</scope>
		</dependency>
		<!-- 文件上传组件 -->
		<dependency>
			<groupId>commons-fileupload</groupId>
			<artifactId>commons-fileupload</artifactId>
		</dependency>
	</dependencies>
</project>

5.5.6.3创建web.xml

创建web完成后,会在war包出报错,原因是打成war后缺少完整的目录结构,需要在src/main/webapp下创建WEB-INF目录和web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="taotao" version="2.5">
	<display-name>taotao-manager</display-name>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>

</web-app>

6、测试maven工程

6.1创建测试页

 

在webapp下新建一个index.jsp

6.2运行的工程

要运行工程,需要运行聚合工程也就是taotao-manager。

 

 

6.3 Tomcat插件

在taotao-manager工程的pom文件中添加如下内容:

<build>
		<!-- 配置插件 -->
		<plugins>
			<plugin>
				<groupId>org.apache.tomcat.maven</groupId>
				<artifactId>tomcat7-maven-plugin</artifactId>
				<configuration>
					<port>8080</port>
					<path>/</path>
				</configuration>
			</plugin>
		</plugins>
	</build>

6.4启动工程

右键taotao-manager→run as→maven build

使用maven命令:

clean tomcat7:run

tomcat7指定使用tomcat7的插件。

 

注意:

1、需要把taotao-parent工程安装到本地仓库。Install

右键parent→run as→maven install

2、需要把taotao-common安装到本地仓库。

同上

 

成功运行!

 

欢迎进群交流258897306或关注公众号“IT群英汇

淘淘商城 第一天 讲师:传智.入云龙 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、付费专栏及课程。

余额充值