乐趣区

关于springboot:SpringBoot整合SpringMVC框架

前言:
该文章是基于 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 创立工程

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, 用于展现数据

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>
输入和展现

到这里,框架的整合就完了,感激各位的参考,有有余的中央,请留下您贵重的意见!!!

退出移动版