Spring MVC入门案例

简介: 作为Spring非常重要的一个组件,Spring MVC在java web领域已经是当之无愧的领头人物,能正确的使用Spring MVC非常重要,今天就一起搭建一个Spring MVC项目的骨架,一起入门下Spring MVC。

作为Spring非常重要的一个组件,Spring MVC在java web领域已经是当之无愧的领头人物,能正确的使用Spring MVC非常重要,今天就一起搭建一个Spring MVC项目的骨架,一起入门下Spring MVC。

软件

  • Spring 4.x
  • Tomcat 8.x
  • MacOS(不限,Java是跨语言的)

案例

  1. 新建maven项目,名称可以任意起。我们的就叫做me.aihe.learnspring

    img_5722ff7c9e237b63cef4b493ba0d7d92.jpe
    image

  2. 添加Spring与spring mvc的依赖。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>me.aihe</groupId>
    <artifactId>learnspring</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <spring.version>4.3.14.RELEASE</spring.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
    </dependencies>
    
</project>
  1. 配置项目为tomcat项目,记得提前下载好tomcat软件,我们通过idea指定tomcat的位置。
img_f13bf1fcac25ea8e441e7db91132ad54.jpe
image
  1. 通过idea配置项目为web项目
img_fc5bd0cddf904b1bc1d4fd355fca4b27.jpe
image
  1. 配置Java Web项目的web.xml文件。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>
  1. 配置dispatcher-servlet.xml,tomcat启动的时候会加载servlet名称-servlet.xml的文件。所以我们要在WEB-INF下再添加一个文件dispatcher-servlet.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:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    <mvc:annotation-driven />
    <context:component-scan base-package="me.aihe" />

</beans>
  1. 创建一个新的Controller来测试。
package me.aihe;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * description:  该文件说明
 *
 * @author aihe
 * @version 1.0
 * @date 2018/11/6
 */
@Controller
public class FirstController {

    @RequestMapping({"/","/index"})
    @ResponseBody
    public String index(){
        return "index";
    }
}

  1. 再次确认下,项目是否为正确的web项目,idea项目启动的包是否正确,对比下面的图片。先按照下面的进行配置,每个包的细节后面再说。
img_650e0d5494241a8fdb81c6f03475c897.jpe
image
img_44285b79c94966a1d8c7067b1ca680c2.jpe
image
  1. 启动项目,可以看到正确的项目输出。浏览器上看到页面是正常的工作。
img_7872df9455651bdec040408fa327e8c5.jpe
image
img_b202e9a0df250df5cb7b5a9fc1f966b9.jpe
image
  1. 到这里,我们的Spring MVC基本项目就搭建完成了,再后续开发的时候,需要不断的添加依赖让项目变得越来越复杂,但是复杂的项目也是由简单的项目一步步来的,基础的东西掌握扎实也很重要。

Spring Boot的web案例

鉴于Spring Boot构建一个web项目非常的简单快速,这里顺便提及一下,而且近些年Spring Boot越来越火,掌握一下也是很有必要的。

  1. 基本上现在的IDE都会有Spring Boot的initializer. 我们用的是Idea,如图。


    img_8ad177cd948d645c85443f6d0428393f.jpe
    image
  2. 勾选web依赖就可以。

img_3fc4b69eb6d787899592892b16ffcc36.jpe
image
  1. 直接创建一个Controller的java类就可以。
img_45e3f7f88c8f3a4091a92f499e19b254.jpe
image
  1. 启动项目
img_665e2fbfdf03576bae4b614987614986.jpe
image

是不是非常的简单,Spring Boot极大的简化了我们开发的步骤,但是想要提高技术最好还是要明白其内部的原理。

最后

这次关于Spring MVC的环境搭建就说到这,本次主要介绍了使用Tomcat搭建Spring MVC项目与使用Spring Boot搭建web项目。

如果想对Spring MVC有更深入的理解,参考之前写的一些关于Spring MVC原理分析的文章
探索Spring

参考

