当前位置: 首页>编程语言>正文

springmvc 项目搭建 springmvc新建项目

1. Idea新建Grande项目

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

springmvc 项目搭建 springmvc新建项目,springmvc 项目搭建 springmvc新建项目_java,第1张

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

springmvc 项目搭建 springmvc新建项目,springmvc 项目搭建 springmvc新建项目_springmvc 项目搭建_02,第2张

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

2.添加依赖

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

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

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

springmvc 项目搭建 springmvc新建项目,springmvc 项目搭建 springmvc新建项目_java_03,第3张

3.添加mvc相关文件

文件结构如下:

springmvc 项目搭建 springmvc新建项目,springmvc 项目搭建 springmvc新建项目_xml_04,第4张

①首先添加一个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设置,

springmvc 项目搭建 springmvc新建项目,springmvc 项目搭建 springmvc新建项目_springmvc 项目搭建_05,第5张

选择带"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。

springmvc 项目搭建 springmvc新建项目,springmvc 项目搭建 springmvc新建项目_xml_06,第6张

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

springmvc 项目搭建 springmvc新建项目,springmvc 项目搭建 springmvc新建项目_mvc_07,第7张

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

springmvc 项目搭建 springmvc新建项目,springmvc 项目搭建 springmvc新建项目_springmvc 项目搭建_08,第8张

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

springmvc 项目搭建 springmvc新建项目,springmvc 项目搭建 springmvc新建项目_mvc_09,第9张

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,不可接收错误。

springmvc 项目搭建 springmvc新建项目,springmvc 项目搭建 springmvc新建项目_java_10,第10张

因为返回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,得到了期望的结果。

springmvc 项目搭建 springmvc新建项目,springmvc 项目搭建 springmvc新建项目_xml_11,第11张


https://www.xamrdz.com/lan/53h1963293.html

相关文章: