品优购项目记录day01(IDEA构建项目)

1 电商项目

品优购项目是一个网上购物商城,是电商的一种,电商项目具有技术新,技术范围广,分布式‘’高并发、集群、负载均衡、高可用,海量数据,业务复杂、系统安全的特点。

主要的电商模式包括:

  1. B2B–企业对企业
  2. C2C–个人对个人
  3. B2C–企业对个人
  4. C2B–个人对企业(个人提需求,企业实现)
  5. O2O–线上到线下
  6. F2C–工厂到个人
  7. B2B2C -企业-企业-个人(京东、天猫)

本项目为B2B2C模式。

2 系统构架

网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,项目采用SOA的模式。SOA是Service-Oriented Architecture的首字母简称,它是一种支持面向服务的架构样式。即将service层和web层各个模块部署在不同的服务器,而不是在同一台主机上,提高了性能。
品优购项目记录day01(IDEA构建项目)_第1张图片

框架组合

品优购采用当前流行的前后端编程架构,后端框架采用Spring +SpringMVC+mybatis +Dubbox ,前端采用angularJS + Bootstrap。
采用IDEA进行开发。

Dubbox框架

Dubbox 是一个分布式服务框架,其前身是阿里巴巴开源项目Dubbo ,被国内电商及互联网项目中使用,后期阿里巴巴停止了该项目的维护,当当网便在Dubbo基础上进行优化,并继续维护,为了与原有的Dubbo区分,故将其命名为Dubbox,是一个远程服务调用的分布式框架
品优购项目记录day01(IDEA构建项目)_第2张图片
官方推荐使用 zookeeper 注册中心。注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小。
zookeeper安装在Linux系统中,安装前必须安装JDK。安装完成后,进入bin目录,输入下面命令启动:

./zkServer.sh start

查看状态:

./zkServer.sh status

如果处于启动状态
在这里插入图片描述
如果启动失败,有三点原因:

  • 未安装JDK
  • 尝试重启Linux
  • 将Linux防火墙关闭

IDEA构件项目框架

项目首日模块如下,在pinyougou-parent父工程下有许多模块
品优购项目记录day01(IDEA构建项目)_第3张图片
IDEA搭建的过程如下:
创建项目
品优购项目记录day01(IDEA构建项目)_第4张图片输入GroupId等信息
品优购项目记录day01(IDEA构建项目)_第5张图片选择自己的maven和RepMaven目录(关键)
在自己的Maven目录下,配置阿里云镜像,加快加载速度


    alimaven
    aliyun maven
    http://maven.aliyun.com/nexus/content/groups/public/
    central       

品优购项目记录day01(IDEA构建项目)_第6张图片输入项目名,Finish
品优购项目记录day01(IDEA构建项目)_第7张图片在pom.xml中加入依赖,IDEA会自动下载所需依赖,部分依赖若显示无法下载,可自行在网上下载并加入RepMaven目录中。

添加子模块,不选模板,直接Next
品优购项目记录day01(IDEA构建项目)_第8张图片填写子模块名称品优购项目记录day01(IDEA构建项目)_第9张图片Finish
品优购项目记录day01(IDEA构建项目)_第10张图片给各模块添加依赖和模块之间的依赖(在pom.xml中使用快捷键Alt+Insert添加模块约束,约束之间可以传递)


            com.pinyougou
            pinyougou-sellergoods-interface
            1.0-SNAPSHOT

添加Mybatis、spring的配置文件
品优购项目记录day01(IDEA构建项目)_第11张图片

持久层编码

pinyougou-dao

利用反向工程generatorSqlmapCustom实现实体类与数据访问层代码的自动生成;
com.pinyougou.pojo包拷贝到pojo工程;
com.pinyougou.mapper包和resouce下的com.pinyougou.mapper文件夹拷贝到dao工程。

注意:在IDEA中不会对resources下的xml文件进行扫描,需要在父工程中的pom.xml文件中进行配置。

        
            
                src/main/java
                
                    **/*.properties
                    **/*.xml
                
                false
            
        

Service层

  1. spring配置文件中加入dubbo配置

  

 
  1. Service代码
@Service //声明(由dubbo查找)
public class BrandServiceImpl implements BrandService {

    @Autowired  //自动注入
    private TbBrandMapper brandMapper;

    @Override
    public List findAll() {
        System.out.println(brandMapper);

        return brandMapper.selectByExample(null);
    }
}

  1. install为war包,需要设置,否则无法访问
pinyougou-sellergoods-service
war

web层

  1. 设置为war包
  2. spring配置文件中加入dubbo配置
  3. controller编写
@RestController
@RequestMapping("/brand")
public class BrandController {

    @Reference //不再使用Autowired,由不同服务器注入
    private BrandService brandService;

    @RequestMapping("/findAll")
    public List findAll(){
        return brandService.findAll();
    }
}

测试代码

  1. install
    品优购项目记录day01(IDEA构建项目)_第12张图片
  2. 确认zookeeper处于运行状态
  3. 启动pinyougou-sellergoods-service
    品优购项目记录day01(IDEA构建项目)_第13张图片
    4.启动pinyougou-manager-web
    5.地址栏输入http://localhost:9101/brand/findAll.do,可以看到浏览器输出了json数据

IDEA+Maven构件项目的过程完成!

你可能感兴趣的:(项目记录)