淘淘商城项目 第四天总结

1.   课程计划

第四天:

1、前台系统搭建

2、商城首页展示

3、Cms系统的实现

a)        内容分类管理

b)       内容管理

4、前台内容动态展示

 

2.   商城首页展示


系统架构:


页面位置:



2.1. 工程搭建

可以参考taotao-manager-web工程搭建

2.2. 功能分析

请求的url:/index

Web.xml中的欢迎页配置:

http://localhost:8082/index.html

参数:没有

返回值:String 逻辑视图




@Controller
public class IndexController {

	@RequestMapping("/index")
	public String showIndex() {
		return "index";
	}
}

3.   首页动态展示分析

内容信息要从数据库中获得

3.1. 动态展示分析

1、内容需要进行分类

2、分类下有子分类,需要动态管理。

3、分类下有内容列表

4、单点的内容信息

a)        有图片

b)       有链接

c)        有标题

d)       有价格

e)        包含大文本类型,可以作为公告

 

需要一个内容分类表和一个内容表。内容分类和内容表是一对多的关系。

内容分类表,需要存储树形结构的数据。

内容分类表:tb_content_category

内容表:tb_content

 

需要有后台来维护内容信息。Cms系统。




需要创建一个内容服务系统。可以参考taotao-manager创建。

Taotao-content:聚合工程打包方式pom

|--taotao-content-interfacejar

|--taotao-content-Service  war


4.   内容服务系统创建

 

4.1. Taotao-content


4.1.1.   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-content</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>
	<!-- 配置tomcat插件 -->
	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.tomcat.maven</groupId>
				<artifactId>tomcat7-maven-plugin</artifactId>
				<configuration>
					<port>8083</port>
					<path>/</path>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>


4.2. taotao-content-interface

4.2.1.   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-content</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<artifactId>taotao-content-interface</artifactId>
	<dependencies>
		<dependency>
			<groupId>com.taotao</groupId>
			<artifactId>taotao-manager-pojo</artifactId>
			<version>0.0.1-SNAPSHOT</version>
		</dependency>
	</dependencies>
</project>

4.3. taotao-content-service

4.3.1.   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-content</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<artifactId>taotao-content-service</artifactId>
	<packaging>war</packaging>
	<dependencies>
		<dependency>
			<groupId>com.taotao</groupId>
			<artifactId>taotao-manager-dao</artifactId>
			<version>0.0.1-SNAPSHOT</version>
		</dependency>
		<dependency>
			<groupId>com.taotao</groupId>
			<artifactId>taotao-content-interface</artifactId>
			<version>0.0.1-SNAPSHOT</version>
		</dependency>
		<!-- spring的依赖 -->
		<!-- 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>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jms</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context-support</artifactId>
		</dependency>
		<!-- dubbo相关 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>dubbo</artifactId>
			<!-- 排除依赖 -->
			<exclusions>
				<exclusion>
					<groupId>org.springframework</groupId>
					<artifactId>spring</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.jboss.netty</groupId>
					<artifactId>netty</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.apache.zookeeper</groupId>
			<artifactId>zookeeper</artifactId>
		</dependency>
		<dependency>
			<groupId>com.github.sgroschupf</groupId>
			<artifactId>zkclient</artifactId>
		</dependency>
	</dependencies>
</project>

4.4. 框架整合

参考taotao-manager


5.   Cms系统实现

5.1. 内容分类管理

5.1.1.   展示内容分类


功能分析

请求的url:/content/category/list

请求的参数:id,当前节点的id。第一次请求是没有参数,需要给默认值“0”

响应数据:List<EasyUITreeNode>(@ResponseBody)

Json数据。

[{id:1,text:节点名称,state:open(closed)},

{id:2,text:节点名称2,state:open(closed)},

{id:3,text:节点名称3,state:open(closed)}]

业务逻辑:

1、取查询参数id,parentId

2、根据parentId查询tb_content_category,查询子节点列表。

3、得到List<TbContentCategory>

4、把列表转换成List<EasyUITreeNode>

 

Dao层

使用逆向工程


Service

参数:longparentId

返回值:List<EasyUITreeNode>



@Service
public class ContentCategoryServiceImpl implements ContentCategoryService {

	@Autowired
	private TbContentCategoryMapper contentCategoryMapper;
	
	@Override
	public List<EasyUITreeNode> getContentCategoryList(long parentId) {
		// 1、取查询参数id,parentId
		// 2、根据parentId查询tb_content_category,查询子节点列表。
		TbContentCategoryExample example = new TbContentCategoryExample();
		//设置查询条件
		Criteria criteria = example.createCriteria();
		criteria.andParentIdEqualTo(parentId);
		//执行查询
		// 3、得到List<TbContentCategory>
		List<TbContentCategory> list = contentCategoryMapper.selectByExample(example);
		// 4、把列表转换成List<EasyUITreeNode>ub
		List<EasyUITreeNode> resultList = new ArrayList<>();
		for (TbContentCategory tbContentCategory : list) {
			EasyUITreeNode node = new EasyUITreeNode();
			node.setId(tbContentCategory.getId());
			node.setText(tbContentCategory.getName());
			node.setState(tbContentCategory.getIsParent()?"closed":"open");
			//添加到列表
			resultList.add(node);
		}
		return resultList;
	}

}

