Spring 纯注解配置 + Spring Boot 入门核心笔记

一、Spring 的纯注解配置(告别 XML)

核心思想 :用注解代替 applicationContext.xml


1️⃣ @Bean------ 注册对象到 IOC 容器

作用

将一个对象放入 Spring 的 IOC 容器(等价于 <bean/>

复制代码
@Bean
public DataSource dataSource() {
    return new DruidDataSource();
}

属性说明

属性 作用
value 指定 Bean 在 IOC 容器中的 id

✅ 默认方法名 = Bean 的 id


2️⃣ @PropertySource------ 加载 properties 文件

作用

加载外部配置文件(等价于 <context:property-placeholder/>

复制代码
@PropertySource("classpath:db.properties")

属性说明

属性 作用
value properties 文件路径

3️⃣ @ComponentScan------ 包扫描

作用

指定 Spring 扫描哪些包(等价于 <context:component-scan/>

复制代码
@ComponentScan("com.hg")

✅ 常用包:

  • controller

  • service

  • mapper


4️⃣ @Import------ 导入其他配置类

作用

引入其他 Java 配置类(等价于 <import/>

复制代码
@Import({MyBatisConfig.class, DataSourceConfig.class})

✅ 避免循环导入(⚠️ 易踩坑)


5️⃣ @Configuration------ 标识配置类

作用

告诉 Spring:这是一个配置类 (等价于 applicationContext.xml

复制代码
@Configuration
public class SpringConfig {
}

✅ 必须配合 @ComponentScan/ @Bean使用


二、Spring Boot 入门(重点)


一、Spring Boot 是什么?

Spring + Spring MVC 的"快速开发脚手架"

✅ 核心特点

特性 说明
无 XML 几乎零配置
起步依赖 starter 一键集成
内嵌容器 内置 Tomcat
自动装配 约定优于配置

⚠️ 不是对 Spring 的增强,而是"更快的使用方式"


二、Spring Boot 入门案例(标准写法)


1️⃣ pom.xml配置

✅ ① 继承 Spring Boot 父工程
复制代码
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.2.RELEASE</version>
    <relativePath/>
</parent>

✅ ② 添加 Web 启动器
复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

2️⃣ Controller 示例

复制代码
@RestController
@RequestMapping("/hello")
public class HelloController {

    @GetMapping
    public String hello() {
        return "Hello Spring Boot!";
    }
}

3️⃣ 启动类(⚠️ 极其重要)

复制代码
package com.hg;

@SpringBootApplication
public class SpringbootHelloworldApp {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootHelloworldApp.class, args);
    }
}

启动类必须放在 controller / service / mapper 的上级包


三、Spring Boot Starter(重点)


1️⃣ 什么是 Starter?

Starter = 依赖 + 自动配置 + 默认配置

类型 说明
官方 starter spring-boot-starter-xxx
第三方 starter xxx-spring-boot-starter

2️⃣ 命名规范(面试常问)

✅ 官方 Starter
复制代码
spring-boot-starter-web
spring-boot-starter-data-jpa
✅ 第三方 Starter
复制代码
mybatis-spring-boot-starter
druid-spring-boot-starter

3️⃣ 常用 Starter 速查表

功能 Starter
Web 开发 spring-boot-starter-web
MyBatis mybatis-spring-boot-starter
测试 spring-boot-starter-test
JDBC spring-boot-starter-jdbc

四、常见坑点总结(⚠️ 必看)

❌ 启动类位置错误

复制代码
controller
service
mapper
↑
启动类必须在这里

❌ 忘记加 @SpringBootApplication

复制代码
@SpringBootApplication // 缺一不可

❌ Starter 版本不匹配

✅ 建议统一使用父工程管理版本


五、总结(一句话记忆)

Spring 纯注解 = Java 配置 + 注解

Spring Boot = Starter + 自动装配 + 内嵌容器


📌 适合发布 CSDN 的理由

✅ 结构清晰

✅ 实战导向

✅ 适合新手

✅ 可直接复制运行

✅ 覆盖面试高频点


如果你愿意,我可以帮你:

  • ✅ 改成 "保姆级图文教程"

  • ✅ 加 运行截图

  • ✅ 改成 面试问答版

  • ✅ 或帮你写一篇 《SSM 转 Spring Boot 避坑指南》

直接告诉我你要哪种风格 👍

相关推荐
pupudawang2 小时前
Spring Boot 各种事务操作实战(自动回滚、手动回滚、部分回滚)
java·数据库·spring boot
华科易迅2 小时前
Spring XML事务控制
xml·数据库·spring
qq_389600132 小时前
pads-logic 学习笔记
笔记·嵌入式硬件·学习·硬件工程·pcb工艺
sjmaysee2 小时前
Redis四种模式在Spring Boot框架下的配置
spring boot·redis·bootstrap
prog_61032 小时前
【笔记】用cursor手搓cursor(三)简单尝试claude code
笔记·运行·本地·claude code
少许极端2 小时前
消息队列2-SpringBoot操作RabbitMQ
spring boot·rabbitmq·java-rabbitmq
lay_liu2 小时前
springboot和springframework版本依赖关系
java·spring boot·后端
تچ快乐杂货店يچ2 小时前
基于前后端分离的在线考试系统(微服务架构 + RBAC权限 + AI助手)
java·vue.js·spring boot·spring cloud·微服务·架构·typescript
lay_liu2 小时前
Spring 简介
java·后端·spring