2

前言:
该文章是基于 SpringBoot整合MyBatis框架快速入门 文章的基础上实现的下列功能。

SpringMVC框架概述:

SpringMVC 是一种基于 Java 实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架。它通过一套注解,让一个简单的 Java 类成为处理请求的控制器,而无须实现任何接口。

前期准备

1.编辑pom.xml文件,添加Spring web依赖,Thymeleaf依赖

Web依赖(提供了Spring MVC核心API,同时会嵌入一个Tomcat服务器)

<!-- 添加Spring web依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

Thymeleaf依赖(提供了一个视图解析器对象以及数据绑定机制)

<!-- 添加Thymeleaf依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

2.在application.properties中添加视图解析器配置

# server port
server.port=80

# Spring thymeleaf
# 修改页面不需要重启服务器
spring.thymeleaf.cache=false
spring.thymeleaf.prefix=classpath:/templates/pages/
spring.thymeleaf.suffix=.html

3.Spring MVC进行编码实现

3.1 创建工程

创建工程SpringBoot整合SpringMVC.png

3.2 编写GoodsMapper.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.cy.pj.goods.dao.GoodsDao">
    <!-- 查询所有用户信息 -->
    <select id="findAll" resultType="com.cy.pj.goods.utils.User">
            select * from emp
    </select>
</mapper>
3.3 编写GoodsDao接口
package com.cy.pj.goods.dao;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;

import com.cy.pj.goods.utils.User;
/**
 * @Mapper 用于描述(做标记)数据层访问接口,用于告诉mybatis框架
 *    使用此注解描述的接口要由底层为创建实现类,在实现类中基于mybatis
 *    API实现与数据库的交互,这个类的对象最后会交给Spring管理。
 */
@Mapper
public interface GoodsDao {
    /**
     * 查询所有用户信息
     * @return List集合
     */
    public List<User> findAll();
}
3.4 编写GoodsService接口
package com.cy.pj.goods.service;

import java.util.List;

import com.cy.pj.goods.utils.User;

/**
 * 用户模块的业务层接口,用于制定标准
 * @author BigData
 *
 */
public interface GoodsService {
    
    /**
     * 查询所有用户信息
     * @return 全部信息
     */
    public List<User> findAll();
}

3.5 编写GoodsServiceImpl类
该类实现了GoodsService接口,用于用于用户模块的业务的具体实现

package com.cy.pj.goods.service.impl;


import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.cy.pj.goods.dao.GoodsDao;
import com.cy.pj.goods.service.GoodsService;
import com.cy.pj.goods.utils.User;
/**
 * 业务层对象,后续会在此对象中执行
 * @author BigData
 */
@Service
public class GoodsServiceImpl implements GoodsService{
    
    @Autowired
    private GoodsDao goodsDao;
    
    @Override
    public List<User> findAll() {
        return goodsDao.findAll();
    }
}

3.6 编写CoodsController类

package com.cy.pj.goods.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.cy.pj.goods.service.GoodsService;
import com.cy.pj.goods.utils.User;
/* 
 *@Controller:如果当前类所在的包配置了Spring容器包扫描,具有
 *该注解的类,就会作为bean注册到spring容器中,由spring容器创建实例。 
 */
@Controller
@RequestMapping("/show/")
public class GoodsController {
    
    @Autowired
    private GoodsService goodsService;
    /*
     * @RequestMapping:为当前方法配置访问路径
     * 如果Controllor类上没有配置访问路径,当前项目中所有controller中方法上的访问路径都不能冲突
     */
    @RequestMapping("findAll")
    public String findAll(Model model) {
        List<User> lists = goodsService.findAll();
        model.addAttribute("list", lists);
        return "show";
        
    }
}
3.7 创建html页面

在templates/pages目录下创建show.html,用于展示数据
创建网页.jpg

3.7 编辑html页面
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <h1>The Show Page</h1>
    <table>
        <thead>
            <tr>
                <th>id</th>
                <th>name</th>
                <th>age</th>
                <th>salary</th>
            </tr>
        </thead>
        <tbody>
            <tr th:each="l:${list}">
                <td th:text="${l.id}">1</td>
                <td th:text="${l.name}">Tom</td>
                <td th:text="${l.age}">18</td>
                <td th:text="${l.salary}">5000.0</td>
            </tr>
        </tbody>
    </table>
</body>
</html>
输出和展示

urlAnd结果.jpg

到这里,框架的整合就完了,感谢各位的参考,有不足的地方,请留下您宝贵的意见!!!


PiHriH_lh
4 声望5 粉丝

任时光匆匆流去