構建基於 Spring 的 Web 應用程序

REST,Spring
Remote
0
08:30 PM · Dec 01 ,2025

1. 概述本教程將演示如何使用 Spring 創建 Web 應用程序

我們將研究 Spring Boot 解決方案構建應用程序,並查看非 Spring Boot 方法。

我們將主要使用 Java 配置,但也會查看其 XML 配置等價物。

2. 設置使用 Spring Boot

2.1. Maven 依賴

首先,我們需要 spring-boot-starter-web 依賴:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

這個 starter 包含:

  • spring-webspring-webmvc 模塊,我們需要用於我們的 Spring Web 應用程序
  • 一個 Tomcat starter,以便我們可以在不明確安裝任何服務器的情況下直接運行我們的 Web 應用程序

2.2. 創建 Spring Boot 應用程序

使用 Spring Boot 的最簡單方法是創建一個主類並用 @SpringBootApplication 標註它:

@SpringBootApplication
public class SpringBootRestApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootRestApplication.class, args);
    }
}

這個單一的標註相當於使用 @Configuration, @EnableAutoConfiguration, 和 @ComponentScan.

默認情況下,它會掃描同一包或其下方的所有組件。

接下來,對於基於 Java 的 Spring bean 配置,我們需要創建一個 config 類並用 @Configuration 標註它:

@Configuration
public class WebConfig {

}

這個標註是基於 Java 的 Spring 配置的主要 Artifact,它本身被 meta-標註了 @Component,這使得標註的類成為標準 Bean,並且作為候選者參與組件掃描。

@Configuration 類的主要目的是作為 Spring IoC 容器的 Bean 定義源。 有關更詳細的描述,請參閲 官方文檔

讓我們也看看使用核心 spring-webmvc 庫的解決方案。

3. 使用 spring-webmvc 設置

3.1. Maven 依賴項

首先,我們需要 spring-webmvc 依賴項:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.3.3</version>
</dependency>

3.2. 基於 Java 的 Web 配置

接下來,我們將添加具有 註解的配置類:

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.baeldung.controller")
public class WebConfig {
   
}

這裏,與 Spring Boot 解決方案不同,我們需要顯式定義 以便設置默認的 Spring MVC 配置,以及 指定掃描組件包

註解提供 Spring Web MVC 配置,例如設置 Dispatcher servlet、啓用 註解,以及設置其他默認配置。

配置組件掃描指令,指定要掃描的包。

3.3. 初始化類

接下來,我們需要添加一個實現 接口的類:

public class AppInitializer implements WebApplicationInitializer {

    @Override
    public void onStartup(ServletContext container) throws ServletException {
        AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
        context.scan("com.baeldung");
        container.addListener(new ContextLoaderListener(context));

        ServletRegistration.Dynamic dispatcher = 
          container.addServlet("mvc", new DispatcherServlet(context));
        dispatcher.setLoadOnStartup(1);
        dispatcher.addMapping("/");
    }
}

這裏,我們使用 類創建 Spring context,這意味着我們僅使用基於註解的配置。然後,我們指定要掃描的包以及配置類。

最後,我們定義了 Web 應用程序的入口點——

此類可以完全取代 <3.0 Servlet 版本中的 文件。

4. XML 配置

我們還來快速看一下等效的 XML Web 配置:

<context:component-scan base-package="com.baeldung.controller" />
<mvc:annotation-driven />

我們可以用上面的 WebConfig 類替換這個 XML 文件。

要啓動應用程序,我們可以使用一個 Initializer 類來加載 XML 配置或 web.xml 文件。有關這兩種方法的更多詳細信息,請查看我們之前的文章。

5. 結論

在本文中,我們探討了兩種流行的 Spring Web 應用程序的啓動解決方案,一種使用 Spring Boot Web Starter,另一種使用核心 spring-webmvc 庫。

在下一篇文章中關於 REST with Spring 時,我將涵蓋在項目中的 MVC 設置、HTTP 狀態碼配置、負載映射和內容協商。

user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.