SpringBoot整合mybatis和SpringMVC的使用

SpringBoot不是什么新的框架可以认为是Spring的精简版,通俗的说它将平常的配置文件信息封装好打成jar包,节省时间,

一般我们搭建框架需要拷贝好多配置文件,使用SpringBoot之后你就发现真简洁。

点击进入我码云上的项目 或者直接进入https://gitee.com/it_qin/DemoSpringBoot.git

这是MAVEN项目,不是用MAVEN进行管理的可以

将pom.xml中配置的jar在网上搜索下载加来附加到你的项目中将我项目中的类文件、

配置文件拷贝到你项目就OK了。

项目结构
SpringBoot整合mybatis和SpringMVC的使用_第1张图片

application.properties

spring.datasource.url=jdbc:mysql://localhost/dapeng?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&autoReconnect=true
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#有配置文件需要扫描mybatis映射文件
#mybatis.mapper-locations=classpath:/mapper/*Mapper.xml

mybatis.type-aliases-package=com.example.myproject.domain

#config-location: classpath:mybatis/mybatis-config.xml
#springmvc视图的配置 现在以java类的形式配置了[SpringMvcConfig类]。
#spring.mvc.view.prefix=/WEB-INF/
#spring.mvc.view.suffix=.jsp

SpringMvcConfig

package com.example.myproject.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

/**
 * 

* 继承WebMvcConfigurerAdapter类可重写springboot中的默认配置。 * *

[2018/2/7] * * @author HongKun.Qin */
@Configuration public class SpringMvcConfig extends WebMvcConfigurerAdapter { @Override public void configureViewResolvers(ViewResolverRegistry registry) { System.out.print("spring-mvc"); registry.jsp("/WEB-INF/", ".jsp"); } }

HelloWorldController

package com.example.myproject.controller;

import com.example.myproject.domain.User;
import com.example.myproject.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

import java.util.List;

