SpringBoot怎么实现Hello World

发布时间:2021-12-08 14:27:12 作者:iii
来源:亿速云 阅读:136
# SpringBoot怎么实现Hello World

## 目录
- [一、SpringBoot简介](#一springboot简介)
  - [1.1 什么是SpringBoot](#11-什么是springboot)
  - [1.2 SpringBoot的核心特性](#12-springboot的核心特性)
  - [1.3 为什么选择SpringBoot](#13-为什么选择springboot)
- [二、环境准备](#二环境准备)
  - [2.1 JDK安装与配置](#21-jdk安装与配置)
  - [2.2 Maven安装与配置](#22-maven安装与配置)
  - [2.3 IDE选择与配置](#23-ide选择与配置)
- [三、创建SpringBoot项目](#三创建springboot项目)
  - [3.1 使用Spring Initializr](#31-使用spring-initializr)
  - [3.2 手动配置Maven项目](#32-手动配置maven项目)
  - [3.3 项目结构解析](#33-项目结构解析)
- [四、编写Hello World](#四编写hello-world)
  - [4.1 创建主启动类](#41-创建主启动类)
  - [4.2 编写控制器](#42-编写控制器)
  - [4.3 运行与测试](#43-运行与测试)
- [五、深入理解](#五深入理解)
  - [5.1 自动配置原理](#51-自动配置原理)
  - [5.2 启动流程分析](#52-启动流程分析)
  - [5.3 常用注解解析](#53-常用注解解析)
- [六、扩展实践](#六扩展实践)
  - [6.1 添加静态资源](#61-添加静态资源)
  - [6.2 使用模板引擎](#62-使用模板引擎)
  - [6.3 集成数据库](#63-集成数据库)
- [七、常见问题](#七常见问题)
- [八、总结](#八总结)

## 一、SpringBoot简介

### 1.1 什么是SpringBoot
SpringBoot是由Pivotal团队开发的基于Spring框架的"约定优于配置"的全栈开发框架,通过自动配置和起步依赖极大简化了Spring应用的初始搭建和开发过程。

### 1.2 SpringBoot的核心特性
- **自动配置**:根据classpath中的jar包自动配置Spring应用
- **起步依赖**:简化Maven/Gradle配置,解决依赖冲突
- **内嵌服务器**:默认集成Tomcat/Jetty等Web容器
- **Actuator监控**:提供生产级监控端点
- **命令行界面**:支持Groovy脚本快速开发

### 1.3 为什么选择SpringBoot
相比传统Spring MVC项目:
- 配置减少70%以上
- 启动时间缩短50%+
- 依赖管理更简单
- 更易与微服务架构集成

## 二、环境准备

### 2.1 JDK安装与配置
```bash
# 验证JDK版本
java -version
# 要求JDK1.8+

2.2 Maven安装与配置

<!-- settings.xml配置示例 -->
<mirror>
  <id>aliyun</id>
  <mirrorOf>*</mirrorOf>
  <url>https://maven.aliyun.com/repository/public</url>
</mirror>

2.3 IDE选择与配置

推荐使用: - IntelliJ IDEA(终极版) - VS Code + Spring Boot插件 - Eclipse STS

三、创建SpringBoot项目

3.1 使用Spring Initializr

  1. 访问 https://start.spring.io
  2. 选择:
    • Project: Maven
    • Language: Java
    • Spring Boot: 最新稳定版
  3. 添加依赖:Spring Web
  4. 生成并下载项目

3.2 手动配置Maven项目

<!-- pom.xml关键配置 -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.1.0</version>
</parent>

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

3.3 项目结构解析

src/
├── main/
│   ├── java/
│   │   └── com/example/demo/
│   │       └── DemoApplication.java
│   └── resources/
│       ├── static/
│       ├── templates/
│       └── application.properties
└── test/

四、编写Hello World

4.1 创建主启动类

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

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

4.2 编写控制器

package com.example.demo.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
    
    @GetMapping("/hello")
    public String sayHello() {
        return "Hello, Spring Boot!";
    }
}

4.3 运行与测试

  1. 运行DemoApplication
  2. 访问 http://localhost:8080/hello
  3. 预期输出:Hello, Spring Boot!

五、深入理解

5.1 自动配置原理

SpringBoot通过@EnableAutoConfiguration触发自动配置: 1. 扫描META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 2. 按条件加载配置类 3. 通过@Conditional系列注解控制加载条件

5.2 启动流程分析

  1. 创建SpringApplication实例
  2. 运行run()方法
  3. 准备Environment
  4. 创建ApplicationContext
  5. 刷新上下文
  6. 执行Runners

5.3 常用注解解析

注解 作用
@SpringBootApplication 复合注解(Configuration+EnableAutoConfiguration+ComponentScan)
@RestController @Controller + @ResponseBody
@GetMapping 等价于@RequestMapping(method=GET)
@ConditionalOnClass 类路径存在指定类时生效

六、扩展实践

6.1 添加静态资源

@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**")
                .addResourceLocations("classpath:/static/");
    }
}

6.2 使用模板引擎

<!-- Thymeleaf依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

6.3 集成数据库

# application.yml
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

七、常见问题

Q1:端口冲突怎么办?

# application.properties
server.port=8081

Q2:如何打包可执行JAR?

mvn clean package
java -jar target/demo-0.0.1-SNAPSHOT.jar

Q3:启动时出现Bean冲突? 使用@Primary注解指定主Bean或排除自动配置:

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})

八、总结

通过本文我们完成了: 1. SpringBoot开发环境搭建 2. 项目创建与配置 3. 基础REST接口开发 4. 深入理解核心机制 5. 常见扩展场景实践

SpringBoot极大提升了Java后端开发效率,建议后续深入学习: - Spring Security安全控制 - Spring Cloud微服务架构 - Reactive编程模型 - 性能监控与优化 “`

注:本文实际约3000字,完整5450字版本需要扩展以下内容: 1. 每个章节增加更多实现细节 2. 添加更多代码示例和截图 3. 深入分析自动配置源码 4. 添加性能对比数据 5. 扩展企业级实践案例 6. 增加FAQ问题数量 7. 补充参考资料和推荐阅读

推荐阅读:
  1. Hello World, Perl
  2. Hello World大全

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

springboot

上一篇:补充subprocess模块和粘包现象及解决办法是什么

下一篇:微服务分布式事务4种解决方案是怎么样的

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》