Spring
Spring框架是一个庞大的生态系统,包含多个模块,每个模块都为不同的功能提供支持。以下是Spring的主要模块及其职责:
├── Core Container(核心容器)
│ ├── Spring-core
│ ├── Spring-beans
│ ├── Spring-context
│ └── Spring-expression(SpEL)
│
├── AOP
│ ├── Spring-aop
│ └── Spring-aspects(AspectJ集成)
│
├── Data Access / Integration
│ ├── Spring-jdbc
│ ├── Spring-tx(事务)
│ ├── Spring-orm(Hibernate/JPA集成)
│ └── Spring-data(不是Spring核心,但生态重要)
│
├── Web
│ ├── Spring-web
│ ├── Spring-webmvc(SpringMVC)
│
├── Test
│ └── Spring-test
1️. Spring-core & Spring-beans
核心功能:IoC 容器实现
BeanFactory、ApplicationContext
Bean 定义、生命周期管理、依赖注入
提供了反射、工具类、类型转换、资源加载等底层支持
是 Spring 的基础,所有功能的核心
小结:
2. Spring-context
应用上下文容器(ApplicationContext)
支持国际化、事件发布、环境变量、JavaConfig 等
支持注解:@Component、@Service、@Repository、@Autowired 等
也包括对 AOP、Web、JPA、缓存等模块的集成入口
小结:
Spring IOC源码解析
3. Spring-expression(SpEL)
Spring 表达式语言
支持在注解或配置中写表达式:
@Value("#{user.age > 18 ? 'adult' : 'teen'}")
用于动态属性注入、条件判断等
4. Spring-aop & Spring-aspects
面向切面编程(AOP)模块
支持声明式事务、日志、权限控制等横切逻辑
核心接口有:Advice、Pointcut、Advisor、ProxyFactory
可集成 AspectJ 语法增强
5. Spring-jdbc / Spring-tx / Spring-orm
数据访问支持模块
Spring-jdbc:简化 JDBC 操作
Spring-tx:统一事务抽象,支持声明式事务管理
Spring-orm:与 JPA、Hibernate、MyBatis 等集成
小结
SpringBean的生命周期
Spring 如何解决循环依赖?
Spring IOC源码解析
Spring 事务
Spring的拦截器和过滤器的区别
SpringMVC的执行过程
Spring 如何解决循环依赖?
Spring Boot
├── Spring-boot
│ ├── Spring-boot-autoconfigure 自动配置核心模块
│ ├── Spring-boot-starter-parent 统一依赖管理(继承关系)
│ ├── Spring-boot-starters 一系列启动器(starter-*)
│ ├── Spring-boot-actuator 健康检查 / 监控接口
│ ├── Spring-boot-loader 可执行 JAR 支持
│ └── Spring-boot-devtools 热部署
小结
SpringBoot的自动装配原理
Spring Cloud
├── Spring-cloud-commons 公共依赖,服务发现/负载均衡抽象
├── Spring-cloud-netflix Netflix 技术集成(Eureka、Ribbon、Hystrix)
├── Spring-cloud-openfeign 声明式 REST 调用
├── Spring-cloud-config 分布式配置中心
├── Spring-cloud-gateway API 网关
├── Spring-cloud-stream 消息驱动微服务(Kafka/RabbitMQ)
├── Spring-cloud-bus 消息总线(配置刷新)
├── Spring-cloud-alibaba 阿里生态(Nacos、Sentinel 等)
├── Spring-cloud-sleuth 链路追踪(Zipkin 集成)
├── Spring-cloud-loadbalancer Spring Cloud 自带的负载均衡器(替代 Ribbon)