1.1.1.1.1       发布服务

表现层
1.1.1.1.2       引用服务

Taotao-manager-web

依赖taotao-content-interface模块



1.1.1.1.3       Controller


@Controller
@RequestMapping("/content/category")
public class ContentCategoryController {

	@Autowired
	private ContentCategoryService contentCategoryService;
	
	@RequestMapping("/list")
	@ResponseBody
	public List<EasyUITreeNode> getContentCatList(
			@RequestParam(value="id", defaultValue="0") Long parentId) {
		
		List<EasyUITreeNode> list = contentCategoryService.getContentCategoryList(parentId);
		return list;
	}
}

5.1.1.   新增节点

功能分析

请求的url:/content/category/create

请求的参数:

Long parentId

String name

响应的结果:

json数据,TaotaoResult,其中包含一个对象,对象有id属性,新生产的内容分类id

业务逻辑:

1、接收两个参数:parentId、name

2、向tb_content_category表中插入数据。

a)        创建一个TbContentCategory对象

b)       补全TbContentCategory对象的属性

c)        向tb_content_category表中插入数据

3、判断父节点的isparent是否为true,不是true需要改为true。

4、需要主键返回。

5、返回TaotaoResult,其中包装TbContentCategory对象

 

Dao层

可以使用逆向工程。

需要添加主键返回:


注意:修改完代码后,需要向本地仓库安装taotao-manager-dao

Service层

参数:parentId、name

返回值:返回TaotaoResult,其中包装TbContentCategory对象



@Override
	public TaotaoResult addContentCategory(long parentId, String name) {
		// 1、接收两个参数:parentId、name
		// 2、向tb_content_category表中插入数据。
		// a)创建一个TbContentCategory对象
		TbContentCategory tbContentCategory = new TbContentCategory();
		// b)补全TbContentCategory对象的属性
		tbContentCategory.setIsParent(false);
		tbContentCategory.setName(name);
		tbContentCategory.setParentId(parentId);
		//排列序号,表示同级类目的展现次序,如数值相等则按名称次序排列。取值范围:大于零的整数
		tbContentCategory.setSortOrder(1);
		//状态。可选值:1(正常),2(删除)
		tbContentCategory.setStatus(1);
		tbContentCategory.setCreated(new Date());
		tbContentCategory.setUpdated(new Date());
		// c)向tb_content_category表中插入数据
		contentCategoryMapper.insert(tbContentCategory);
		// 3、判断父节点的isparent是否为true,不是true需要改为true。
		TbContentCategory parentNode = contentCategoryMapper.selectByPrimaryKey(parentId);
		if (!parentNode.getIsParent()) {
			parentNode.setIsParent(true);
			//更新父节点
			contentCategoryMapper.updateByPrimaryKey(parentNode);
		}
		// 4、需要主键返回。
		// 5、返回TaotaoResult,其中包装TbContentCategory对象
		return TaotaoResult.ok(tbContentCategory);
	}

发布服务。


表现层

请求的url:/content/category/create

请求的参数:

Long parentId

String name

响应的结果:

json数据,TaotaoResult



@RequestMapping("/create")
	@ResponseBody
	public TaotaoResult createCategory(Long parentId, String name) {
		TaotaoResult result = contentCategoryService.addContentCategory(parentId, name);
		return result;
	}

5.1.3.   内容分类重命名、删除

重命名

请求的url:/content/category/update

参数:id,当前节点id。name,重命名后的名称。

业务逻辑:根据id更新记录。

返回值:返回TaotaoResult.ok()

 

作业。

删除节点

请求的url:/content/category/delete/

参数:id,当前节点的id。

响应的数据:json。TaotaoResult。

业务逻辑:

1、根据id删除记录。

2、判断父节点下是否还有子节点,如果没有需要把父节点的isparent改为false

3、如果删除的是父节点,子节点要级联删除。

两种解决方案:

1)如果判断是父节点不允许删除。

2)递归删除。

作业。

 

5.1. 内容管理

5.2.1.   功能点分析

1、内容列表查询(作业)

2、新增内容

3、编辑内容(作业)

4、删除内容(作业)

5.2.1.   内容列表查询

请求的url:/content/query/list

参数:categoryId 分类id

响应的数据:json数据

{total:查询结果总数量,rows[{id:1,title:aaa,subtitle:bb,...}]}

