使用过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. 利用ImageAI库只需几行python代码超简实现目标检测

    目录 什么是目标检测 目标检测算法 Two Stages One Stage python实现 依赖 安装 使用 附录 什么是目标检测 目标检测关注图像中特定的物体目标,需要同时解决解决定位(loca ...

  2. log4net服务启动后没有记录日志

    有时候在用log4net的时候,调试或执行是ok的,但是安装服务后没有记录日志. 这是因为服务启动是在C盘启动,而程序放的位置在别的目录. 这时候需要指定读取配置文件的位置为程序所在的目录 strin ...

  3. Java枚举类型 enum

    定义 An enum type is a special data type that enables for a variable to be a set of predefined constan ...

  4. JavaWeb——JSP开发1

    1.什么是jsp,为什么要使用jsp. 再使用idea创建完一个web工程后,在webapp目录下会生成一个index.jsp 直接编译运行,网站将自动打开这样一个网页: 所以我们可以推测这个inde ...

  5. 【win】【qt5打包】【qt程序打包成一个可执行文件(带图标任何win都可以运行哦)】

    [前言] 业务需求将qt程序打包成win可执行文件.咱是做linux的,奈何用的麒麟系统,程序运行在win,好嘛,重新在win qtcreator编译后打包呗. [目标] 1.给qt程序添加一个图标. ...

  6. Python依赖包整体迁移方法

    1.新建site-packages目录,进入到site-packages目录下: 2.在site-packages目录下执行pip freeze >requirements.txt: 3.查看r ...

  7. 表结构查询 Sql

    select row_number() over(order by a.column_id) rownumber, a.name, case ),a.),a.scale) +')' ),a.max_l ...

  8. 数据结构与算法—二叉排序树(java)

    前言 前面介绍学习的大多是线性表相关的内容,把指针搞懂后其实也没有什么难度.规则相对是简单的. 再数据结构中树.图才是数据结构标志性产物,(线性表大多都现成api可以使用),因为树的难度相比线性表大一 ...

  9. ansible模块介绍之ios_command

    一.模块简介 ios_command此模块将任意命令发送到ios节点并返回设备读取的结果 此模块不支持在配置模式下使用,即只支持在用户模式>和特权模式#下使用 官方文档地址:https://do ...

  10. 关于js-xlsx的使用

    写在前头,本人是名Java开发人员,偶尔在前端打打酱油,写出的代码或许存在问题,请路过的大神一一指正,不吝感激. 最近公司准备做一些关于Excel 数据导入和导出相关需求,之前有在开源社区看到说比起纯 ...