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中的内容:
index.jsp
我这里把父模块下的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处理,包括待返回参数的封装,这种模式有利于整个逻辑的解耦,更好的分层。