文章
Spring Boot 学习笔记:自动装配与常用组件
沈行知
暂存笔记,持续补充中。面向 Java 后端方向的 Spring Boot 知识体系。
一、核心机制:自动装配
- 启动类
@SpringBootApplication组合了@SpringBootConfiguration+@EnableAutoConfiguration+@ComponentScan。 - 自动装配:
@EnableAutoConfiguration通过spring.factories/AutoConfiguration.imports加载XxxAutoConfiguration,配合@ConditionalOnXxx按条件生效。 - 原理一句话:按需装配 Bean,约定优于配置。
二、starter 机制
spring-boot-starter-xxx 是把一组相关依赖「打包」的坐标,减少版本冲突(统一由 BOM 管理)。常见:web、data-redis、data-jpa、mybatis(第三方)。
三、配置文件
application.yml/application.properties,支持 profile 隔离:application-dev.yml、application-prod.yml。- 优先级:命令行参数 > 环境变量 > 配置文件 > 默认值。
- 自定义配置用
@ConfigurationProperties+@Component,或@Value。
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/blog
username: root
password: "123456"
四、常用注解
| 注解 | 作用 |
|---|---|
@RestController |
@Controller + @ResponseBody,返回 JSON |
@RequestMapping / @GetMapping / @PostMapping |
路由映射 |
@RequestBody / @PathVariable / @RequestParam |
参数绑定 |
@Service / @Repository / @Component |
组件注册 |
@Autowired / @Resource |
依赖注入 |
@Transactional |
声明式事务 |
@Slf4j |
Lombok 日志 |
五、常用整合
- 数据源:
spring-boot-starter-jdbc+ HikariCP(默认连接池)。 - Redis:
spring-boot-starter-data-redis,注入StringRedisTemplate。 - 校验:
spring-boot-starter-validation,@Valid+@NotNull等。 - 单元测试:
spring-boot-starter-test+@SpringBootTest。
六、常见坑
- 循环依赖 → 用构造器注入或
@Lazy,或重构。 - 配置不生效 → 检查 profile、包扫描路径、
@Component是否被扫描到。 @Transactional失效 → 同类内部调用不走代理、异常被捕获吞掉、非 public 方法。
本文为暂存笔记,后续补充完整示例项目。