第4章 SSD框架整合开发
4.1 SSD框架整合概述
4.1.1 业务需求
- 账户数据电子化管理小程序的开发
- 背景 : 公司决定对账户信息进行电子化管理,所以现在需要开发一个小程序用来管理用户信息
- 假设:
- 有springdb数据库一个,账户表一张,表结构如下:
- 账户表(account)
SQL :
CREATE
- 要求:
- 一期项目 : 需要完成账户表的分页查询功能
- 二期项目 : 需要完成账户表的添加功能,删除功能
- 三期项目 : 需要完成账户表的修改功能
4.1.2 思路分析
根据我们编程的指导思想可知,如果你想完成表数据去页面展示及操作的愿望,那么你必须要明确的是:
1. 首先你得有一个mavenweb项目
2. 整理需要导入相应的jar包 (spring jar springmvc jar dbutils jar ......)
3. 根据需求整理相应的页面 (list.jsp add.jsp update.jsp)
4. 根据需求完成相关功能的开发 (DAO SERVICE WEB)
5. 配置配置文件整合框架完成功能(spring整合dbutils spring整合springmvc)
6. 整体测试
- 用例图
4.2 SSD框架整合实现
4.2.2 开始编码
SSM整合步奏 :
0) 涉及技术
1. Spring 5.0.2 --> 创建对象 对象的动态整合 (IOC DI) AOP (声明式事务) junit
2. dbutis 1.6 --> DAO层数据的增 删 改 查 c3p0 mysql jar
3. SpringMVC 5.0.2 --> WEB层页面控制 servlet jsp jstl
4. bootstrap 3.3.5 --> 页面提供CSS支持
5. jquery 1.9.1 --> 对页面的JS支持
1-5的技术知识点 其实都不强
1) jar包
记住 在导入jar包之前需要先设定好我们maven项目的初始化工作
<
涉及到的jar包 (以模块名展示):
1) Spring相关的
1. spring-context : Spring容器 (强大的团队 导入一个包 maven会把跟它相关联的包全部导入项目)
2. spring-webmvc : SpringMVC
2) SQL操作相关的
1. dbutis
3) 连接池相关
druid :
Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。
Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。
4) 单元测试相关的
junit : 单元测试,与spring-test放一起做单元测试
5) ServletAPI相关的
jsp-api : jsp页面使用request等对象
servlet-api : java文件使用request等对象
6) 数据库相关的
mysql-connector-java : mysql的数据库驱动包
7) 页面表达式
JSTL : JSTL标签库必须jar包 基础功能
standard : JSTL标签库的必须jar包 进阶功能
jar包依赖
<
2) 实体类
1) 实体类 : 需要注意字段与属性不对称的问题
以后 实体类的包 会有以下几种命名规则
com.xxx.domain --> 域;定义域
com.xxx.pojo --> POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。
com.xxx.entity --> 实体; 实际存在物; 本质;
实体类代码 :
package
3) DAO Service
DAO
package
实现类
package
Service
package
实现类
package
4.2.3 配置文件编写
编写spring配置文件 --> applicatioContext.xml
导入context命名空间
<?
加载注解配置的Bean --> 此处spring只管理到service层,所以排除controller注解配置
<!--
数据源配置
<!--
创建SQL的执行对象
<!--
完成效果
<?
单元测试
package
SpringMVC配置文件的编写 --> spring-mvc.xml
<?
扫描注解配置的controller
<
加载springmvc的预置功能
<
完成效果
<?
web.xml配置
1. 加载spring配置文件
<
2. 配置spring监听器
<
监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动。
监听器其实就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法立即被执行。
ContextLoaderListener
作用:在启动Web 容器时,自动装配Spring applicationContext.xml 的配置信息。
因为它实现了ServletContextListener 这个接口,在web.xml 配置这个监听器,启动容器时,就会默认执行它实现的方法。
在ContextLoaderListener 中关联了ContextLoader 这个类,所以整个加载配置过程由ContextLoader 来完成;
3. 配置过滤器(中文乱码过滤器,druid过滤器)
<!--
4. 配置springMVC的核心servlet
<
5. 配置druid连接池的web监控
<
连接池中不要忘记开启SQL统计
<!--
完成效果
<
web.xml完成效果
<?
别看WEB.xml中配置的东西比较多,但是都是固定配置,以后用的时候直接复制粘贴即可,也就是以后我们有三个配置文件是以素材的形式提供给大家,不用大家记忆的
1. spring配置文件applicationContext.xml
2. springMVC配置文件 spring-mvc.xml
3. web项目配置文件 web.xml
4.3 SSD框架功能实现
4.3.2 系统首页+分页功能
<%
效果
没有样式,看下控制台
没有样式的原因是SpringMVC把我们请求CSS和JS的URL当成了request请求,这时我们又没有能够处理这些个请求的后端控制器(为啥没有,因为这根本就不是业务请求啊)
所以此时如果你希望能正常访问你的这些个CSS和JS文件,你就需要告诉SpringMVC 这些呀都是静态文件,不是业务请求的URL,那么问题来了你怎么告诉SpringMVC呢?
在springMVC的配置文件里加入
<!--
说明:
location元素表示webapp目录下的static包下的所有文件;
mapping元素表示以/static开头的所有请求路径,如/static/a 或者/static/a/b;
该配置的作用是:DispatcherServlet不会拦截以/static开头的所有请求路径,并当作静态资源
交由Servlet处理。
从新启动服务器观察页面效果
首页效果完成之后我们根据首页的显示账户信息的URL请求编写后端控制器代码
@RequestMapping
分页页面
<%
分页JS
<
4.3.2 页面添加
添加页面
<%
后端控制器
package
时间类型转换
@InitBinder
注意,我们每次修改java文件后一定要重启一下tomcat服务器,要不然会出现不编译的情况;
编写错误提示页面
<%
4.3.3 页面删除
页面的JS
// 删除功能
执行的方法
@RequestMapping
4.3.4 页面更新
更新JS
// 更新账户信息
后端控制器
@RequestMapping
更新页面
<%
执行方法
@RequestMapping
到此SSD的整合开发完成!
版权声明:原创作品,允许转载,转载时务必以超链接的形式表明出处和作者信息。否则将追究法律责任。来自海牛学院-青牛