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 天前的日志
相关推荐
发现一只大呆瓜7 小时前
深度解密 Rollup 插件开发:核心钩子函数全生命周期图鉴
前端·vite
java_nn7 小时前
一文了解前端技术
前端
发现一只大呆瓜7 小时前
深度解析 Rollup 配置与 Vite 生产构建流程
前端·vite
小码哥_常8 小时前
安卓黑科技:让手机成为你的“跌倒保镖”
前端
小李子呢02119 小时前
前端八股Vue---Vue2和Vue3的区别,set up的用法
前端·javascript·vue.js
m0_647057969 小时前
Harness Engineering 实践指南
前端
JJay.9 小时前
Android BLE 稳定连接的关键,不是扫描,而是 GATT 操作队列
android·服务器·前端
星空椰9 小时前
JavaScript 进阶基础:函数、作用域与常用技巧总结
开发语言·前端·javascript
奔跑的呱呱牛9 小时前
@giszhc/vue-page-motion:Vue3 路由动画怎么做才“丝滑”?(附在线示例)
前端·javascript·vue.js
ThridTianFuStreet小貂蝉10 小时前
面试题4:讲一讲HTML5、CSS3新特性
前端·css3·html5