品优购项目记录:day01

 

 

今日目标:

        (1)了解电商行业特点以及理解电商的模式

        (2)了解整体品优购的架构特点

        (3)能够运用Dubbox + SSM 搭建分布式应用

        (4)搭建工程框架,完成品牌列表的后端代码

目录

1、系统架构

2、Dubbox

3、品优购工程框架搭建

4、品牌列表-后端


 

1、系统架构

 

1.1 SOA 架构

        SOA是Service-Oriented Architecture的首字母简称,它是一种支持面向服务的架构样式。从服务、基于服务开发和服务的结果来看,面向服务是一种思考方式。其实SOA架构更多应用于互联网项目开发。

 

1.2 品优购架构

 

1.3 数据表

 

表名称

含义

tb_brand

品牌

tb_specification

规格

tb_specification_option

规格选项

tb_type_template

类型模板:用于关联品牌和规格

tb_item_cat

商品分类

tb_seller

商家

tb_goods

商品

tb_goods_desc

商品详情

tb_item

商品明细

tb_content

内容(广告)

tb_content_category

内容(广告)类型

tb_user

用户

tb_order

订单

tb_order_item

订单明细

tb_pay_log

支付日志

 

1.4 框架组合

        品优购采用当前流行的前后端编程架构。

        后端框架采用Spring+SpringMVC+mybatis +Dubbox 。前端采用angularJS +Bootstrap。

 

 

2、Dubbox

 

2.1 Dubbox 架构图

 

节点角色说明:

 Provider: 暴露服务的服务提供方。

 Consumer: 调用远程服务的服务消费方。

 Registry: 服务注册与发现的注册中心。

 Monitor: 统计服务的调用次调和调用时间的监控中心。

 Container: 服务运行容器。

调用关系说明:

 0. 服务容器负责启动,加载,运行服务提供者。

 1. 服务提供者在启动时,向注册中心注册自己提供的服务。

 2. 服务消费者在启动时,向注册中心订阅自己所需的服务。

 3. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推

送变更数据给消费者。

 4. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,

如果调用失败,再选另一台调用。

 5. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计

数据到监控中心。

 

2.2 注册中心 Zookeeper 安装

(1)上传zookeeper压缩包到linux服务器,并解压缩。

(2)在zookeeper中创建一个data文件夹。

(3)进入conf文件夹,修改 zoo_simple.cfg 为 zoo.cfg,并编辑dataDir的值为刚新建的data文件夹的路径。

(4)运行zookeeper,查看状态

 

2.3 Dubbox 管理中心

(1)获取到 Dubbox 的管理中心war包,并上传到linux服务器。还需要上传tomcat压缩包,用于运行war

(2)解压缩 tomcat 的压缩包,并将管理中心的war包,放入webapps目录下,启动tomcat

(3)访问 Dubbox 的管理中心页面,会显示输入登录名和密码,均为:root

(4)登陆后的界面

 

 

备注:

    (1)Dubbox 没有上传到 maven 仓库中,如果需要使用需要手动安装到本地 maven仓库中。

 

 

 

 

3、品优购工程框架搭建

 

3.1 创建一个聚合工程,为整个项目的父工程,并配置 pom.xml,主要为相关jar包的版本号锁定

 

3.2 创建通用实体类模块工程

 

3.3 创建通用数据访问模块工程

 

3.4 创建通用组件模块工程

 

3.5 创建商家商品模块工程(sellergoods-interface、sellergoods-service)

 

3.6 创建运营商管理后台工程(manager-web)

 

3.7 创建商家管理后台工程(shop-web)

 

3.8 使用逆向工程生成pojo和dao代码,其中pojo类需要手动实现 Serializable 接口

 

3.9 完成各个工程的基本配置

 

 

4、品牌列表-后端

 

4.1 服务层接口(sellergoods-interface)

package com.pinyougou.sellergoods.service;

import java.util.List;

import com.pinyougou.pojo.TbBrand;

/**
 * 品牌相关接口
 * @author Administrator
 *
 */
public interface BrandService {

	/**
	 * 获取品牌列表
	 *
	 * @return java.util.List<com.pinyougou.pojo.TbBrand>
	 */
	List<TbBrand> findAll();
	
}

 

4.2 服务层实现(sellergoods-service)

package com.pinyougou.sellergoods.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import com.alibaba.dubbo.config.annotation.Service;
import com.pinyougou.mapper.TbBrandMapper;
import com.pinyougou.pojo.TbBrand;
import com.pinyougou.sellergoods.service.BrandService;
@Service
public class BrandServiceImpl implements BrandService {

	@Autowired
	private TbBrandMapper brandMapper;
	
	@Override
	public List<TbBrand> findAll() {

		return brandMapper.selectByExample(null);
	}

}

 

4.3 控制层(manager-web)

package com.pinyougou.manager.controller;

import java.util.List;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.alibaba.dubbo.config.annotation.Reference;
import com.pinyougou.pojo.TbBrand;
import com.pinyougou.sellergoods.service.BrandService;

@RestController
@RequestMapping("/brand")
public class BrandController {

	@Reference
	private BrandService brandService;

	/**
	 * 获取品牌列表
	 *
	 * @return java.util.List<com.pinyougou.pojo.TbBrand>
	 */
	@RequestMapping("/findAll")
	public List<TbBrand> findAll(){
		return brandService.findAll();
	}

}

 

 

 

4.4 测试

dubbox监控中心:

 

 

备注:

        (1)在项目搭建过程中,最后的测试阶段,出现了一次问题,访问 url 报404错误,控制台卡在 Initializing Spring FrameworkServlet 'springmvc',后来发现是因为使用idea创建的maven web骨架没有resources和java的目录,需要手动创建,创建resources时不小心输成了resource,把资源文件的目录名resource改成resources即可。

 

 

 

 

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值