一、引言


在开发设计一个产品的时候,需要对这个产品的架构要做一个精细的设计,要把功能模块化,好让各个模块直接互不影响、独立开发。现在拿一个互联网产品P2P为例,来描述一下架构的基本设计。

二、架构


在互联网产品中,一般包括:后台管理系统(manager)、门户网站(portal)。对于manager和portal有共通性的功能,抽取出来成公共的模块(common),而对于common的jar依赖,可以用maven来管理,所以就可以在common的基础上,把所有的项目要进行依赖管理独立出来交给maven(parent:只做依赖管理,不做任何开发),具体的结构图如下:

对于上图中的各个模块的打包方式如下:

模块 打包方式 备注
Parent pom 只做依赖管理,不做任何开发
Common jar 把manager和portal共同性的功能放在这里
Manager jar
Portal jar
Web war

我们在开发的时候,把一个项目根据功能模块,拆分成一个一个的子项目,可是在运行的时候,要把它们当成一个整体来运行,也就意味着在运行的时候只能运行一个项目,也就是一个war包,如果是两个war包,它们就是两个独立的应用,这就不对了,所以只能把Web打成war包,Manger和Portal打成jar包。

三、步骤


(1)、在Eclipse中创建Maven项目(Parent:这里需要注意的是:打包方式是pom


(2)、在Eclipse中创建Maven项目(Common:这里需要注意的是:打包方式是jar

(3)、在Eclipse中创建Maven项目(Manager和Portal:这里需要注意的是:打包方式是jar


(4)、在Eclipse中创建Maven项目(Web:这里需要注意的是:打包方式是war


这里web项目创建完,会报错,是因为该项目没有web.xml文件。解决办法:右击项目–>properties,然后见下图



(5)、创建完项目的目录机构

(6)、为Web项目添加Manger和Portal依赖


(7)、为Manger和Portal项目添加Common依赖,同(6)
(8)、为Common项目添加parent

互联网产品的项目架构相关推荐

  1. 《程序员》7月刊特别策划:互联网产品设计十年

    文 / 千鸟 1997年,号称中国互联网元年.同年7月,网易成立一个月之后,马上提供了免费个人主页服务.也就是说,从1997年7月起,"网页设计师"这个词已经出现在江湖上.论辈份, ...

  2. 云原生与微服务架构基础:01 | 为什么说云原生重构了互联网产品开发模式

    为什么说云原生重构了互联网产品开发模式? 云原生的概念 云计算的前世今生 阶段1:虚拟化技术 阶段2:虚拟机的市场化应用 阶段3:容器化和容器编排的兴起 云原生到底是什么? 云原生出现的背景 云原生解 ...

  3. 互联网产品设计进阶(10)关注项目的赢利模式

    整天都在思考项目的进展,忙碌了一天,终于有点时间来打理思绪.晚上收到一位编辑朋友送来的几本书,里面有一本最近比较热门的<设计原本>.读一本书时,我喜欢看书的前言,因为这里反映了作者的原始动 ...

  4. php项目分布式架构设计,【转】互联网项目架构之基于服务的分布式架构

    以前一直找一篇通俗易懂的文章,今天终于找到了,记录下. 文章来源:赵小忠 文章地址:https://www.cnblogs.com/1315925303zxz/p/6371550.html 随着互联网 ...

  5. 互联网产品运营的组织架构

    互联网产品运营的组织架构可以有很多种不同的设计方式,因此无法给出一个确切的组织架构.但是,通常情况下,互联网产品运营团队的组织架构包括以下几个部分: 产品经理:负责产品的规划.设计和开发. 运营经理: ...

  6. 互联网项目架构演变历史

    互联网项目架构演变 目录 互联网项目架构演变 一.起源--单机版项目 二.改进版本1--Memcache缓存 三.改进版本2--MySQL主从读写分离 四.改进版本3--MySQL集群 五.目前互联网 ...

  7. 微服务架构 之 互联网项目架构演变过程 (单点架构,模块化架构,分布式架构,soa架构,微服务架构)

    一.什么是单点系统(传统架构)? 1.传统的SSH,SSM 架构,分为三层架构 web控制层.业务逻辑层.数据库访问层. 2. 传统架构也就是单点应用,就是大家在刚开始初学JavaEE技术的时候SSH ...

  8. 推荐|5种商业AI产品的技术架构设计!

    来源: 达观数据 概要:今天我们就特别推荐达观数据的几个商业产品设计技术架构,希望对于广大技术有帮助. 做任何一个商业产品设计,技术架构都是首先要考虑的,特别是面对海量数据的AI商业项目更是如此.今天 ...

  9. 互联网产品开发中的“快”字诀

    当今互联网的发展,已不是大鱼吃小鱼的时代,而是快鱼吃慢鱼的时代.互联网产品的制胜原则就是一个字--"快".在各种形态的产品研发中,我们始终贯彻如一的价值观之一就是"快&q ...

最新文章

  1. 记录一下有关ChArUco标定板
  2. 皮一皮:到底是土还是士...
  3. docker-compose 部署elk+解决时间不对导致kibana找不到logstash定义的index + docker-compose安装...
  4. dtft变换的性质_[2018年最新整理]DTFT变换.ppt
  5. python爬京东(带GUI)
  6. 瑞银报告:Waymo在2030年占据全球60%无人出租车市场
  7. 从 JVM 层面理解 i++ 和 ++i 的真正区别!
  8. 将服务费用DIY到底----走出软件作坊:三五个人十来条枪 如何成为开发正规军(十)...
  9. UCHOME出现问题(转帖)
  10. 声纹技术(四):声纹识别的工程部署
  11. HTML常用排版标签
  12. c/c++ 头文件(.h)、源文件(.cpp)书写及接口与实现分离实例
  13. java获取一年的周数、单周开始时间与结束时间、一年所有周开始时间与结束时间、月开始时间与结束时间
  14. (新版)SJTU-OJ-1011. John and Cows
  15. 中心移动平均_移动流量资费再降20%以上!
  16. 计算机图形几何算法详解勘误
  17. 计算机网络之五层体系结构
  18. 计算机操作系统第四章虚拟存储器
  19. Android项目开发教程之OpenGL ES
  20. 1497: 变态杀人狂

热门文章

  1. 是不是网站服务器限速最高11,限制网速多少合适(100m访客限速多少kb合适)
  2. STM32H750 QSPI FLASH使用小结
  3. android 多媒体框架服务之StagefrightPlayer和OMXCodec实现原理学习
  4. Matlab GUI 如何编写下拉菜单
  5. IE/Firefox 自动关闭窗口
  6. python自动写作ai_论文自动写作之自动添加参考文献
  7. Flash 存储器接口标准:CFI和JEDEC
  8. JS的传递数据不刷新页面的应用
  9. Spark Streaming之DStream的基本工作原理
  10. 【汇正财经】股票面值和股票净值是什么?怎么计算?