Maven搭建多模块企业级项目+SSM框架搭建

版权声明:未经允许,不得转载 https://blog.csdn.net/cincoutcin/article/details/84968969

一、开发环境:

0、Eclipse Java EE IDE for Web Developers:  /Version: 2018-09 (4.9.0)  /  Build id: 20180917-1800

1、tomcat:tomcat9.0

2、JDK:jdk1.8

3、maven:apache-maven-3.6.0

二、为什么要分模块,是干饭吃多了吗?还是开发闲的无聊故意装逼?

0、依赖关系的优化,不分模块,一个pom.xml中依赖越来越长,很多不必要的依赖被引入,甚至一个依赖出现多个版本。

1、专人专模块维护和开发,对于与数据库交互的dao层,sql语句想交给经验丰富的人维护和开发,分模块后有利于该目的实现。

2、一个entitys模块和dao模块可被多个service模块及web模块使用,相信做过类似:“一个系统分为前台给用户使用和后台给管理员使用”的系统的小伙伴们深有感触。分模块后,完全可以将dao模块和entitys模块写死,写两套service和web,一套给前台用户,一套做给后台管理员使用。

三、多模块项目搭建过程:

0、项目结构及依赖关系:

1、创建父模块:File------new----other---Maven

2、创建子模块 entitys/dao/service

父模块----右键----new---other----maven

将study-entity打成jar包发到maven本地,供study-dao、study-service、study-web依赖。

字模块右键----Run As-----Maven Build---

按上述步骤依次创建study-dao、study-service。并打包发到maven本地。

打包完后可以进自己的本地依赖仓库去看有没有具体的包生成:

为study-dao添加study-entitys依赖

保存后:查看pom.xml文件:

同理为study-service添加study-dao依赖。

3、创建子模块 web

study-parent 右键---new---Maven---Maven Module

这时study-web有错误,在webapp下面新建WEB-INF文件夹 再新建web.xml文件,错误消失。

web.xml中的内容:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd" version="2.4">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

按之前步骤为study-web添加study-service依赖。
至此项目框架搭建结束。

我这里把父模块下的src文件夹删除了,然后添加了一个sql文件夹,用于存放整个项目的sql脚本。

具体ssm代码后续持续更新。

四、分层优化:

0、项目结构优化:

mysql表实体类:工具自动生成。

mapper.xm:工具自动生成。

mapper.java:工具自动生成。

前台或后端实体类:用户参数传递的封装----自己创建。

mysql表实体类:表的联查,如果涉及到包含一个已知表,直接extends继承已知表,然后再新的实体类里嘉加上自己的字段。

Iservice.java:返回值,用HashMap<>或JSONObject类型。入参,用前台或后端实体类,或个别单个数据类型。

serviceImpl.java(@Service):

controller.java(@Controller):只负责接受参数及请求分发,及前台或后端实体类的对象生成,使用JSONObject类型进行封装。

对service层这种参数的处理,直接优化了整个项目的结构,让所有的逻辑都在service处理,包括待返回参数的封装,这种模式有利于整个逻辑的解耦,更好的分层。

猜你喜欢

转载自blog.csdn.net/cincoutcin/article/details/84968969