gpt4 book ai didi

java - 在网络应用程序中使用启动 spring 的最新方法

转载 作者:行者123 更新时间:2023-12-01 12:05:30 24 4
gpt4 key购买 nike

我最近看到了一些在 Web 应用程序中使用最新 Spring 的情况。我对如何使用 Tomcat 启动 Spring 应用程序很感兴趣,因为我没有在 web.xml 或另一个调度程序 servlet 中看到任何内容。调度程序 servlet 可能是使用类创建的,但是...如何创建?

最佳答案

我猜当您说在 Web 应用程序中使用最新的 Spring 时,您正在谈论 Spring 4,特别是 Spring Boot .

Spring 是这样描述 Spring Boot 的:

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that can you can "just run".

那么,如何启动并运行独立的 Web 应用程序呢?答案很简单,您在 pom.xml 中声明一些依赖项,添加一个应用程序启动器(一个经典的旧 main 方法),该启动器调用 Spring Boot 中的一个方法,该方法启动整个事情。在这种情况下,整个事情会扫描组件的代码库,然后启动在 pom.xml 中声明的嵌入式容器 (Tomcat) - 之后一切就绪!

应用程序启动器通常会调用启动嵌入式 Web 容器的 SpringApplication.run 方法。您还可以应用一组注释,例如定义应该扫描哪些包或可以使用什么类型的组件。示例包括:@EnableAutoConfiguration@ComponentScan。各种注释通常可用于替换一些旧的 XML 标签或设置一些不错的默认值 convention over configuration .

来自spring.io blog :

When you run your application, Spring Boot will detect that you have a Spring MVC controller and start up an embedded Apache Tomcat 7 instance, by default.

所以,这基本上意味着 Spring Boot 将启动 Tomcat,但您也可以使用其他容器(例如 Jetty)。

要开始整个过程​​,只需将以下依赖项添加到您的 pom.xml 中,该项目就启用了 Spring Boot:

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>${spring.version}</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

然后创建应用程序启动器:

@Controller
@EnableAutoConfiguration
public class IndexController {

@RequestMapping("/")
@ResponseBody
String index() {
return “I am alive”;
}

// The application launcher, starts a simple controller running in the Tomcat container
public static void main(String... args) throws Exception {
// Start an application with your IndexController
SpringApplication.run(IndexController.class, args);
}
}

我真的推荐Spring Boot documentation 。关于这个问题的一些其他有用资源是:

关于java - 在网络应用程序中使用启动 spring 的最新方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27655645/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com