使用过SpringBoot的同学都知道,SpringBoot的pom.xml中的坐标都是按功能导入的,jar包之间的依赖SpringBoot底层已经帮我们做好了,例如我们要整合SprngMVC,只需要导入SpringMVC的起步依赖就可以了,SpringBoot会帮我们导入Spring和SpringMVC整合需要的jar包。

  SpringBoot是基于Spring4.0设计的,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。

  SpringBoot的特点: 

    为基于Spring的开发提供更快的入门体验
    开箱即用,没有代码生成,也无需XML配置。同时也可以修改默认值来满足特定的需求
    提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等
    SpringBoot不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式

  SpringBoot的核心功能

  起步依赖

  起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。

  自动配置

  SpringBoot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。该过程是Spring自动完成的。

下面给大家介绍一下,SpringBoot+SpringMVC+MyBatis快速整合搭建的过程,实现数据数据查询返回到前端进行展示;

一、数据库环境搭建

1、首先使用Navicat for MySql连接MySql数据库,创建一个新的数据库或者使用某一个已经存在的数据库,我这里新创建了一个test数据库,并新建一张user表,建表SQL和插入测试数据的SQL如下:

<!--SQL建表语句-->
CREATE TABLE `user` (
`id` INT (50) NOT NULL,
`name` VARCHAR (100) NOT NULL,
`age` INT (50) NOT NULL,
`address` VARCHAR (200) NOT NULL,
PRIMARY KEY (`id`)
);
<!--插入数据-->
INSERT INTO USER (id,name,age,address)VALUES(1,'小谢',18,'上海市');
INSERT INTO USER (id,name,age,address)VALUES(2,'小尚',18,'上海市');
INSERT INTO USER (id,name,age,address)VALUES(3,'小楠',18,'天津市');
INSERT INTO USER (id,name,age,address)VALUES(4,'小勋',18,'郑州市');
INSERT INTO USER (id,name,age,address)VALUES(5,'小乔',18,'郑州市');
INSERT INTO USER (id,name,age,address)VALUES(6,'小威',18,'郑州市');
INSERT INTO USER (id,name,age,address)VALUES(7,'小欢',18,'武汉市');

二、创建项目

1、使用IDEA创建一个Maven项目

2、项目的相关信息填写一下;

3、点击Finish,等待项目创建完成;

三、SpringBoot+SpringMVC+MyBatis整合

1、SpringBoot要求,项目要继承SpringBoot的起步依赖spring-boot-starter-parent;

<!--SpringBoot的起步依赖spring-boot-starter-parent-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent>

同时整合SpringMVC,要导入web的启动依赖;

 <dependencies>
<!--web的启动依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

整合MyBatis,要导入mybatis起步依赖;

 <!--mybatis起步依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>

还有MySql连接驱动;

<!-- MySQL连接驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>

2、导入依赖坐标后的pom.xml文件为:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--SpringBoot的起步依赖spring-boot-starter-parent-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent> <groupId>com.xyfer</groupId>
<artifactId>springbootDemo</artifactId>
<version>1.0-SNAPSHOT</version> <dependencies>
<!--SpringBoot要集成SpringMVC启动依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mybatis起步依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<!-- MySQL连接驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies> </project>

至此,SpringBoot+SpringMVC+MyBatis整合的依赖jar包已经全部导入完毕,底层SpringBoot帮我们已经做好了jar包的版本管理;

3、配置数据库信息;

SpringBoot默认扫描classpath下面的application.properties文件,在src\main\resources文件夹下面创建application.properties文件:

#DB Configuration:
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root #spring集成Mybatis环境
#pojo别名扫描包
mybatis.type-aliases-package=com.xyfer.domain
#加载Mybatis映射文件
mybatis.mapper-locations=classpath:mapper/*Mapper.xml

五、编写java代码

1、根据数据库表信息,在com.xyfer.domain包下面编写实体类User.java;

package com.xyfer.domain;

public class User {

    private int id;
private String name;
private int age;
private String address; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public String getAddress() {
return address;
} public void setAddress(String address) {
this.address = address;
} @Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", address='" + address + '\'' +
'}';
}
}

2、在com.xyfer.controller包下面编写UserController.java类;

package com.xyfer.controller;

import com.xyfer.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; @Controller
public class UserController { @Autowired
private UserService userService;
@RequestMapping("/test")
@ResponseBody
public String test(){ return userService.findAll().toString();
} }

3、在com.xyfer.service包下面编写接口UserService.java;

package com.xyfer.service;

import com.xyfer.domain.User;

import java.util.List;

public interface UserService {
/**
* 查询所有用户信息
* @return
*/
public List<User> findAll();
}

4、在com.xyfer.service.impl包下编写实现类UserServiceImpl.java;

package com.xyfer.service.impl;

import com.xyfer.dao.UserDao;
import com.xyfer.domain.User;
import com.xyfer.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import java.util.List;
@Service
@Transactional
public class UserServiceImpl implements UserService { @Autowired
private UserDao userDao;
@Override
public List<User> findAll() { return userDao.findAll();
}
}

5、在com.xyfer.service.dao下编写接口UserDao.java;

package com.xyfer.dao;

import com.xyfer.domain.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository; import java.util.List;
@Mapper
public interface UserDao {
/**
* 查询所有用户信息
* @return
*/
public List<User> findAll();
}

6、由于在application.properties中配置的Mapper文件的位置如下;

7、所以在resources下新建文件夹mapper,并新建文件UserMapper.xml文件;

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.xyfer.dao.UserDao">
<select id="findAll" resultType="user">
select * from user;
</select>
</mapper>

至此,SpringBoot+SpringMVC+MyBatis快速整合搭建一个项目已经完成;

六、启动项目并测试

1、通过引导类启动项目,控制台打印项目信息,项目启动成功;

2、在浏览器输入访问地址:http://localhost:8080/test,成功返回数据库中一开始插入的数据;

至此,我们已经完成SpringBoot+SpringMVC+MyBatis快速整合搭建一个简单的项目,并从数据库中成功返回数据到前端展示!

SpringBoot+SpringMVC+MyBatis快速整合搭建的更多相关文章

  1. springboot+springmvc+mybatis项目整合

    介绍: 上篇给大家介绍了ssm多模块项目的搭建,在搭建过程中spring整合springmvc和mybatis时会有很多的东西需要我们进行配置,这样不仅浪费了时间,也比较容易出错,由于这样问题的产生, ...

  2. SSM(Spring+SpringMVC+Mybatis)框架环境搭建(整合步骤)(一)

    1. 前言 最近在写毕设过程中,重新梳理了一遍SSM框架,特此记录一下. 附上源码:https://gitee.com/niceyoo/jeenotes-ssm 2. 概述 在写代码之前我们先了解一下 ...

  3. SSM(Spring,SpringMVC,Mybatis)框架整合项目

    快速上手SSM(Spring,SpringMVC,Mybatis)框架整合项目 环境要求: IDEA MySQL 8.0.25 Tomcat 9 Maven 3.6 数据库环境: 创建一个存放书籍数据 ...

  4. Spring+SpringMvc+Mybatis框架集成搭建教程

    一.背景 最近有很多同学由于没有过SSM(Spring+SpringMvc+Mybatis , 以下简称SSM)框架的搭建的经历,所以在自己搭建SSM框架集成的时候,出现了这样或者那样的问题,很是苦恼 ...

  5. Spring+SpringMVC+MyBatis+easyUI整合基础篇(十一)SVN服务器进阶

    日常啰嗦 上一篇文章<Spring+SpringMVC+MyBatis+easyUI整合基础篇(十)SVN搭建>简单的讲了一下SVN服务器的搭建,并没有详细的介绍配置文件及一些复杂的功能, ...

  6. Spring+SpringMVC+MyBatis+easyUI整合优化篇(二)Log4j讲解与整合

    日常啰嗦 上一篇文章主要讲述了一下syso和Log间的一些区别与比较,重点是在项目的日志功能上,因此,承接前文<Spring+SpringMVC+MyBatis+easyUI整合优化篇(一)Sy ...

  7. Spring+SpringMVC+MyBatis+easyUI整合优化篇(十三)数据层优化-表规范、索引优化

    本文提要 最近写的几篇文章都是关于数据层优化方面的,这几天也在想还有哪些地方可以优化改进,结合日志和项目代码发现,关于数据层的优化,还是有几个方面可以继续修改的,代码方面,整合了druid数据源也开启 ...

  8. Spring+SpringMVC+MyBatis+easyUI整合进阶篇(一)设计一套好的RESTful API

    写在前面的话 看了一下博客目录,距离上次更新这个系列的博文已经有两个多月,并不是因为不想继续写博客,由于中间这段时间更新了几篇其他系列的文章就暂时停止了,如今已经讲述的差不多,也就继续抽时间更新< ...

  9. Spring+SpringMVC+MyBatis+easyUI整合

    进阶篇 Spring+SpringMVC+MyBatis+easyUI整合进阶篇(一)设计一套好的RESTful API 优化篇 Spring+SpringMVC+MyBatis+easyUI整合优化 ...

