分布式项目创建过程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wrs120/article/details/79972779


1.为何有父工程之分

  搭建的详细过程参照:https://blog.csdn.net/sinat_31726559/article/details/52133238
  两个Web项目之间,就是通过war包的方式进行引用的
  总体结构是这样的:

e3-parent:父工程,打包方式pom,管理jar包的版本号。
    |           项目中所有工程都应该继承父工程。
    |--e3-common:通用的工具类通用的pojo。打包方式jar
    |--e3-manager:服务层工程。聚合工程。Pom工程
        |--e3-manager-dao:打包方式jar
        |--e3-manager-pojo:打包方式jar
        |--e3-manager-interface:打包方式jar
        |--e3-manager-service:打包方式:jar
        |--e3-manager-web:表现层工程。打包方式war

  父工程:父工程中定义依赖jar包的版本和Maven插件的版本信息,为pom工程
  common工程:放通用的工具类。也需要继承taotao-parent工程。这个工程能打成jar包,被其他工程能引用,为pom工程
  manager工程:是一个聚合工程,包括pojo模块,service模块,service接口模块,dao模块
  web模块:前端工程,跟前端有关的jsp,css,js,springMVC等

  那么什么时候建Maven Project,什么时候建Maven Module???
    Maven Project可以理解为父工程。
    Maven Module可以理解为子工程。
    创建Maven Module工程必须有存在的父工程,maven就是通过父子工程进行工程管理的


2.jar、war、pom 打包方式区分

  jar:对一些class、properties文件打包,是文件封装的最小单元;包含java类的普通库,资源(resources)、辅助文件(auxiliary files)等。在maven中即是打包src/main/java和src/main/resources资源文件夹下的所有文件
  war:Servlet、JSP页面、JSP标记库、JAR库文件、HTML/XML文档和其他公用资源文件,如图片、音频文件等即包含全部的web应用程序;但是需要注意war引用war的时候会将应用war的资源全部拷贝到当前war的相同文件下,重名的文件会被替换
  pom:聚合工程得打包方式,只要有子工程,就用pom的打包方式


3.勾选create a simple project

  这样建的项目目录更标准


4.service层为什么要打成war包

  war包:Java web工程,都是打成war包进行发布。因为是分布式工程,service是一个工程,要发布,如果使用tomcat等轻量级服务器作发布的服务器,一般就打成war包进行发布


5.service层一定要打成war包吗?

  如果你的项目是分布式工程就一定要打成war包了,如果不是分布式工程,达成jar包即可了;如果起初你的项目时分布式工程,后来想改web层和service层为一个工程,我们只需将service层的打包方式改为jar形式,然后将service层打的jar添加到web层,即dependency到web的pom文件中,这样做的好处(当然我们的项目前后端是分离的,web层压力非常小,只是起到一个转发功能,原来的两个工程主要考虑到service层压力大(要去操作数据库;一个web可能调用好几个service),当我service层压力大时我们就可以多部几台服务器,且前后端没分离,但是现在前后端分离了,web层压力非常小,所以就合并了):
  1.减少了tomcat的使用,以前部署一个项目至少2个tomcat,现在只需要一个tomcat就可以了
  2.注册的服务少了,我们只需要将别人会用的服务注册到zookeeper上即可,如果本服务只有自己用,就不用注册到zookeeper上了


6.web层和service项目如何实现通信的

  web层和service层都两个工程,然后分别部署到不到的tomcat中,那么两个工程是如何进行远程通信的那,我们使用dubbo实现的RPC

猜你喜欢

转载自blog.csdn.net/wrs120/article/details/79972779
今日推荐