浅谈IDEA搭建SSM框架的集成
前言
学习完MyBatis,Spring,SpringMVC之后,我们需要做的就是将这三者联系起来,Spring实现业务对象管理,Spring MVC负责请求的转发和视图管理, MyBatis作为数据对象持久化引擎。这样搭配的优点是:轻量、自由度高、Spring与Spring MVC契合度更好。通过一个图书管理示例完成SSM框架的集成。
本章目标
通过图书管理系统完成SSM框架的集成。
项目构建
一.父模块
1.我们打开idea选择create new project,然后选择Maven项目,我们暂时先不要选择maven骨架,等我们的视图层(WEB-UI层)的时候再选择maven骨架
2.这一步输入组织名,模块名称
Groupld:组织名
artifactId:模块名称
version:版本号
在Maven世界中,每个工程都有它唯一的 组织名、模块名、版本 ,这三个就是maven项目的坐标。一个maven工程可以打包成jar、war、pom等形式,但是它们都是拥有上述三个坐标的。我们在项目过程中导入的jar包就是通过上述坐标值唯一确定的。因此,我们在创建一个maven工程时会要求指定具体的 组织名、模块名、版本、打包方式。
二.子模块(common层)
1.创建子模块common层,然后点击next
三.子模块(Dao层)
1.子模块Dao层和Comon一样,这里就不再做过多的描述了
2.直接完成最后一步
四.子模块(Service层)
1.同理,如上
五.子模块(Entity层)
1.实体层和mmon层一样都是同样的操作步骤,这里我们就不进行截图了,操作步骤都一样
六.子模块(WEB-UI层)
1.子模块web-ui层需要讲一下,因为我们这一层是视图层,所以我们需要选择maven骨架。
2.然后点击next,输入模块名之后finish就可以了,在这里我们需要选择自己本地的中央仓库。自此我们的多模块项目已经搭建好了
3.完整的项目结构如下:
4.在这里我们发现视图层多了webapp这个文件夹,以后的开发过程中我们的视图都是放在WEB_INF目录下的
common模块:通用模块,不依赖其它任何模块,主要有utils、可以在多个不同项目中使用
entitie模块:POJO、VO、DTO
dao模块:数据持久化,访问数据库,这里使用Mybatis
service模块:业务模块,处理业务逻辑
webui模块:B/S结构的表示层,主要用于在浏览器中显示数据,提供用户接口
模块依赖
(1)父模块依赖
1.接下来我们去父模块的pom.xml文件进行统一的模块管理,为了方便管理版本和后续添加依赖不那么繁琐,我们在父模块pom.xml文件中只对依赖进行统一管理起来,而不进行依赖,当我们需要哪一个依赖的时候,我们只需要引入即可。
父模块pom.xml文件
(2)子模块Comon层模块依赖
common模块中的pom.xml文件
(3)子模块Dao层模块依赖
Dao模块中的pom.xml文件,这一层中我们需要依赖common层和实体层,因为在这一层中我们涉及到和数据库打交道,一张表就对应一个POJO
(4)子模块Service层模块依赖
Service模块中的pom.xml文件,这一层中我们需要依赖dao层
(5)子模块Entity层模块依赖
实体层暂时不需要依赖任何的模块,Entity模块中的pom.xml文件
(6)子模块WEB-UI层模块依赖
Service模块中的pom.xml文件,这一层中我们需要依赖service层
(7)最终的依赖效果
这里只展示了common层中的依赖,剩下的依赖也一样
连接数据库
1.这是navicat的操作界面,前面的一些连接配置我在这里就不进行过多的描述了。
2.右键localhost_3306选择新建数据库,输入数据的名称,字符集我们选择倒数第二个,也就是utf-8的然后确定就可了
3.数据库脚本
文件配置
文件配置是一项非常繁琐的工作内容,稍有不慎整个项目就废了,所以需要非常的细心才有可能将这一整个项目搭建成功,否则将会一夜之间回到解放前。所以我所操作的每一个不大家都需要谨慎再谨慎。
1.首先我们先移除父模块的src目录,其实移不移除都无所谓,在这里我主要是为了影响干扰,移除之后目录如下
2.我们需要在每一个子模块添加对应的包名和配置文件
子模块common层
R.java
子模块dao层
BookMapper.xml
applicationContext.xml
db.properties
##mysql连接字符串 #驱动 mysql.driver=com.mysql.jdbc.Driver #连接字符串 mysql.url=jdbc:mysql://localhost:3306/booksystem?useUnicode=true&characterEncoding=UTF-8 #用户名 mysql.uid=root #密码 mysql.password=123456 mysql.acquireIncrement=5 mysql.initialPoolSize=10 mysql.minPoolSize=5 mysql.maxPoolSize=20
mybatis.xml
BookDao,java
package com.booksystem.dao; import com.booksystem.entity.Book; import java.util.List; public interface BookDao { //查询全部图书信息 public List<Book> getAllBooks(); }
子模块entity层
Book.java
写了怎么多的东西,我们需要测试一下,减少错误,现在我们只是在做练习,代码量比较少但是到了真正项目的时候代码量肯定比现在多许多,为了养成这种习惯,我一般写到Dao层的时候就进行测试一下。
BookTest.java
我们看到测试结果已经出来了,如果这一步你成功了的话那么你已经完成了80%了,下一步的话我们就配置service层
子模块service层
BookService
package com.booksystem.service; import com.booksystem.entity.Book; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; public interface BookService { //查询全部图书信息 public List<Book> getAllBooks(); }
BookImple
package com.booksystem.imple; import com.booksystem.dao.BookDao; import com.booksystem.entity.Book; import com.booksystem.service.BookService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class BookImple implements BookService { @Autowired public BookDao bookDao; public List<Book> getAllBooks() { return bookDao.getAllBooks(); } }
子模块webui层
我们发现在这一层中没有存放源代码的文件加,所以我们需要自己添加,选择file,project structure
生成之后的目录
BookController.java
package com.book.controller; import com.booksystem.common.R; import com.booksystem.service.BookService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller @RequestMapping("/book") public class BookController { @Autowired public BookService bookService; @GetMapping("/getAllBook") @ResponseBody public R getAllBook(){ return R.ok(bookService.getAllBooks()); } }
springmvc-servlet.xml
web.xml
3.配置tomcat
4.项目部署
在这里我们就将项目进行热部署就可以了,我们在开发阶段就暂时不进行打包,以后我们有服务器的时候就可以打包成war或者jar包
5.启动项目
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>图书管理系统</title> <style> h1{ text-align: center; } #myTab{ width: 800px; margin: 0 auto; } </style> </head> <body> <h1>图书管理系统</h1> <table id="myTab" cellpadding="0" cellspacing="0" border="1"> <tr> <td>编号</td> <td>名称</td> <td>作者</td> </tr> </table> <script src="js/jquery-1.11.3.min.js"></script> <script> $.ajax({ url:'/book/getAllBook', type:'get', dataType:'json', }).done(function (data) { if(data.code===1){ $("#myTab tr:not(:eq(0))").remove(); for (var i=0;i<data.data.length;i++){ var tr="<tr>"; tr+="<td>"+(i+1)+"</td>"; tr+="<td>"+data.data[i].bname+"</td>"; tr+="<td>"+data.data[i].bauthor+"</td>"; tr+="</tr>" $("#myTab").append(tr); } } }) </script> </body> </html>
浅谈IDEA搭建SSM框架的集成的更多相关文章
- 浅谈一下SSI+Oracle框架的整合搭建
浅谈一下SSI+Oracle框架的整合搭建 最近换了一家公司,公司几乎所有的项目都采用的是Struts2+Spring+Ibatis+Oracle的架构,上一个东家一般用的就是JSF+Spring,所 ...
- Maven项目搭建(二):Maven搭建SSM框架
上一章给大家讲解了如何使用Maven搭建web项目. 这次给大家介绍一下怎么使用Maven搭建SSM框架项目. 首先我们来看一下pom.xml的属性介绍: project: pom的xml根元素. p ...
- 浅谈Java的集合框架
浅谈Java的集合框架 一. 初识集合 重所周知,Java有四大集合框架群,Set.List.Queue和Map.四种集合的关注点不同,Set 关注事物的唯一性,List 关注事物的索引列表,Q ...
- 浅谈java类集框架和数据结构(2)
继续上一篇浅谈java类集框架和数据结构(1)的内容 上一篇博文简介了java类集框架几大常见集合框架,这一篇博文主要分析一些接口特性以及性能优化. 一:List接口 List是最常见的数据结构了,主 ...
- 快速搭建ssm框架
快速搭建SSM框架 因为最近有很多朋友问我自己的项目搭建的不够完善,并且经常出现一些小问题,那么今天我又整理了一下文档教大家如何快速搭建SSM框架我是用 eclipse搭建的,如果想用idear的话我 ...
- Eclipse中使用Maven搭建SSM框架
Eclipse中不使用Maven搭建SSM框架:https://www.cnblogs.com/xuyiqing/p/9569459.html IDEA中使用Maven搭建SSM框架:https:// ...
- 第n次搭建 SSM 框架
什么说第 N 次搭建SSM框架呢? 刚学习java的时候,搭建 SSM 框架想做一个个人项目之类的,后来没搭起来,也就拖延了,进入公司之后,接触的第一个项目就是SSM的,模仿了一下,也能搭个简简单单的 ...
- 详解intellij idea搭建SSM框架(spring+maven+mybatis+mysql+junit)(下)
在上一篇(详解intellij idea 搭建SSM框架(spring+maven+mybatis+mysql+junit)(上))博文中已经介绍了关于SSM框架的各种基础配置,(对于SSM配置不熟悉 ...
- 详解intellij idea搭建SSM框架(spring+maven+mybatis+mysql+junit)(上)
SSM(Spring+SpringMVC+MyBatis)框架集由Spring.SpringMVC.MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架. 其中spring是一个轻 ...
随机推荐
- Requests方法 -- 项目实现自动发送邮件
"""1.discover方法里面有三个参数:-case_dir:这个是待执行用例的目录.-pattern:这个是匹配脚本名称的规则,test*.py意思是匹配test开 ...
- VUE-CLI3.0安装和使用echart方法
在Vue中使用echarts的两种方式 npm webpack vue-cli echarts vue.js 准备:使用vue-cli脚手架 如果你已经有自己的项目,可以跳过这一步. npm下载v ...
- C语言学习书籍推荐《C语言接口与实现:创建可重用软件的技术》下载
<C语言接口与实现:创建可重用软件的技术>概念清晰.实例详尽,是一本有关设计.实现和有效使用C语言库函数,掌握创建可重用C语言软件模块技术的参考指南.书中提供了大量实例,重在阐述如何用一种 ...
- windows中实现python,redis服务自动重启(任务计划程序+bat脚本)
需求:银行电脑无法自动开机,只能 通过 应用相关服务每天自动重启的方式实现 服务更新并且防止服务假死,内存过大 等情况 相关工具:win10系统中,使用windows自带的任务计划程序 和 bat脚本 ...
- android_layout_relativelayout(一)
android的相对布局relativelayout也是一个值得研究的部分.先归纳下最近的几个心得. 相对布局中,xml文件第一个控件总是在屏幕的左上角为它的位置,别管你手机是竖着的还是横着的. 从第 ...
- VNC服务配置
Windows通过VNC远程桌面访问Ubuntu设备:一个WIN7的机器,一个系统为Ubuntu的机器 (二者可以均可为虚拟机或实体机) 目的:在Windows系统上通过VNC远程访问Ubuntu. ...
- 个人永久性免费-Excel催化剂功能第83波-遍历文件夹内文件信息特别是图像、音视频等特有信息
在过往的功能中,有体现出在Excel上管理文件的极大优势,在文件的信息元数据中,有图片和音视频这两类特有的属性数据,此篇对过往功能的一个补充,特别增加了图片和音视频信息的遍历功能. 使用场景 在文件管 ...
- pyqt QT设计师制作关于对话框(软件版权申明)
一.实验环境 1.anaconda2 2.5.0 + python2.7 2.pyinstaller3.0 二.操作步骤 2.1 启动designer.exe 2.2 单击“文件” -> “新建 ...
- MySQL 5.7和8.0性能测试
目录 背景 前提 环境 测试 双1模式下 0 2 模式下 结论 背景 测试mysql5.7和mysql8.0 分别在读写.只读.只写模式下不同并发时的性能(tps,qps) 前提 测试使用版本为mys ...
- 为什么一直玩A股的股民转战去玩港美股了?港美股系统搭建!
今天先聊一下,为什么买港美股?不买 A 股? 1.A 股散户太多,港股美股机构居多. A 股市场,散户占据了70%以上交易份额,散户太多有什么坏处?少量的机构和大户很容易坐庄操控股价.A 股几乎所有票 ...