/**
 * 

如果返回的类型不是ModelAndView,则[@RestController注解相当于@ResponseBody + @Controller合在一起的作用。]

[2018/2/6] * * @author HongKun.Qin */
@RestController public class HelloWorldController { @Autowired private UserService userService; /** *

功能:[跳转index1界面 ][2018/2/7 13:40][创建人: HongKun.Qin]

*

* * @param * @param null : * @return */
@RequestMapping("/index") public ModelAndView index() { ModelAndView mav = new ModelAndView(); mav.setViewName("index1"); return mav; } /** *

功能:[ 返回json格式][2018/2/7 13:42][创建人: HongKun.Qin]

*

* * @param * @param null : * @return */
@RequestMapping("/json") public String indexJson() { List users = userService.getUserList(); users.forEach(value -> System.out.println(String.format("学员信息 %s,%s", value.getUser_id(), value.getUserAccount())) );//需要jdk1.8才可以使用这种方式。 return "hello"; } /** *

功能:[跳转index2界面 ][2018/2/7 13:40][创建人: HongKun.Qin]

*

加这个的目的是 如果同时存在index.jsp和index.ftl会默认跳转index.ftl

* * @param * @param null : * @return */
@RequestMapping("/index2") public ModelAndView index2() { ModelAndView mav = new ModelAndView(); mav.setViewName("index"); return mav; } }

UserDaoMapper

package com.example.myproject.dao;

import com.example.myproject.domain.User;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 

使用的是无配置注解形式,配置文件形式在application.properties中配置扫描就可以 已经注释掉。

[2018/2/6] * * @author HongKun.Qin */
public interface UserDaoMapper { @Select("select * from user where userAccount = '18888320271'") List selectUserList(); }

User

package com.example.myproject.domain;

/**
 * 

[2018/2/6] * * @author HongKun.Qin */
public class User { private String user_id; private String userAccount; public String getUser_id() { return user_id; } public void setUser_id(String user_id) { this.user_id = user_id; } public String getUserAccount() { return userAccount; } public void setUserAccount(String userAccount) { this.userAccount = userAccount; } }

UserService

package com.example.myproject.service;

import com.example.myproject.domain.User;

import java.util.List;

/**
 * 

[2018/2/6] * * @author HongKun.Qin */
public interface UserService { List getUserList(); }

UserServiceImpl

package com.example.myproject.service.impl;

import com.example.myproject.dao.UserDaoMapper;
import com.example.myproject.domain.User;
import com.example.myproject.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 

1

[2018/2/6] * * @author HongKun.Qin */
@Service public class UserServiceImpl implements UserService { @Autowired UserDaoMapper userDaoMapper;//使用idea打开后这会报错,不用管正常使用。 @Override public List getUserList() { return userDaoMapper.selectUserList(); } }

DemoApplication

package com.example;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;

/**
 * 需要注意的是这个类要放在所有类的上级,因为程序运行之后初始化这个类下面的所有包。
 */
@SpringBootApplication
@MapperScan("com.example.myproject.dao")//扫描dao层接口
public class DemoApplication{
    /*运行这个方法就能启动服务了。*/
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

index.ftl


<html>
<head>
    <meta charset="utf-8"/>
    <title>界面title>
<#--<link rel="stylesheet" type="text/css" href="index.css" />-->
<#--<script type="text/javascript"> script>-->
head>
<body>
<div>
    spring-mvc和spring-boot整合测试。 ftl
div>
<#--<script type="text/javascript"> script>-->
body>

html>

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8" %>

<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
    if (path.equals("/")) {
        path = "";
    }
%>

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <%--"stylesheet" type="text/css" href="<%=path%>/.css">--%>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
    <%----%>
    <title>title>
head>
<body>
<h3>spring-mvc和spring-boot整合测试。 jsph3>
<%----%>
body>
html>

index1.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8" %>

<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
    if (path.equals("/")) {
        path = "";
    }
%>

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <%--"stylesheet" type="text/css" href="<%=path%>/.css">--%>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
    <%----%>
    <title>title>
head>
<body>
    <h3>spring-mvc和spring-boot整合测试。 jsph3>
<%----%>
body>
html>

pom.xml


<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.0modelVersion>

    <groupId>com.examplegroupId>
    <artifactId>demoartifactId>
    <version>0.0.1-SNAPSHOTversion>
    <packaging>jarpackaging>

    <name>demoname>
    <description>Demo project for Spring Bootdescription>

    <parent>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-parentartifactId>
        <version>1.5.10.RELEASEversion>
        <relativePath/> 
    parent>

    <properties>
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
        <java.version>1.8java.version>
    properties>

    <dependencies>
        
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starterartifactId>
        dependency>
        
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-testartifactId>
            <scope>testscope>
        dependency>
        
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>
        <dependency>
            <groupId>org.mybatis.spring.bootgroupId>
            <artifactId>mybatis-spring-boot-starterartifactId>
            <version>1.1.1version>
        dependency>

        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <version>5.1.21version>
        dependency>

        

        <dependency>

            <groupId>org.springframework.bootgroupId>

            <artifactId>spring-boot-starter-tomcatartifactId>

           

        dependency>

        <dependency>

            <groupId>org.apache.tomcat.embedgroupId>

            <artifactId>tomcat-embed-jasperartifactId>

           

        dependency>
        
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-freemarkerartifactId>
        dependency>

    dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
            plugin>
        plugins>
    build>


project>

mysql运行文件

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `user_id` varchar(32) NOT NULL,
  `userAccount` varchar(13) DEFAULT NULL,
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('ewkdrjde', '18888800000');
INSERT INTO `user` VALUES ('jadsfe25', '18888888888');
INSERT INTO `user` VALUES ('jserda32', '18888320271');

“`

有什么不明白的可以再下方进行评论,大家一起进步。

你可能感兴趣的:(SpringBoot)