整合SpringMVC

6 篇文章 0 订阅
4 篇文章 0 订阅
本文介绍了如何将SpringMVC整合到Spring项目中,包括引入SpringMVC的jar包,配置spring-mvc.xml和web.xml,确保配置文件的命名一致性,并通过简单的功能测试验证配置是否成功。
摘要由CSDN通过智能技术生成

Spring整合MyBatis

1.引入SpringMVC的jar包以及配置文件

SpringMVC能够实现和Spring的无缝衔接,前面我们已经把Spring的包添加进了项目(Spring整合MyBatis),接下来只需引入SpringMVC的jar包。如下所示:

<!-- springmvc依赖 -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>5.2.1.RELEASE</version>
</dependency>

把Spring 的配置文件重新加入一份,用来配置SpringMVC的设置。在这里把名称设定为spring-mvc.xml。
在 web.xml中配置上 SpringMVC 的前端控制器,大家注意一个地方,我们现在需要加载让DispatcherServlet加载的配置文件是2个,spring-application.xml和 spring-mvc.xml,所以把读取的文件方式改成spring-*.xml,*在这里是通配符的意思。如下所示:

<!--配置springmvc-->
<servlet>
  <servlet-name>dispatcherServlet</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <!--加载springmvc.xml配置文件-->
  <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:spring-*.xml</param-value>
  </init-param>
  <!--启动服务器,创建该servlet-->
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>dispatcherServlet</servlet-name>
  <url-pattern>*.do</url-pattern>
</servlet-mapping>

2.统一配置文件的命名

很多的项目中都有不同的命名习惯,但是要满足一定的格式,检查配置文件格式是否一致。配置文件名称如下图所示:
在这里插入图片描述

3.启动项目检查配置

检查项目是否配置成功,必须报保证项目正常启动。这只是简单的测试,为了验证框架之间是否能够协同工作,我们以简单的实例来进行测试,依然选取MVC的设计模式来进行项目的搭建。功能如下所示:

index.jsp
超链接访问控制器
UserController
查询所有user信息的get.do
UserService/UserServiceImpl
提供查询所有user的方法selectAll
UserMapper/UserMapper.xml
访问数据库完成user查询selectAll
数据库
UserMapper/UserMapper.xml
访问数据库完成user查询selectAll
UserService/UserServiceImpl
提供查询所有user的方法selectAll
UserController
查询所有user信息的get.do,控制台打印出信息
welcome.jsp
成功
  1. 按照功能图所示,我们在 webapp下的 index.jsp页面添加上超链接来访问控制器,并新建个welcome.jsp页面。如下所示:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>测试首页</title>
</head>
<body>
    <a href="get.do">测试ssm</a>
</body>
</html>

welcome.jsp如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>测试结果页面</title>
</head>
<body>
    测试成功!
</body>
</html>
  1. 在src/main/java下新建包com.gxy.entity,在包下新建一个类User,包含属性id,username,password,对属性完成封装,实现Serizable接口,并重写toString 方法。如下所示:
package com.gxy.entity;

import java.io.Serializable;

/**
 * @className: PACKAGE_NAME.com.gxy.entity.User
 * @description: TODO
 * @author: ych
 * @create: 2021-06-02 21:31
 */
public class User implements Serializable {
    int id;
    String username;
    String password;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}
  1. 在src/main/java新建包com.gxy.mapper,在包下新建一个接口 UserMapper,并把UserMapper.xml 放入该包下,在 UserMapper中定义一个查询所有用户的接口selectAlI,注意在接口的头部添加@Repository,在UserMapner.xml文件中定义好查询的sql语句。如下所示:

UserMapper.java

@Repository
public interface UserMapper {
    List<User> selectAll();
}

UserMapner.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.gxy.mapper.UserMapper">
    <select id="selectAll" resultType="com.gxy.entity.User">
        select * from user
    </select>
</mapper>
  1. 在 src/main/java新建包 com.gxy.service,在包下定义一个接口 UserService。如下所示:
package com.gxy.service;

import com.gxy.entity.User;

import java.util.List;

/**
 * @className: com.gxy.service.UserService
 * @description: TODO
 * @author: ych
 * @create: 2021-06-03 16:15
 */
public interface UserService {
    List<User> selectAll();
}
  1. 在src/main/java新建包 com.gxy.service.impl,在包下定义一个新的类UserServicelmpl实现UserService接口。包含属性UserMapper并自动注入。注意在该类的头部添加注解@Service。如下所示:
@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;
    @Override
    public List<User> selectAll() {
        return userMapper.selectAll();
    }
}
  1. 在src/main/java新建包 com.gxy.controller,在包下定义一个类UserController。包含属性UserService,并完成自动注入,定义一个外理器getUser()。注意在该类的头部添加注解@Controller和@RequestMapping,并且需要把处理器getUser()允许接收的请求方式修改为Get,以便和页面的超链接请求对应,大家也可以记住超链接的访问形式就是Get方式。如下所示:
@Controller
@RequestMapping("/")
public class UserController {
    @Autowired
    private UserService userService;
    @RequestMapping(value = "/get.do",method = {RequestMethod.GET})
    public String getUser(){
        List<User> users = userService.selectAll();
        System.out.println("users = " + users);
        return "forward:welcome.jsp";
    }
}
  1. 启动程序测试功能。页面能够进行正确跳转,打开后台控制台,出现以下所有用户信息,则表示ssm搭建成功。
    在这里插入图片描述
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值