SpringBoot 快速入门

本文介绍如何使用SpringBoot快速搭建并运行一个简单的Web应用,包括项目配置、依赖引入及启动方式,并通过浏览器验证运行结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求描述:使用SpringBoot编写HelloWorld入门程序

  1. 新建Maven项目
  2. 在pom文件中添加以下依赖
    <!-- Inherit defaults from Spring Boot -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.3.RELEASE</version>
    </parent>

    <!-- Add typical dependencies for a web application -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <!-- Package as an executable jar -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
  1. 创建启动类,如下:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@EnableAutoConfiguration
public class QuickstartApplication {

    @RequestMapping("/")
    @ResponseBody
    String home(){
        return "Hello World!!!";
    }

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

}
  1. 测试运行
    选中Main方法–>右键Run as –> Spring Boot App(基于Spring的sts-bundle的IDE)或者Java Application. 出现如下的日志信息且无报错信息即为启动正常。

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
[32m :: Spring Boot :: [39m      [2m (v1.4.3.RELEASE)[0;39m

[2m2017-01-19 09:55:45.757[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [36mc.t.s.quickstart.QuickstartApplication  [0;39m [2m:[0;39m Starting QuickstartApplication on EZ-20161228YDGX with PID 8256 (D:\tyrone-workspace\tyrone-springboot-quickstart\target\classes started by Administrator in D:\tyrone-workspace\tyrone-springboot-quickstart)
[2m2017-01-19 09:55:45.762[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [36mc.t.s.quickstart.QuickstartApplication  [0;39m [2m:[0;39m No active profile set, falling back to default profiles: default
[2m2017-01-19 09:55:45.972[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [36mationConfigEmbeddedWebApplicationContext[0;39m [2m:[0;39m Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@6379eb: startup date [Thu Jan 19 09:55:45 CST 2017]; root of context hierarchy
[2m2017-01-19 09:55:48.395[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [36ms.b.c.e.t.TomcatEmbeddedServletContainer[0;39m [2m:[0;39m Tomcat initialized with port(s): 8080 (http)
[2m2017-01-19 09:55:48.411[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [36mo.apache.catalina.core.StandardService  [0;39m [2m:[0;39m Starting service Tomcat
[2m2017-01-19 09:55:48.412[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [36morg.apache.catalina.core.StandardEngine [0;39m [2m:[0;39m Starting Servlet Engine: Apache Tomcat/8.5.6
[2m2017-01-19 09:55:48.539[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[ost-startStop-1][0;39m [36mo.a.c.c.C.[Tomcat].[localhost].[/]      [0;39m [2m:[0;39m Initializing Spring embedded WebApplicationContext
[2m2017-01-19 09:55:48.539[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[ost-startStop-1][0;39m [36mo.s.web.context.ContextLoader           [0;39m [2m:[0;39m Root WebApplicationContext: initialization completed in 2571 ms
[2m2017-01-19 09:55:48.745[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[ost-startStop-1][0;39m [36mo.s.b.w.servlet.ServletRegistrationBean [0;39m [2m:[0;39m Mapping servlet: 'dispatcherServlet' to [/]
[2m2017-01-19 09:55:48.751[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[ost-startStop-1][0;39m [36mo.s.b.w.servlet.FilterRegistrationBean  [0;39m [2m:[0;39m Mapping filter: 'characterEncodingFilter' to: [/*]
[2m2017-01-19 09:55:48.752[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[ost-startStop-1][0;39m [36mo.s.b.w.servlet.FilterRegistrationBean  [0;39m [2m:[0;39m Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
[2m2017-01-19 09:55:48.752[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[ost-startStop-1][0;39m [36mo.s.b.w.servlet.FilterRegistrationBean  [0;39m [2m:[0;39m Mapping filter: 'httpPutFormContentFilter' to: [/*]
[2m2017-01-19 09:55:48.752[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[ost-startStop-1][0;39m [36mo.s.b.w.servlet.FilterRegistrationBean  [0;39m [2m:[0;39m Mapping filter: 'requestContextFilter' to: [/*]
[2m2017-01-19 09:55:49.191[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [36ms.w.s.m.m.a.RequestMappingHandlerAdapter[0;39m [2m:[0;39m Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@6379eb: startup date [Thu Jan 19 09:55:45 CST 2017]; root of context hierarchy
[2m2017-01-19 09:55:49.503[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [36ms.w.s.m.m.a.RequestMappingHandlerMapping[0;39m [2m:[0;39m Mapped "{[/]}" onto java.lang.String cn.tyrone.springboot.quickstart.QuickstartApplication.home()
[2m2017-01-19 09:55:49.509[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [36ms.w.s.m.m.a.RequestMappingHandlerMapping[0;39m [2m:[0;39m Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
[2m2017-01-19 09:55:49.509[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [36ms.w.s.m.m.a.RequestMappingHandlerMapping[0;39m [2m:[0;39m Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
[2m2017-01-19 09:55:49.554[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [36mo.s.w.s.handler.SimpleUrlHandlerMapping [0;39m [2m:[0;39m Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
[2m2017-01-19 09:55:49.554[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [36mo.s.w.s.handler.SimpleUrlHandlerMapping [0;39m [2m:[0;39m Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
[2m2017-01-19 09:55:49.605[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [36mo.s.w.s.handler.SimpleUrlHandlerMapping [0;39m [2m:[0;39m Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
[2m2017-01-19 09:55:49.853[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [36mo.s.j.e.a.AnnotationMBeanExporter       [0;39m [2m:[0;39m Registering beans for JMX exposure on startup
[2m2017-01-19 09:55:49.942[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [36ms.b.c.e.t.TomcatEmbeddedServletContainer[0;39m [2m:[0;39m Tomcat started on port(s): 8080 (http)
[2m2017-01-19 09:55:49.948[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [36mc.t.s.quickstart.QuickstartApplication  [0;39m [2m:[0;39m Started QuickstartApplication in 5.044 seconds (JVM running for 6.027)
  1. 列表内容
    打开浏览器,输入http://localhost:8080/进行验证。
    若浏览器打印出启动类中的结果“Hello World”即正常。

  2. 参考链接:
    http://projects.spring.io/spring-boot/
    可能会遇到的问题:
    http://blog.youkuaiyun.com/mynameissls/article/details/54603148

<think>嗯,用户想了解Spring Boot的快速入门,我需要用中文详细但简洁地解释。首先得确定用户的基础,可能有一定的Java和Spring框架知识,但作为快速入门,应该从基础开始。 首先,Spring Boot是什么?要简单说明它的作用和优势,比如简化配置、内嵌服务器、自动配置等。然后,可能需要对比传统的Spring MVC,突出Spring Boot的便捷性。 接下来,步骤分几部分。创建项目、依赖管理、主类、控制器、配置、运行和构建。每个部分需要具体说明,但不要过于深入,保持快速入门的节奏。 创建项目部分,推荐使用Spring Initializr,无论是通过IDE还是网页。需要提到Maven或Gradle的选择,以及常用的依赖,比如Spring Web。可能用户不熟悉Initializr,需要简单说明操作步骤。 主类讲解时,要提到@SpringBootApplication注解,以及main方法的作用。自动配置和组件扫描的概念需要提及,但不用展开,保持简洁。 控制器部分,用@RestController和@RequestMapping举例,展示一个简单的GET接口。最好给出代码示例,并说明如何访问。 配置文件部分,application.properties或YAML的用法,比如改端口,但可能用户刚开始不需要太多配置,简单提一下即可。 运行和构建,说明如何通过IDE运行,或者用Maven命令打包成可执行的JAR。强调内嵌Tomcat,无需外部部署。 最后,补充常用注解和开发建议,帮助用户进一步学习。可能需要提醒常见问题,比如依赖缺失或端口冲突,但快速入门可能不需要深入,放在注意事项里简单提一下。 需要检查是否遵循了系统级指令,比如数学公式的格式,但这里可能用不上。结构要清晰,分步骤,每个步骤有小标题,用Markdown格式,但用户要求中似乎不需要,因为用户的问题是关于Spring Boot,可能不需要数学公式。不过系统指令要求所有行内数学表达式用$...$,所以如果有的话需要注意。但Spring Boot内容里可能不会有数学表达式,所以这点可能不用处理。 要确保用中文,术语正确,比如“自动配置”、“起步依赖”等。避免使用复杂术语,保持易懂。同时,示例代码要准确,比如主类的结构,控制器的注解使用是否正确。 可能需要考虑用户的实际操作,步骤是否清晰,能否跟着一步步完成。比如创建项目后,添加依赖,编写主类和控制器,然后运行。是否漏掉关键步骤?比如是否需要配置pom.xml或build.gradle,但通过Initializr生成的话可能不需要手动添加,但需要提到选择依赖。 总之,结构要分点,每个部分简明扼要,示例代码正确,强调Spring Boot的优势,让用户能快速上手一个简单的RESTful服务。</think>### Spring Boot 快速入门指南 --- #### **1. Spring Boot 简介** Spring Boot 是基于 Spring 框架的**快速开发脚手架**,核心优势是: - **简化配置**:自动配置(Auto-Configuration)减少 XML 或注解配置。 - **内嵌服务器**:默认集成 Tomcat/Jetty,无需手动部署。 - **起步依赖**:通过 `spring-boot-starter-*` 依赖快速集成功能模块(如 Web、数据库)。 - **生产就绪**:提供健康检查、指标监控等运维功能。 --- #### **2. 环境准备** - **JDK 17+**(推荐 OpenJDK) - **Maven 3.6+** 或 **Gradle 7.x** - **IDE**:IntelliJ IDEA(推荐)或 Eclipse --- #### **3. 快速搭建项目** ##### **3.1 创建项目** 使用 **Spring Initializr**(官方初始化工具)生成项目: 1. **在线生成**:访问 [https://start.spring.io](https://start.spring.io) 2. **IDE 创建**(以 IntelliJ 为例): - New Project → Spring Initializr → 选择依赖(如 `Spring Web`) ##### **3.2 项目结构** 生成的核心文件: ``` src ├── main │ ├── java │ │ └── com.example.demo │ │ └── DemoApplication.java # 主启动类 │ └── resources │ ├── application.properties # 配置文件 ├── test # 测试代码 pom.xml # Maven 依赖管理 ``` --- #### **4. 编写第一个接口** ##### **4.1 创建控制器** ```java import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/api") public class HelloController { @GetMapping("/hello") public String hello() { return "Hello, Spring Boot!"; } } ``` - `@RestController`:标记为 REST 控制器。 - `@GetMapping`:处理 HTTP GET 请求。 ##### **4.2 启动应用** 运行主类 `DemoApplication.java` 中的 `main` 方法,控制台输出: ``` Tomcat started on port(s): 8080 ``` ##### **4.3 测试接口** 访问 [http://localhost:8080/api/hello](http://localhost:8080/api/hello),返回结果: ```json Hello, Spring Boot! ``` --- #### **5. 核心配置** ##### **5.1 修改端口** 在 `application.properties` 中添加: ```properties server.port=9090 ``` ##### **5.2 自定义配置** ```properties # 自定义配置项 app.name=MySpringBootApp app.version=1.0.0 ``` 通过 `@Value` 注入配置: ```java @Value("${app.name}") private String appName; ``` --- #### **6. 常用注解** | 注解 | 说明 | |------|------| | `@SpringBootApplication` | 标记主类,启用自动配置 | | `@RestController` | REST 控制器,直接返回数据(非视图) | | `@RequestMapping` | 定义请求映射路径 | | `@Autowired` | 自动注入依赖 | | `@Configuration` | 标记配置类 | --- #### **7. 打包与部署** 使用 Maven 打包: ```bash mvn clean package ``` 生成 `target/demo-0.0.1-SNAPSHOT.jar`,运行: ```bash java -jar demo-0.0.1-SNAPSHOT.jar ``` --- #### **8. 开发建议** 1. **学习 Spring Boot 文档**:[https://spring.io/projects/spring-boot](https://spring.io/projects/spring-boot) 2. **掌握常用 Starter**: - `spring-boot-starter-web`:Web 开发 - `spring-boot-starter-data-jpa`:数据库操作 - `spring-boot-starter-test`:单元测试 3. **调试工具**:使用 `spring-boot-devtools` 实现热部署。 --- #### **9. 注意事项** - **依赖冲突**:避免重复引入不同版本的库。 - **端口占用**:修改 `server.port` 解决端口冲突。 - **日志排查**:通过 `application.properties` 配置日志级别: ```properties logging.level.root=INFO logging.level.com.example.demo=DEBUG ``` --- 通过以上步骤,你可以快速搭建一个 Spring Boot 应用并实现基础功能。后续可逐步扩展数据库、安全(Spring Security)、缓存(Redis)等模块。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值