代码分层&maven

目录

业务分层

介绍:

分层结构

Maven

介绍:

maven仓库

maven仓库配置

maven项目配置

[maven POM](#maven POM)

maven坐标

maven常用命令

Q&A


业务分层

介绍:
  • 在Java应用程序中,通常采用业务分层结构来组织代码,以提高可维护性、可扩展性和代码复用性。
分层结构
  1. 数据访问层(Dao层):

    • 作用:Dao层主要负责与数据存储进行交互,执行数据库操作,包括增删改查等。

    • 实现:在Dao层中,通常定义了与数据库表交互的接口或类,包括对实体(Entity)的持久化和检索。

    • 例子:在Java中,使用JDBC、Hibernate、MyBatis等技术实现Dao层。

  2. 业务逻辑层(Service层):

    • 作用 :Service层是应用程序的核心,负责处理业务逻辑,协调不同的Dao层操作,并提供对外的业务接口。

    • 实现:在Service层中,业务逻辑被组织为一系列服务(Service),这些服务封装了应用程序的核心功能。

    • 例子:例如,一个银行应用程序的Service层可能包括转账服务、查询余额服务等。

  3. 表示层(Entity层):

    • 作用:Entity层通常包含应用程序的领域模型,即与业务相关的实体类,这些实体类用于在不同层次之间传递数据。

    • 实现:Entity类通常是简单的POJO(Plain Old Java Object),包含实体的属性以及相关的方法。

    • 例子:对于一个博客应用程序,可能有Blog、User、Comment等实体类。

Maven

介绍:
  • Maven是一款帮助程序员构建项目的工具

  • 通过标签标记要使用的jar包,Maven会自动下载,提高开发效率

  • Maven 简化并标准化了项目构建过程。它将项目的编译,生成文档,创建报告,发布,部署等任务无缝衔接,构建成一套完整的生命周期。

maven仓库

Maven仓库用来存放Maven管理的所有jar包,maven仓库分为本地仓库 和 中央仓库。

  • 本地仓库:Maven本地的jar包仓库。

  • 中央仓库: Maven官方提供的远程仓库

本地仓库是一个文件夹,maven下载的jar包都统一存放在该文件夹下

中央仓库需要在maven配置文件中进行配置

maven仓库配置
  1. mavenRepository---maven本地仓库,用于存放maven下载的jar包

  2. settings.xml中配置本地仓库路径

  3. settings.xml中配置阿里云仓库(中央仓库)

maven项目配置
  1. 目录:src\main\java \dao \entity \main \service \util

  2. 配置文件 properties放在resources下

maven POM

POM(Project Object Model,项目对象模型)是 Maven 的基本组件,它是以 xml 文件的形式存放在项目的根目录下,名称为 pom.xml。

POM 中定义了项目的基本信息,用于描述项目如何构建、声明项目依赖等等。

当 Maven 执行一个任务时,它会先查找当前项目的 POM 文件,读取所需的配置信息,然后执行任务。在 POM 中可以设置如下配置:

  • 项目依赖

  • 插件

  • 目标

  • 构建时的配置文件

  • 版本

  • 开发者

  • 邮件列表

maven坐标

在Maven中,坐标是Jar包的唯一标识,Maven通过坐标在仓库中找到项目所需的Jar包。

pom.xml文件下

  • <groupld>项目组ID,定义当前Maven项目隶属的组织或公司,通常是唯一的。它的取值一般是项目所属公司或组织的网址或URL的反写,例如net.biancheng.www。

  • <artifactl>项目ID,通常是项目的名称。groupld和artifactld一起定义了项目在仓库中的位置。

  • <version>项目版本。

maven常用命令
  • clean:清除编译后的target文件,等价于右键删除target

  • validate :不进行编译,该阶段早于编译(compile)阶段,因此在执行任何其他构建步骤之前运行。

在validate阶段,Maven会执行以下任务:

  1. 检查项目是否存在,并且项目的基本信息(如groupId、artifactId、version等)是否正确设置。

  2. 检查项目结构是否正确,例如src目录是否存在,并且src目录中是否包含主源代码和测试代码。

  3. 检查项目的依赖关系是否正确设置,并且所有依赖项是否可用。

如果在validate阶段中发现任何问题,Maven将在构建之前停止,并显示相应的错误消息。这有助于确保项目正确设置并减少在后续构建步骤中出现问题的可能性。

  • complie:编译,对项目的源代码进行编译处理,生成target文件,等价于点击锤子按钮Build

  • package:打包,对项目进行打包,就是将项目编译为一个包(jar包或者war包),然后部署到服务器上运行

  • verify :在Maven中,verify命令是一个阶段,用于验证项目是否可以成功构建并通过测试。verify阶段是在package阶段之后执行的,它通常是构建过程中的最后一个阶段。

    在verify阶段,Maven将执行以下任务:

    1. 执行单元测试和集成测试。这些测试通常位于src/test目录中,Maven将运行这些测试来确保代码可以正确地执行,并且没有引入新的错误。

    2. 构建项目的二进制分发包,并验证它是否可以正确地构建。这通常包括构建JAR或WAR文件以及生成源码和Javadoc文档。

    3. 将构建产物部署到本地或远程Maven仓库,以便其他项目可以使用这些依赖项。

    如果在verify阶段中发现任何问题,Maven将在构建过程中停止,并显示相应的错误消息。这有助于确保项目可以成功构建并通过测试,以便可以安全地将其部署到生产环境中。

  • install:安装,将项目安装到maven本地仓库,别的项目可以引入使用

好管理好维护

Q&A

题1 解释java各分层的作用

  1. 数据访问层(Dao层):主要负责与数据存储进行交互,执行数据库操作,包括增删改查等。

  2. 业务逻辑层(Service层) :是应用程序的核心,负责处理业务逻辑,协调不同的Dao层操作,并提供对外的业务接口。

  3. 表示层(Entity层):通常包含应用程序的领域模型,即与业务相关的实体类,这些实体类用于在不同层次之间传递数据。

题2 maven的本地仓库和中央仓库的含义

  • 本地仓库:Maven本地的jar包仓库

  • 中央仓库: Maven官方提供的远程仓库

题3 maven的坐标有哪些及其含义

  • <groupld>项目组ID,定义当前Maven项目隶属的组织或公司,通常是唯一的。它的取值一般是项目所属公司或组织的网址或URL的反写。

  • <artifactl>项目ID,通常是项目的名称。groupld和artifactld一起定义了项目在仓库中的位置。

  • <version>项目版本。

题4 maven如何引入依赖

在maven的pom.xml文件中找到<dependencies>标签,在其中插入要引入依赖的<dependency>标签,刷新重新加载所有Maven项目,自动从中央仓库下载到本地仓库,完成引入依赖

相关推荐
非优秀程序员3 小时前
第04章 邮箱大战,163 与 QQ 的暗战|《互联网产品恩仇录》
java·vue.js·架构
知已难寻4 小时前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器
文丑颜不良啊6 小时前
LeetCode2481~2500题目解析
java·leetcode
Flynn Liang7 小时前
同一需求三套写法:用 Spring AI、LangChain4j、AgentScope Java 各实现一个带工具调用的 RAG 助手(实战对比)
java·人工智能·大模型·架构设计·spring ai·langchain4j·agentscope
聪明的笨猪猪7 小时前
实际工程问题:AI 生成 Spring Cache(@Cacheable / @CachePut / @CacheEvict)缓存注解踩坑
java·经验分享·面试·ai编程
愿有所息8 小时前
记一次 ARM64 + JDK8 上 fastjson2 的诡异数据错乱
java
秋饼8 小时前
MCP 2026-07-28 无状态协议大改版:Spring AI 2.1 多轮往返请求与网关路由落地
java·ai·技术分享·后端开发
SL_staff9 小时前
JVS-BI 实战:业务人员如何用零代码 ELT + 可视化配置构建实时经营分析闭环
java·spring·全栈
SL_staff10 小时前
企业AI落地难?JVS-AI渐进式实践:安全可控、小切口验证、标准化沉淀与规模化复制
java·开源·aigc
SL_staff11 小时前
JVS数字底座实践:构建企业级统一内容管理平台的技术路径
java·产品