注意本文本章节只是将一个完整系统的概要进行展示,并加入我自己的一些思考,对细节部分不再赘述,有时间再进行补充代码等部分;

目前太乱还未整理,不建议观看!

part1:

Java EE 架构:SSM(Spring + Spring MVC + MyBatis)框架
表现层技术:JSP
前端框架:easyUI
项目管理工具:Maven
数据库:MySQL

part2 开发环境部分的准备

对maven进行解压:wget tar -zvxf apache-maven-3.3.9-bin.tar.gz
对文档进行编辑:sudo gedit /etc/profile
创建数据库库:create database hrms_db;
使用数据库:user hrms_db;
表的创建:create table admin_tb(

admin_id int(11) not null auto_increment, 
 username varchar(20) not null, 
 role_name varchar(20) not null default ‘normaladmin’, 
 primary key(admin_id), 
 foreign key(admin_id) references admin_tb(admin_id) 
 ); 
 插入数据:insert into admin_tb(username,password,role_name) values(‘superadmin’,’123456’,’superadmin’),(‘admin1’,’123456’,’normaladmin’);

持久化实体
Domain Object 层
在项目 hrms 的 Java Resources 目录的 src/main/java 下新建包 com.shiyanlou.domain,作为 Domain Object 层的包。
在 src/main/java 目录下的 com.shiyanlou.domain 包中新建实体类 Admin,作为管理员表 的映射。
Domain Object 层实体类的设计实现, 就是为每一张数据库的表做一个映射,建立对应的实体

本节课程主要利用 MyBatis 框架实现 DAO 层。
首先在项目 hrms 的 Java Resources 目录的 src/main/java 下新建包 com.shiyanlou.dao,作为 DAO 层的包, 并在 src/main/resources 下新建一个 Folder mappers 用来放置 MyBatis 的 mapper.xml 文件。
在目录 src/main/resources 下新建 MyBatis 配置文件 mybatis-config.xml ,在这里主要配置了为 JavaBean 取别名,
在包 com.shiyanlou.dao 下建一个 AdminDao.java 接口文件,代码如下:
接着在 src/main/resources/mappers 路径下新建与 AdminDao 接口对应的映射文件 AdminMapper.xml,代码如下:

本节课程主要利用 Spring 框架实现 Service 层。
在项目 hrms 的目录 src/main/java 下新建包 com.shiyanlou.service,作为 Servcie 层接口的包,新建包 com.shiyanlou.service.impl 作为 Servcie 层实现的包。
在包 com.shiyanlou.service 下建一个 AdminService.java 接口文件,代码如下:
在包 com.shiyanlou.service.impl 下建一个类 AdminServiceImpl 实现上述的接口,代码如下:

本节课程将整合 Spring 和 MyBatis,并采用 Junit 进行单元测试。

1.2 实验知识点
Spring - MyBatis 整合
Junit 单元测试
在目录 src/main/resources 下新建日志文件 log4j.properties ,在里面添加如下内容:

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

在目录 src/main/resources 下新建 JDBC 属性文件 jdbc.properties ,在里面添加如下内容:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/hrms_db
jdbc.username=root
jdbc.password=

在目录 src/main/resources 下新建 spring-mybatis.xml 配置文件,该文件用来完成 Spring 和 MyBatis 的整合,主要包括了自动扫描,自动注入,配置数据库等,内容如下:
在项目 hrms 的 Java Resources 目录的 src/test/java 下新建包 com.shiyanlou.test,并在该包下新建测试类 SpringMybatisTest,添加如下代码:
在这里只测试了登录功能,目的是测试 Spring 与 MyBatis 是否整合成功,其他可以自行测试。

以 Junit Test 方式运行 SpringMybatisTest 测试类。

本节课程主要利用 Spring MVC 框架实现 Controller 层以及一些辅助类的实现。

1.2 实验知识点
Spring MVC 框架
在项目 hrms 的目录 src/main/java 下新建包 com.shiyanlou.controller,作为 Controller 层的包,新建包 com.shiyanlou.util,作为辅助类的包,这些辅助类是为了使 Controller 层的代码更好维护,以及实现一些其他功能。
2.1.1 DateUtil 类
在包 com.shiyanlou.util 下建一个辅助类 DateUtil,其中的 getDate() 方法的作用是返回格式化的当前日期,代码如下:
2.1.2 JsonDateValueProcessor 类
在包 com.shiyanlou.util 下建一个辅助类 JsonDateValueProcessor,其作用是将日期转化使之能在 easyUI 的 datagrid 中正常显示,代码如下:
2.1.3 ResponseUtil 类
在包 com.shiyanlou.util 下建一个辅助类 ResponseUtil,其 write() 方法的作用是将用 HttpServletResponse 返回前台 JSON 格式数据,同时减少 Controller 层代码的冗余,代码如下:
2.1.4 IntegrateObject 类
在包 com.shiyanlou.util 下建一个辅助类 IntegrateObject,其 genericAssociation() 方法的作用是完成 Employee 与 Department, Position 对象的关联映射,代码如下:
2.2.1 AdminController
在包 com.shiyanlou.controller 下新建一个类 AdminController,代码如下:

本节课程主要利用 easyUI 实现系统的前端页面。

1.2 实验知识点
easyUI
JavaScript
html

在项目 hrms 的 src->main->webapp 下新建 Folder views。

2.5.1 adminManage.jsp
在项目 hrms 的 src->main->webapp->views 下新建 JSP 页面 adminManage.jsp 作为系统管理页面,并添加如下代码:

本节课程主要利用 Spring MVC 框架实现拦截器以及 Spring MVC 框架的整合。

1.2 实验知识点
Spring MVC 框架
拦截器

在项目 hrms 的目录 src/main/java 下新建包 com.shiyanlou.interceptor,并在该包下新建类 LoginInterceptor,来验证用户是否登录,代码如下:
在目录 src/main/resources 下新建 Spring MVC 配置文件 spring-mvc.xml,添加如下代码:

Tomcat 的使用

本项目中的人事管理系统,采用了 SSM 框架+ easyUI 技术实现。在项目的开发过程中,首先是对系统进行了分析,在这里只做了功能性分析,然后是进行设计,如系统设计、数据库设计、界面设计等,其次才是编码实现,最后是测试。系统的整个开发工程中,用到了多种技术,包括轻量级 Java EE 开发框架 SSM,前端框架 easyUI 等。本项目的系统只是比较简易的人事管理系统,功能也比较简单,还有一些细节并未完善,如文件的上传下载、分页、页面的优化等方面。

本次课程的目的主要在于让同学们亲自动手采用 SSM 框架实现简单的开发,相信通过本课程,同学们的编码能力能得到提高。