Spring Boot 入门了解

01 Spring 纯注解配

1. 核心注解

表格

| | 注解 | 作用(原理级解释) | 等价 XML | |---------------------|--------------------------------------------------------------------------------------------------------------|-----------------------------------------------| | @Bean | 将当前方法的返回值对象交给 Spring IOC 容器管理,由 Spring 控制对象的创建、初始化、销毁和依赖注入。方法名默认作为 Bean 的 id。 | <bean id="" class=""/> | | @PropertySource | 加载外部 properties 配置文件,将配置文件中的键值对加载到 Spring 环境中,配合 @Value 注解读取配置。 | <context:property-placeholder location=""/> | | @ComponentScan | 开启 Spring 组件自动扫描,Spring 会自动扫描指定包及其子包下所有标注 @Controller/@Service/@Repository/@Component 的类,并将其纳入 IOC 容器管理。 | <context:component-scan base-package=""/> | | @Import | 导入其他配置类或组件类,将外部配置整合到当前配置中,实现模块化配置,让 Spring 加载多个配置源。 | <import resource="xxx.xml"/> | | @Configuration | 标记当前类为 Spring 配置类,替代传统 XML 配置文件。Spring 会将该类作为配置来源,自动解析其中的 Bean 定义和注解。 | applicationContext.xml | |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

  • value/name:指定 IOC 容器中 bean 的 key
  • 方法返回值:放入容器的实体对象

02 Spring Boot 入门

一、Spring Boot 介绍

  • 本质 :Spring + SpringMVC 的快速开发脚手架
  • 不是增强 Spring,而是简化 Spring 开发
  • 三大特点
    1. 简化 XML(零配置)
    2. 简化 Maven(启动器)
    3. 内嵌 Tomcat(直接运行)

二、入门案例

1. pom.xml

xml

复制代码
<!-- 1. 继承父工程 -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.2.RELEASE</version>
</parent>

<!-- 2. web启动器 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

2. 启动类(最重要

java

运行

复制代码
package com.hg; // 必须是所有包的父包!

@SpringBootApplication   // 启动类核心注解
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class);
    }
}

✅ 规则:启动类必须放在 controller/service/mapper 的上级包

三、启动器 Starter

  • 定义:依赖 + 配置类 的集合
  • 命名规范
    • 官方:spring-boot-starter-模块名例:spring-boot-starter-web
    • 第三方:模块名-spring-boot-starter例:mybatis-spring-boot-starter

四、配置文件

1. application.properties

properties

复制代码
server.port=8090
server.servlet.context-path=/springboot

2. application.yml(推荐

yml

复制代码
server:
  port: 8090
  servlet:
    context-path: /springboot

YML 语法规则

  1. . 变为 :
  2. 使用空格缩进
  3. = 变为 : (空格)

五、两种打包发布方式

1)JAR 包(常用)

  • 自带 Tomcat,直接运行
  • 命令:java -jar xxx.jar

2)WAR 包

  • 需要外部 Tomcat
  • 配置步骤
    1. <packaging>war</packaging>
    2. tomcat 依赖改为 provided
    3. 启动类继承 SpringBootServletInitializer

03 Spring Boot 整合技术

一、全局异常处理器

前后端分离(重点

java

运行

复制代码
@ControllerAdvice   // 全局异常切面
public class GlobalExceptionHandler {

    @ExceptionHandler(Exception.class)  // 捕获异常
    @ResponseBody
    public Map handleException(){
        // 返回统一异常结果
    }
}

二、整合 JUnit

java

运行

复制代码
//@RunWith(SpringRunner.class)
//@SpringBootTest(classes = {SpringBootJunit.class})

@SpringBootTest   // 直接用这个注解即可
public class Test{
    @Autowired
    private UserService userService;
}

三、多环境配置

  1. 配置文件命名规则

    • application-dev.yml(开发)
    • application-test.yml(测试)
    • application-prod.yml(生产)
  2. 激活环境

    yml

    复制代码
    spring:
      profiles:
        active: dev

四、整合 Logback

  • 配置文件:logback.xml

    <?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="Console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n</pattern> </encoder> </appender>
    复制代码
      <!-- 文件输出 -->
      <appender name="File" class="ch.qos.logback.core.rolling.RollingFileAppender">
          <file>logs/spring-boot-demo.log</file>
          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
              <fileNamePattern>logs/spring-boot-demo-%d{yyyy-MM-dd}.log</fileNamePattern>
              <maxHistory>30</maxHistory>
          </rollingPolicy>
          <encoder>
              <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n</pattern>
          </encoder>
      </appender>
    
      <!-- 根日志级别 -->
      <root level="INFO">
          <appender-ref ref="Console"/>
          <appender-ref ref="File"/>
      </root>
    </configuration>
输出类型 配置位置 实际存放位置 说明
控制台输出 <appender name="Console"> IDEA 控制台 程序运行时实时显示日志,方便调试
文件输出 <file>logs/spring-boot-demo.log</file> 项目根目录 /logs/ 日志永久保存到文件,按天分割
历史日志 <fileNamePattern> 项目根目录 /logs/ 按日期生成历史日志文件
保留时间 <maxHistory>30</maxHistory> --- 自动删除 30 天前的日志
相关推荐
冲浪中台2 小时前
如何实现低代码源码级交付和私有化部署
前端·低代码·私有化部署·源代码管理
炒毛豆2 小时前
Vue 3 公共组件从封装到全局注册的极简指南
前端·javascript·vue.js
踩着两条虫2 小时前
VTJ.PRO 在线应用开发平台前端架构
前端·vue.js·ai编程
踩着两条虫2 小时前
VTJ.PRO 在线应用开发平台部署与运维
前端·vue.js·人工智能
Dxy12393102162 小时前
html鼠标定位线
前端·html·计算机外设
sp422 小时前
通过 RootEncoder 进行安卓直播 RTSP 推流
前端
_院长大人_2 小时前
构建一个 Vue 基于el-input的磨损区间选择器组件 —— WearRangeSelector
前端·javascript·vue.js
遗憾随她而去.2 小时前
前端 Vue 虚拟列表(Virtual List),从原理到实战
前端·javascript·vue.js
tangdou3690986552 小时前
图文并茂手把手教你Claude Code 多智能体 Agent Teams,一人变团队
前端·后端·ai编程