相关文章
|
6月前
|
前端开发 Java 微服务
《深入理解Spring》:Spring、Spring MVC与Spring Boot的深度解析
Spring Framework是Java生态的基石,提供IoC、AOP等核心功能;Spring MVC基于其构建,实现Web层MVC架构;Spring Boot则通过自动配置和内嵌服务器,极大简化了开发与部署。三者层层演进,Spring Boot并非替代,而是对前者的高效封装与增强,适用于微服务与快速开发,而深入理解Spring Framework有助于更好驾驭整体技术栈。
|
6月前
|
XML Java 应用服务中间件
【SpringBoot(一)】Spring的认知、容器功能讲解与自动装配原理的入门,带你熟悉Springboot中基本的注解使用
SpringBoot专栏开篇第一章,讲述认识SpringBoot、Bean容器功能的讲解、自动装配原理的入门,还有其他常用的Springboot注解!如果想要了解SpringBoot,那么就进来看看吧!
691 2
|
11月前
|
人工智能 Java API
Spring AI 实战|Spring AI入门之DeepSeek调用
本文介绍了Spring AI框架如何帮助Java开发者轻松集成和使用大模型API。文章从Spring AI的初探开始,探讨了其核心能力及应用场景,包括手动与自动发起请求、流式响应实现打字机效果,以及兼容不同AI服务(如DeepSeek、通义千问)的方法。同时,还详细讲解了如何在生产环境中添加监控以优化性能和成本管理。通过Spring AI,开发者可以简化大模型调用流程,降低复杂度,为企业智能应用开发提供强大支持。最后,文章展望了Spring AI在未来AI时代的重要作用,鼓励开发者积极拥抱这一技术变革。
3974 71
Spring AI 实战|Spring AI入门之DeepSeek调用
|
安全 Java 数据库
Spring Security 实战指南:从入门到精通
本文详细介绍了Spring Security在Java Web项目中的应用,涵盖登录、权限控制与安全防护等功能。通过Filter Chain过滤器链实现请求拦截与认证授权,核心组件包括AuthenticationProvider和UserDetailsService,负责用户信息加载与密码验证。文章还解析了项目结构,如SecurityConfig配置类、User实体类及自定义登录逻辑,并探讨了Method-Level Security、CSRF防护、Remember-Me等进阶功能。最后总结了Spring Security的核心机制与常见配置,帮助开发者构建健壮的安全系统。
2014 0
|
9月前
|
前端开发 Java API
Spring Cloud Gateway Server Web MVC报错“Unsupported transfer encoding: chunked”解决
本文解析了Spring Cloud Gateway中出现“Unsupported transfer encoding: chunked”错误的原因,指出该问题源于Feign依赖的HTTP客户端与服务端的`chunked`传输编码不兼容,并提供了具体的解决方案。通过规范Feign客户端接口的返回类型,可有效避免该异常,提升系统兼容性与稳定性。
683 0
|
9月前
|
前端开发 Java API
基于 Spring Boot 3 与 React 的 Java 学生信息管理系统从入门到精通实操指南
本项目基于Spring Boot 3与React 18构建学生信息管理系统,涵盖前后端开发、容器化部署及测试监控,提供完整实操指南与源码,助你掌握Java全栈开发技能。
484 0
|
9月前
|
SQL Java 数据库连接
Spring、SpringMVC 与 MyBatis 核心知识点解析
我梳理的这些内容,涵盖了 Spring、SpringMVC 和 MyBatis 的核心知识点。 在 Spring 中,我了解到 IOC 是控制反转,把对象控制权交容器;DI 是依赖注入,有三种实现方式。Bean 有五种作用域,单例 bean 的线程安全问题及自动装配方式也清晰了。事务基于数据库和 AOP,有失效场景和七种传播行为。AOP 是面向切面编程,动态代理有 JDK 和 CGLIB 两种。 SpringMVC 的 11 步执行流程我烂熟于心,还有那些常用注解的用法。 MyBatis 里,#{} 和 ${} 的区别很关键,获取主键、处理字段与属性名不匹配的方法也掌握了。多表查询、动态
290 0
|
9月前
|
JSON 前端开发 Java
第05课:Spring Boot中的MVC支持
第05课:Spring Boot中的MVC支持
382 0
|
10月前
|
Java 关系型数据库 MySQL
【Spring】【事务】初学者直呼学会了的Spring事务入门
本文深入解析了Spring事务的核心概念与使用方法。Spring事务是一种数据库事务管理机制,通过确保操作的原子性、一致性、隔离性和持久性(ACID),维护数据完整性。文章详细讲解了声明式事务(@Transactional注解)和编程式事务(TransactionTemplate、PlatformTransactionManager)的区别与用法,并探讨了事务传播行为(如REQUIRED、REQUIRES_NEW等)及隔离级别(如READ_COMMITTED、REPEATABLE_READ)。
752 1
|
10月前
|
Java API 微服务
Java 21 与 Spring Boot 3.2 微服务开发从入门到精通实操指南
《Java 21与Spring Boot 3.2微服务开发实践》摘要: 本文基于Java 21和Spring Boot 3.2最新特性,通过完整代码示例展示了微服务开发全流程。主要内容包括:1) 使用Spring Initializr初始化项目,集成Web、JPA、H2等组件;2) 配置虚拟线程支持高并发;3) 采用记录类优化DTO设计;4) 实现JPA Repository与Stream API数据访问;5) 服务层整合虚拟线程异步处理和结构化并发;6) 构建RESTful API并使用Springdoc生成文档。文中特别演示了虚拟线程配置(@Async)和StructuredTaskSco
1107 0