EasyUIDataGridResult


描述商品数据List<TbContent>

查询的表:tb_content

业务逻辑:

根据内容分类id查询内容列表。要进行分页处理。

 

5.2.3.   新增内容

功能分析



提交表单请求的url:/content/save

参数:表单的数据。使用pojo接收TbContent

返回值:TaotaoResult(json数据)

业务逻辑:

1、把TbContent对象属性补全。

2、向tb_content表中插入数据。

3、返回TaotaoResult

 

Dao

逆向工程

 

Service

参数:TbContent

返回值:TaotaoResult



@Service
public class ContentServiceImpl implements ContentService {

	@Autowired
	private TbContentMapper contentMapper;
	
	@Override
	public TaotaoResult addContent(TbContent content) {
		//补全属性
		content.setCreated(new Date());
		content.setUpdated(new Date());
		//插入数据
		contentMapper.insert(content);
		return TaotaoResult.ok();
	}

}
发布服务
引用服务

Toatao-manager-web工程中引用。

Controller

提交表单请求的url:/content/save

参数:表单的数据。使用pojo接收TbContent

返回值:TaotaoResult(json数据)




@Controller
public class ContentController {

	@Autowired
	private ContentService contentService;
	
	@RequestMapping("/content/save")
	@ResponseBody
	public TaotaoResult addContent(TbContent content) {
		TaotaoResult result = contentService.addContent(content);
		return result;
	}
}

6.   首页轮播图展示

Taotao-portal-web工程中,动态展示内容信息。

 

6.1. 功能分析

只需要动态生成一个json数据,轮播图就可以动态展示:




Json数据格式:

[
    {
        "srcB": "http://image.taotao.com/images/2015/03/03/2015030304360302109345.jpg",
        "height": 240,
        "alt": "",
        "width": 670,
        "src": "http://image.taotao.com/images/2015/03/03/2015030304360302109345.jpg",
        "widthB": 550,
        "href": "http://sale.jd.com/act/e0FMkuDhJz35CNt.html?cpdad=1DLSUE",
        "heightB": 240
}
]

从tb_content表中取数据,根据内容分类id查询列表。内容分类id固定,需要配置在属性文件中。

List<TbContent>

图片的width、height配置在属性文件中。

Alt属性从title中取。

Src->pic

srcB->pic2

Href->url

 

需要创建一个pojo转换成页面需要的json数据格式。

public class Ad1Node {

	private String srcB;
	private String height;
	private String alt;
	private String width;
	private String src;
	private String widthB;
	private String href;
	private String heightB;
}

6.1. Dao层

从tb_content表中取数据,根据内容分类id查询列表。

可以使用逆向工程

 

6.3. Service层

参数:longcategoryId

返回值:List<TbContent>


@Override
	public List<TbContent> getContentList(long cid) {
		//根据cid查询内容列表
		TbContentExample example = new TbContentExample();
		//设置查询条件
		Criteria criteria = example.createCriteria();
		criteria.andCategoryIdEqualTo(cid);
		//执行查询
		List<TbContent> list = contentMapper.selectByExample(example);
		return list;
	}

6.3.1.   发布服务



6.4. 表现层

Taotao-portal-web中实现。

6.4.1.   引用服务

6.4.1.   Controller

在首页展示之前,对数据进行处理,然后展示首页,需要在IndexController中实现。

@Controller
public class IndexController {

	@Autowired
	private ContentService contentService;
	
	@Value("${AD1_CID}")
	private Long AD1_CID;
	@Value("${AD1_HEIGHT}")
	private Integer AD1_HEIGHT;
	@Value("${AD1_WIDTH}")
	private Integer AD1_WIDTH;
	@Value("${AD1_HEIGHT_B}")
	private Integer AD1_HEIGHT_B;
	@Value("${AD1_WIDTH_B}")
	private Integer AD1_WIDTH_B;
	
	@RequestMapping("/index")
	public String showIndex(Model model) {
		//取轮播图的内容信息
		List<TbContent> contentList = contentService.getContentList(AD1_CID);
		//转换成Ad1NodeList
		List<Ad1Node> ad1List = new ArrayList<>();
		for (TbContent tbContent : contentList) {
			Ad1Node node = new Ad1Node();
			node.setAlt(tbContent.getTitle());
			node.setHeight(AD1_HEIGHT);
			node.setHeightB(AD1_HEIGHT_B);
			node.setWidth(AD1_WIDTH);
			node.setWidthB(AD1_WIDTH_B);
			node.setHref(tbContent.getUrl());
			node.setSrc(tbContent.getPic());
			node.setSrcB(tbContent.getPic2());
			//添加到列表
			ad1List.add(node);
		}
		//把数据传递给页面。
		model.addAttribute("ad1", JsonUtils.objectToJson(ad1List));
		
		return "index";
	}
}



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

余额充值