使用Gradle创建SpringMVC项目

本文详细指导如何使用Gradle创建一个Spring MVC项目,包括添加依赖、配置文件、控制器和视图,以及集成JSON解析和FastJson。通过一步步操作,读者将掌握基本的MVC架构在Java Web中的应用。

1. Idea新建Grande项目

依次点击菜单File->New->Project, 新建项目,选择Gradle,如下图勾选Java和Web两个选项,点击Next按钮进行下一步

在这里插入图片描述

设置项目的名字,本例名为gradle_mvc

在这里插入图片描述

点击Finish完成设置,项目开始创建,等待项目创建完成。

2.添加依赖

编辑build.gradle文件, 在dependencies内添加spring-webmvc的依赖:

implementation 'org.springframework:spring-webmvc:5.3.10'

保存并点击Gradle面板中的Reload按钮,重新加载依赖,最终可以看到如图所示依赖情况。

在这里插入图片描述

3.添加mvc相关文件

文件结构如下:

在这里插入图片描述

①首先添加一个Controller:

package cn.flylolo.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author FlyLolo
 * @date 2021/10/9 16:42
 */
@RestController
@RequestMapping("user")
public class UserController {
    @GetMapping("")
    public String helloWorld(){
        return "Hello World!";
    }
}

②在resources目录下新建springmvc.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd 
        http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <context:component-scan base-package="cn.flylolo"/>
    <mvc:annotation-driven />
    <mvc:default-servlet-handler />
</beans>

③webapp目录下新建WEB-INF文件夹,其中新建web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         id="WebApp_ID" version="3.0">
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:springmvc.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <!--配置springmvc核心servlet-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

4. 项目设置

打开File->Project Struture设置,

在这里插入图片描述

选择带"exploded"后缀的,修改图中方框中的内容:

Name比较长,可以自行修改,不改也可以,本例改为gradlemvc

Output directory自动生成的路径有问题,去掉"exploded", 例如本例改为:F:\gradle_mvc\build\libs\gradle_mvc-1.0-SNAPSHOT.war。

5.配置Tomcat

配置Tomcat服务,打开Run/Debug Configuration, 点击左上角的加号,选择Tomcat Server->Local。

在这里插入图片描述

HTTP prot默认为8080,若已被使用则改为其他的端口。

在这里插入图片描述

选择artifacts,点击右下角的Fix按钮,跳转到Deployment标签,选择刚刚配置的gradlemvc。

在这里插入图片描述

保存并启动项目,访问HelloController,地址:http://localhost:8081/gradlemvc/user

在这里插入图片描述

6.添加json解析:

如果只是返回String类型是没问题了,但大多数需要返回的时候Json类型。

新建一个User类:

package cn.flylolo.model;

import lombok.Data;

/**
 * @author FlyLolo
 * @date 2021/10/11 11:18
 */
@Data
public class User {
    private String userId;
    private String userName;
}

这里用到了lombok,需要在build.gradle中添加引用。

implementation 'org.projectlombok:lombok:1.18.20'
annotationProcessor 'org.projectlombok:lombok:1.18.20'

注意需要添加第二行,否则在调用对应的get和set方法的时候会出现 “错误: 找不到符号”的错误。

在UserController中添加新的方法:

@GetMapping("/{userId}")
public User getName(@PathVariable String userId){
    User user = new User();
    user.setUserId(userId);
    user.setUserName(userId + "的名字");
    return user;
}

将返回一个User对象。

访问http://localhost:8081/gradlemvc/user/testid,返回了406,不可接收错误。

在这里插入图片描述

因为返回Json类型,需要添加对应的message-converters,本例采用FastJson。用下面代码替换springmvc.xml中的<mvc:annotation-driven />

<mvc:annotation-driven>
    <mvc:message-converters register-defaults="true">
        <!-- 配置Fastjson支持 -->
        <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
            <property name="supportedMediaTypes">
                <list>
                    <value>application/json</value>
                    <value>text/html;charset=UTF-8</value>
                </list>
            </property>
        </bean>
    </mvc:message-converters>
</mvc:annotation-driven>

这需要在build.gradle中添加FastJson的引用:

implementation 'com.alibaba:fastjson:1.2.78'

再次访问http://localhost:8081/gradlemvc/user/testid,得到了期望的结果。

在这里插入图片描述

7. 项目GitHub地址

https://github.com/FlyLolo/JavaSimple/tree/main/src/gradle_mvc

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FlyLolo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值