随机推荐

  1. java虚拟机学习笔记(六)---垃圾收集算法

    主要讨论集中垃圾收集算法的思想及发展过程. 1.标记-清除法 最基础的收集算法是标记-清除法,算法分为标记和清除两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象,其标记过程 ...

  2. 63342 接口 奇遇 IDEA

    今天遇到一件很奇怪的事情,本来是想做一些手机页面看看效果,用IDEA 打搭建了一个静态页面网站,可是手机死活就是访问不了,网上的配置方法试过也没有用,其中包括这篇很详细博客: http://fanni ...

  3. PDF.js 详情解说

    pdf.js资源下载 点我下载 自定义默认加载的pdf资源 在web/view.js中我们可以通过DEFAULT_URL设置默认加载的pdf.通过上面代码我们也可以看出来可以通过后缀名来指定加载的pd ...

  4. 01-WIN2012R2+SQL2016故障转移群集的搭建

    一.前期准备  1.1.准备4台机器 机器名 IP 功能 jf-yukong 192.168.10.200 做域控服务器 Jf-storage 192.168.10.201 做ISCSI存储服务器 J ...

  5. javaScript基础-02 javascript表达式和运算符

    一.原始表达式 原始表达式是表达式的最小单位,不再包含其他表达式,包含常量,直接量,关键字和变量. 二.对象和数组的初始化表达式 对象和数组初始化表达式实际上是一个新创建的对象和数组. 三.函数表达式 ...

  6. 洛谷 P1960 列队

    题意简述 有一个n × m 的矩阵,第i行第j列元素编号为(i - 1)× m +j 每次将一个数取出,其他元素依次向左,向上填补空缺,最后将取出的数放入矩阵最后一格 求每次取出数的编号 题解思路 由 ...

  7. C/C++ 数据类型

    C/C++ 数据类型 C语言包含5个基本数据类型: void, integer, float, double, 和 char. 类型 描述 字节数 取值范围 void 空类型 1 int 整型 4 - ...

  8. (三十九)c#Winform自定义控件-面包屑导航

    前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. 开源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control ...

  9. 使用sc 命令写脚本 添加和删除服务 简单应用

    添加服务 @echo.服务启动...... @echo off @sc create 服务名 binPath= "%~dp0\服务路径" @sc config 服务名 start= ...

  10. Luogu P5490 扫描线

    模板题,想象一条线从左边扫到右边,只有在矩阵边界才会产生影响,所以我们离散化缩小数据范围,再用线段树维护扫描线上的情况,得出结果 #include<bits/stdc++.h> #defi ...