前言

学习完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框架的集成的更多相关文章

  1. 浅谈一下SSI+Oracle框架的整合搭建

    浅谈一下SSI+Oracle框架的整合搭建 最近换了一家公司,公司几乎所有的项目都采用的是Struts2+Spring+Ibatis+Oracle的架构,上一个东家一般用的就是JSF+Spring,所 ...

  2. Maven项目搭建(二):Maven搭建SSM框架

    上一章给大家讲解了如何使用Maven搭建web项目. 这次给大家介绍一下怎么使用Maven搭建SSM框架项目. 首先我们来看一下pom.xml的属性介绍: project: pom的xml根元素. p ...

  3. 浅谈Java的集合框架

    浅谈Java的集合框架 一.    初识集合 重所周知,Java有四大集合框架群,Set.List.Queue和Map.四种集合的关注点不同,Set 关注事物的唯一性,List 关注事物的索引列表,Q ...

  4. 浅谈java类集框架和数据结构(2)

    继续上一篇浅谈java类集框架和数据结构(1)的内容 上一篇博文简介了java类集框架几大常见集合框架,这一篇博文主要分析一些接口特性以及性能优化. 一:List接口 List是最常见的数据结构了,主 ...

  5. 快速搭建ssm框架

    快速搭建SSM框架 因为最近有很多朋友问我自己的项目搭建的不够完善,并且经常出现一些小问题,那么今天我又整理了一下文档教大家如何快速搭建SSM框架我是用 eclipse搭建的,如果想用idear的话我 ...

  6. Eclipse中使用Maven搭建SSM框架

    Eclipse中不使用Maven搭建SSM框架:https://www.cnblogs.com/xuyiqing/p/9569459.html IDEA中使用Maven搭建SSM框架:https:// ...

  7. 第n次搭建 SSM 框架

    什么说第 N 次搭建SSM框架呢? 刚学习java的时候,搭建 SSM 框架想做一个个人项目之类的,后来没搭起来,也就拖延了,进入公司之后,接触的第一个项目就是SSM的,模仿了一下,也能搭个简简单单的 ...

  8. 详解intellij idea搭建SSM框架(spring+maven+mybatis+mysql+junit)(下)

    在上一篇(详解intellij idea 搭建SSM框架(spring+maven+mybatis+mysql+junit)(上))博文中已经介绍了关于SSM框架的各种基础配置,(对于SSM配置不熟悉 ...

  9. 详解intellij idea搭建SSM框架(spring+maven+mybatis+mysql+junit)(上)

    SSM(Spring+SpringMVC+MyBatis)框架集由Spring.SpringMVC.MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架. 其中spring是一个轻 ...

  10. 使用Springboot快速搭建SSM框架

    Spring Boot设计目的是用来简化Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置. 一.环境准备 Idea 2017 或 201 ...

随机推荐

  1. MySQL数据恢复和复制对InnoDB锁机制的影响

    MySQL通过BINLOG记录执行成功的INSERT,UPDATE,DELETE等DML语句.并由此实现数据库的恢复(point-in-time)和复制(其原理与恢复类似,通过复制和执行二进制日志使一 ...

  2. windows 隐藏文件方法

    隐藏: 然后在里面输入:attrib +s +a +h +r f:\123 (f的意思就是F盘,123就是你新建的文件夹名字),然后按回车,你会发现F盘下的123文件夹不见的,其实就是被你隐藏了. 文 ...

  3. ScheduledExecutorService定时周期执行指定的任务

    示例代码 package com.effective.common.concurrent.execute; import java.text.DateFormat; import java.text. ...

  4. Windows OpenVPN Client and tls-auth

    The official Windows OpenVPN client does not seem to work properly with the tls-auth option if a key ...

  5. AE实现点击一个要素,并显示其属性

    第一步:根据鼠标点击处的点,找到被选中的要素 public IFeature Find2(IPoint pPoint) { ITopologicalOperator pTopoOpe = pPoint ...

  6. Ubuntu 下安装使用文件比较合并图形工具Meld

    Meld是一款跨平台的文件比较合并工具使用Python开发,具体内容参照官网:http://meldmerge.org/ 注意以下环境要求: Requirements Python 2.7 (Pyth ...

  7. web应用,我们需要了解什么?

        对于前端开发来说,web应用我们并不陌生.今天想要讨论一下,在开发一个web应用的时候,我们需要一些基本的知识储备.我们知道,一个web应用脱离不了(request)请求和响应(respons ...

  8. Google AdSense的CPC点击单价超百度联盟(2014)

    很久没有关注AdSense了,一是访问不太方便,二是网站投放AdSense广告相当少,估计每天收入都不到1美元,所以就懒得去看了,一般都是几个月才去看一看. AdSense还行吗? AdSense点击 ...

  9. C#图片裁切,生成新图片

    /// 图片裁剪,生成新图,保存在同一目录下,名字加_new,格式1.png 新图1_new.png /// </summary> /// <param name="pic ...

  10. elasticsearch的监控脚本

    监控elasticsearch cluster 集群 通过主动模式将数据发送给zabbix server import json import struct import socket import ...