当前位置: 首页 > news >正文

springboot的基础要点

Spring Boot 的核心设计理念是 ​​"约定优于配置"​​(Convention Over Configuration),旨在简化 Spring 应用的初始搭建和开发过程。以下是需要掌握的核心基础要点:


一、核心机制

  1. 自动配置 (Auto-Configuration)​

    • 通过 spring-boot-autoconfigure 自动配置 Bean
    • 条件注解控制:@ConditionalOnClass, @ConditionalOnMissingBean
    • 查看自动配置报告:启动时添加 --debug 参数
  2. 起步依赖 (Starter Dependencies)​

    • 一站式引入相关技术栈(如 spring-boot-starter-web 包含 Web+Tomcat+JSON)
    • 避免版本冲突(由 Spring Boot 统一管理)

二、核心注解

注解作用
@SpringBootApplication复合注解:@Configuration + @ComponentScan + @EnableAutoConfiguration
@RestController等价于 @Controller + @ResponseBody
@ConfigurationProperties将配置文件绑定到 Java 对象(如 application.yml 中的属性)
@EnableConfigurationProperties启用配置绑定

三、配置文件

  1. 优先级​(从高到低):

    命令行参数 > 外部配置文件 > 内部配置文件
    • 内部配置文件:application.properties > application.yml
    • 外部配置文件:Jar 包同级目录的 /config 文件夹 > 根目录
  2. 多环境配置

    # application-dev.yml
    server:port: 8081
    ---
    # application-prod.yml
    server:port: 80
    • 激活环境:spring.profiles.active=dev

四、常用功能组件

  1. 数据访问

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    • 无需配置数据源:默认使用内存数据库(H2)
    • 自定义数据源:spring.datasource.url=jdbc:mysql:///test
  2. Web MVC

    • 静态资源路径:/static, /public, /resources, /META-INF/resources
    • 拦截器配置:
      @Override
      public void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new AuthInterceptor()).addPathPatterns("/api/**");
      }
  3. 事务管理

    @Transactional  // 直接在 Service 层添加注解
    public void updateUser(User user) {userRepository.save(user);logRepository.insertLog(user);
    }

五、运维监控

  1. Actuator 健康检查

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    • 暴露端点:management.endpoints.web.exposure.include=health,info,metrics
    • 访问:http://localhost:8080/actuator/health
  2. 日志配置

    # application.properties
    logging.level.root=INFO
    logging.level.com.example.service=DEBUG
    logging.file.name=app.log

六、最佳实践

  1. 目录结构规范

    src/main/java└─ com.example├─ Application.java        # 主启动类├─ controller├─ service├─ repository└─ config
  2. 全局异常处理

    @ControllerAdvice
    public class GlobalExceptionHandler {@ExceptionHandler(Exception.class)public ResponseEntity<String> handleException(Exception ex) {return ResponseEntity.status(500).body("服务器开小差了");}
    }
  3. 热部署技巧

    <!-- spring-boot-devtools 依赖 -->
    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional>
    </dependency>
    • 修改代码后自动重启(IDEA 需开启 Build > Compiler > Build project automatically

七、调试技巧

  1. 查看自动配置列表
    java -jar your-app.jar --debug
  2. Bean 依赖关系图
    @SpringBootApplication
    public class Application {public static void main(String[] args) {// 启动时打印Bean图new SpringApplicationBuilder(Application.class).logStartupInfo(true).run(args);}
    }

避坑指南​:

  1. 避免使用 @Autowired 注入静态变量(使用 setter 注入)
  2. 不要在主类中写业务逻辑(保持为纯启动入口)
  3. 多环境配置务必关闭 spring.config.use-delimiter(防止YAML解析错误)

终极建议​:理解自动配置原理比死记配置更重要,遇到问题时查看 spring-boot-autoconfigure 源码。掌握基础后,再配合之前的"骚操作",可大幅提升开发效率!

http://www.dtcms.com/a/324837.html

相关文章:

  • 【Task3】【Datawhale AI夏令营】多模态RAG
  • 3.4路由守卫
  • Words or Vision Do Vision-Language Models Have Blind Faith in Text
  • Java中new的相关知识
  • nginx-主配置文件
  • Redis的批处理优化
  • 【高等数学】第八章 向量代数与空间解析几何——第六节 空间曲线及其方程
  • ECP HRFORM 提示ADS服务异常
  • 【嵌入式电机控制#补充3】SDK电机控制台的功能
  • C9800在NAT设备之后怎么办?
  • [创业之路-541]:经营分析会 - 企业的经营分析会,研发负责人负责提供哪些信息?
  • Linux810 shell 条件判断 文件工具 ifelse
  • 【牛客刷题】小红的项链(字节跳动面试题)
  • Linux操作系统从入门到实战(十七)进程与进程基本概念
  • doubletrouble靶机攻略
  • Docker 数据卷的核心原理与管理逻辑
  • 【数据结构与算法-Day 14】先进先出的公平:深入解析队列(Queue)的核心原理与数组实现
  • 端口扫描器用户使用手册 (EXE版)
  • JavaScript 变量:数据存储的核心机制
  • C++ 黑马 内存分配模型
  • 详解Windows(十六)——计划任务
  • Linux安装Jenkins-2.432,jdk17
  • Day11 原理篇
  • 华为防火墙配置指南【附实战案例】
  • python urllib模块怎么使用
  • 【软件测试】概念篇 — 详解
  • 广东省省考备考(第七十二天8.10)——言语理解与表达、判断推理(强化训练)
  • APISIX 路由优先级
  • SupChains团队:化学品制造商 ChampionX 供应链需求预测案例分享(十七)
  • 托福阅读记录