本文主要关于项目结构及maven概述。目的在于搭建起整个项目的模块骨架,并且导入 jar 依赖。
项目分层 分层概括凡是整体项目,都需要进行分层。
分层之后的效果:隐藏下层实现逻辑。
分层的目的:
-
提高复用性:分层之后每个模块之间是松散状态。每个模块可被别的项目使用。
-
有利于扩展:直接增加某个模块即可
-
有利于维护:当某个模块不工作或者需要替换时,可直接停掉此模块,并用另一个模块进行替换。
通用的分层模式:MVC
这样分层可以更好的分配任务给SDE。能够使大家之间的工作互不干涉,同时进行。
每层中的模型JAVA 是面向对象的语言。每层之间的数据交互,也需要通过对象来实现。
DAO 层DAO 负责和 DB 交互。涉及到的类:
DO (Data Object):直接和 DB 中的 table 进行一一对应。
Query:用来传递查询参数的对象,不要用 Map
Service 层DTO(Data Transfer Object):向外界传输数据(比如传给另外的服务器等,主要用于 Service 之间数据传输,需要考虑序列化与反序列化)
BO:包含业务对象的完整信息。
VO(View Object):最后传递给外界的对象。
分层异常处理每层同样需要处理异常。具体的处理指导思路如下:
DAO 层:由 JVM 直接处理,不需要打印到日志中。
Manager/Service 层:能处理的尽量处理,如果不能处理,则应带上参数信息向上抛出。(如果涉及到跨服务器的数据交换,则一定要进行异常处理)
Web 层:在这层进行异常处理,不能直接抛出异常给用户。
构建工具 构建的过程JAVA WEB 项目发布的过程:
-
编译
-
打包成 jar (同时导入所有依赖的 jar)
-
发布到 WEB 容器(Tomcat等)
为了免除这些手动的过程,出现了 maven
Maven 的工作-
规定了目录结构
-
对依赖进行管理
-
完整的项目生命周期:能够直接执行你想要的行为。比如只想编译,只想打包 等。
-
支持多种插件:把你想用的功能插进去
-
按照 DependencyManager (在父工程中声明 DependencyManager):定义一个父工程来锁定所有子工程jar包的 version
-
按照最短依赖路径
-
按照在 pom.xml 中的顺序。
解决方法:
-
找到哪些依赖是冲突的。
-
将产生依赖的 jar 包,直接 exclude
各种库的定义如下:
一方库:本工程内的库;
二方库:本公司内开发的;
三方库:第三方公司开发的;
二方库引用规约:
-
线上应用不要依赖 SNAPSHOT;
-
正式发布的类库必须去中央仓库查证,使 RELEASE 版本号有延续性;
-
正式发布的类库版本号不允许覆盖升级;
-
二方库的新增或升级,保持除功能点之外的其它 jar 包仲裁结果不变。
-
依赖于一个二方库群时,必须定义一个统一的版本变量,避免版本号不一致;
-
禁止在依赖中出现相同的 GroupId,相同的 ArtifactId,但是不同的 Version
TCP/IP 是一个协议簇。里面包含很多协议,比如 HTTP,UDP
三次握手两台机器进行三次握手的意义:为了确认自己的发报及收报能力。
四次挥手四次挥手的目的在于处理断开连接之后的 *** 作。
结论使用 maven 构建项目时,有时需要创建一个父工程,然后在其中建立子工程。
当导入一个包的不同版本时,可能会产生 maven 的错误。此时需要查看是否版本错误。
JAVA WEB 处理的是 HTTP 请求,需要看一下 Servlet 具体是如何处理 HTTP 请求的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)