Spring Boot

一、Spring Boot 简介

Spring Boot 是基于 Spring 框架之上的快速开发框架,旨在简化 Spring 应用的构建过程,让开发者更专注于业务逻辑,而不是繁琐的配置。

特点:

  • 自动配置(Auto Configuration)

  • 起步依赖(Starter Dependencies)

  • 内嵌式服务器(如 Tomcat)

  • 无需大量 XML 配置

  • 配置灵活(支持 application.properties / application.yml


二、环境准备

1. 开发工具

  • IDE:IntelliJ IDEA(推荐)

  • JDK:Java 8 或更高版本

  • 构建工具:Maven 或 Gradle

  • 数据库:MySQL(或 H2 作为内嵌数据库)

2. 创建项目

推荐使用 Spring 官方提供的 Spring Initializr 来快速生成项目结构。


三、项目结构说明

复制代码
src
 └── main
     ├── java
     │   └── com.example.demo
     │       ├── controller
     │       ├── service
     │       ├── repository
     │       └── DemoApplication.java
     └── resources
         ├── application.yml
         ├── static/
         └── templates/

四、核心注解介绍

注解 说明
@SpringBootApplication 核心注解,包含 @Configuration@EnableAutoConfiguration@ComponentScan
@RestController 组合注解,包含 @Controller + @ResponseBody
@RequestMapping 用于请求路径映射
@Autowired 自动注入依赖
@Service / @Repository 标识服务层 / 数据访问层 Bean

五、配置文件说明(application.yml)

复制代码
server:
  port: 8080

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/demo
    username: root
    password: root
  thymeleaf:
    cache: false
  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true

六、核心功能实战

1. Web 接口开发

Controller 示例:

复制代码
@RestController
@RequestMapping("/api")
public class HelloController {
    @GetMapping("/hello")
    public String hello() {
        return "Hello, Spring Boot!";
    }
}

2. 服务层(Service)

复制代码
@Service
public class UserService {
    public String getUserInfo() {
        return "用户信息";
    }
}

3. 数据访问层(Repository)

使用 Spring Data JPA:

复制代码
public interface UserRepository extends JpaRepository<User, Long> {}

七、常用模块

1. Spring Boot + MyBatis

  • 添加依赖:

    <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.3.1</version> </dependency>
  • Mapper 接口 + XML 配置

2. Spring Boot + Thymeleaf

用于构建前端模板页面:

复制代码
@Controller
public class PageController {
    @GetMapping("/home")
    public String home(Model model) {
        model.addAttribute("msg", "欢迎!");
        return "home";
    }
}

八、定时任务实现

复制代码
@Component
public class ScheduledTasks {
    @Scheduled(cron = "0/10 * * * * ?")
    public void reportCurrentTime() {
        System.out.println("现在时间:" + new Date());
    }
}
  • 启动类中添加:@EnableScheduling

九、异常处理机制

复制代码
@RestControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(Exception.class)
    public ResponseEntity<String> handle(Exception e) {
        return ResponseEntity.status(500).body("服务器异常:" + e.getMessage());
    }
}

十、打包部署

使用 Maven 打包:

复制代码
mvn clean package

运行 Jar:

复制代码
java -jar target/demo-0.0.1-SNAPSHOT.jar

十一、常见问题与调试技巧

  • 端口被占用? 修改 application.yml 中的 server.port

  • 404 页面? 检查路径是否映射正确

  • 自动配置失效? 查看是否存在 @SpringBootApplication@ComponentScan 被覆盖的问题

  • 调试 SQL? 开启 spring.jpa.show-sql=true


十二、进阶学习建议

  • 学习 Spring Boot 与 SSM 的整合

  • 理解 Spring Boot 自动配置原理(查看源码:spring-boot-autoconfigure

  • 深入使用 AOP、缓存、消息队列(RabbitMQ/Kafka)

  • 掌握 Spring Cloud 微服务架构

相关推荐
magic 2455 分钟前
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
java
爱敲代码的憨仔12 分钟前
分布式协同自动化办公系统-工作流引擎-流程设计
java·flowable·oa
酷爱码25 分钟前
Spring Boot项目中JSON解析库的深度解析与应用实践
spring boot·后端·json
纪元A梦36 分钟前
分布式拜占庭容错算法——PBFT算法深度解析
java·分布式·算法
卿着飞翔38 分钟前
RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
java·rabbitmq·java-rabbitmq
陈阿土i1 小时前
SpringAI 1.0.0 正式版——利用Redis存储会话(ChatMemory)
java·redis·ai·springai
AI小智1 小时前
Google刀刃向内,开源“深度研究Agent”:Gemini 2.5 + LangGraph 打造搜索终结者!
后端
安全系统学习1 小时前
【网络安全】Qt免杀样本分析
java·网络·安全·web安全·系统安全
java干货1 小时前
虚拟线程与消息队列:Spring Boot 3.5 中异步架构的演进与选择
spring boot·后端·架构
一只叫煤球的猫1 小时前
MySQL 8.0 SQL优化黑科技,面试官都不一定知道!
后端·sql·mysql