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 天前的日志
相关推荐
玄米乌龙茶12319 小时前
LLM成长笔记(七): AI 应用框架与编排
前端·人工智能·笔记
OrangeForce19 小时前
Monknow 书签导出工具:从本地存储提取数据并转为标准 HTML 书签
javascript·chrome·python·edge·html·firefox
芯芯点灯20 小时前
gd32f303烧录提示Flash Timeout. Reset the Target and try it again.;
开发语言·前端·javascript
前端若水20 小时前
自定义消息组件:图片、文件附件与图表
前端·人工智能·react.js·typescript
2601_9584925520 小时前
7 Best WordPress Tools to Help Your News Site Actually Make Money
前端·word
放下华子我只抽RuiKe520 小时前
React 从入门到生产(七):性能优化实战
前端·javascript·人工智能·react.js·性能优化·前端框架·github
糯米团子74920 小时前
vue知识点复习
前端·vue.js
晚烛20 小时前
CANN 日志系统:调试与性能分析的日志艺术
前端·chrome·数据挖掘
FlyWIHTSKY20 小时前
Next中引入 Ant Design (antd)的配置
开发语言·前端·javascript
JAVA学习通21 小时前
《大营销平台系统设计实现》 - 营销服务 第9节:模板模式串联抽奖规则
服务器·前端·javascript