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

    %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n
    复制代码
      <!-- 文件输出 -->
      <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>
输出类型 配置位置 实际存放位置 说明
控制台输出 <appender name="Console"> IDEA 控制台 程序运行时实时显示日志,方便调试
文件输出 <file>logs/spring-boot-demo.log</file> 项目根目录 /logs/ 日志永久保存到文件,按天分割
历史日志 <fileNamePattern> 项目根目录 /logs/ 按日期生成历史日志文件
保留时间 <maxHistory>30</maxHistory> --- 自动删除 30 天前的日志
相关推荐
掘金挖土1 小时前
前端手摸手跑路之 AI 应用开发(二)
前端·后端
mayaairi2 小时前
Vue2 组件通讯(四):v-model、scoped样式、mixins与plugins
前端·javascript·vue.js
梦曦i2 小时前
@meng-xi/uni-router 未来展望:夯实基础、深化体验、探索前沿
前端·uni-app
Yeyu2 小时前
AAOS AppCard 实践:怎么把自己的 App 塞进别人的卡片里
前端
IT_陈寒3 小时前
Vite静态资源路径这个大坑害我调了一下午
前端·人工智能·后端
狗哥哥3 小时前
分享下我的读书清单
前端
合天网安实验室3 小时前
Log4J2 FilteredObjectInputStream RCE 漏洞分析
前端·黑客
两点王爷3 小时前
使用 GeoServer 发布 SHP 数据并在前端页面加载显示
前端
lhldsg3 小时前
全民健身解决方案软件开发实战:从架构设计到部署指南
java·前端·数据库·小程序
四六的六3 小时前
让 AI 自己去点后台页面,它把我们的库存点没了
前端·人工智能·agent·个人开发·ai编程·ai产品·ai前端