Spring框架基本概念,Spring框架模块详解

一、Spring 框架的 7 大基本概念(必须牢牢记住)

概念英文全称核心作用与一句话解释
1. IoC(控制反转)Inversion of Control谁创建对象?以前是你 new,现在交给 Spring 容器来创建
2. DI(依赖注入)Dependency Injection对象需要别的对象时,不自己 new,由容器“注入”给你
3. BeanBean所有被 Spring 容器管理起来的对象统称为 Bean
4. Container(容器)IoC Container负责 Bean 的创建、装配、生命周期管理的“工厂”
5. AOP(面向切面编程)Aspect-Oriented Programming把日志、事务、安全等横切关注点从业务代码中抽离
6. ApplicationContextApplicationContext高级 IoC 容器,提供国际化、事件发布、资源加载等高级特性
7. Spring Boot基于 Spring 的“约定大于配置”快速开发框架,真正主流产品

二、Spring 框架 6 大核心模块 + Spring Boot 完整详解(2025 最新版)

模块组模块名称具体功能与实际使用场景(重点标注常用度)
Core Container(核心容器)spring-core提供 IoC 和 DI 的基础功能,所有模块都依赖它 ★★★★★
spring-beansBeanFactory、Bean 定义、解析、创建 ★★★★★
spring-contextApplicationContext(最常用的容器实现)★★★★★
spring-expressionSpEL 表达式语言(@Value(“#{…}”))★★★★
AOP 和 Instrumentationspring-aop代理模式的 AOP 实现 ★★★★
spring-aspects基于 AspectJ 的切面支持 ★★★★
spring-instrument支持类仪表(运行时织入,Tomcat 热部署用)★★
Data Access/Integration(数据层)spring-jdbcJdbcTemplate,最轻量级的数据库操作方式 ★★★★★
spring-tx声明式事务 @Transactional(Transactional)★★★★★
spring-orm集成 JPA、Hibernate、MyBatis 等 ★★★★
spring-oxm对象与 XML 相互转换(几乎不用)★
spring-jmsJMS 消息支持(ActiveMQ、RabbitMQ 等 ★★
Webspring-web基础 Web 功能(Multipart、WebUtils 等)★★★★
spring-webmvc传统 Servlet 栈 MVC 框架(@Controller、@RestController)★★★★★
spring-websocketWebSocket 支持 ★★★
spring-webflux响应式 Web 框架(基于 Reactor,Netty)★★★★(近年越来越火)
Testspring-test单元测试与集成测试支持(@SpringBootTest、MockMvc)★★★★★
独立生态(非 Framework 核心)Spring Boot自动配置、内嵌服务器、生产就绪特性 ★★★★★(实际开发 99% 用这个)
Spring Data一站式数据访问(JPA、Mongo、Redis、R2DBC 等)★★★★★
Spring Security认证授权最强框架(OAuth2、JWT、RBAC)★★★★★
Spring Batch大批量数据处理框架 ★★★★
Spring Integration企业集成模式(消息驱动框架 ★★
Spring Cloud微服务全家桶(Eureka、Nacos、Gateway、OpenFeign、Config、Sleuth+Zipkin 等)★★★★★

三、最常用的 5 个模块(面试 + 实际项目必问)

  1. spring-boot(整个项目启动入口 + 自动配置)
  2. spring-webmvc / spring-webflux(写接口)
  3. spring-data-jpa 或 mybatis-plus(操作数据库)
  4. spring-tx + spring-aop(事务管理)
  5. spring-security(权限认证)

四、Spring 容器两种实现对比(常考)

对比项BeanFactoryApplicationContext(最常用)
功能基础 IoC 容器高级容器,继承了 BeanFactory
懒加载默认懒加载默认立即加载(可以通过 @Lazy 改成懒加载)
额外功能只有最基本的 IoC国际化、事件发布、资源加载、AOP 更完善
使用场景极致节省内存的场景(几乎不用)99.99% 项目都用 ApplicationContext
获取方式new ClassPathXmlApplicationContext 已过时new AnnotationConfigApplicationContext(AppConfig.class)(主流)

五、Bean 的生命周期(11 步,面试高频)

  1. 实例化(new)
    2 属性赋值(依赖注入)
    3 BeanNameAware.setBeanName()
    4 BeanFactoryAware.setBeanFactory()
    5 ApplicationContextAware.setApplicationContext()
    6 BeanPostProcessor 前置处理
    7 @PostConstruct
    8 InitializingBean.afterPropertiesSet()
    9 或者 init-method
    9 BeanPostProcessor 后置处理(AOP 代理在这里生成)
    10 真正可以使用
    11 销毁:@PreDestroy → DisposableBean.destroy() → destroy-method

掌握这 11 步,你在面试中画生命周期图就无敌了。

结论一句话:
现代 Java 后端开发 = Spring Boot + Spring MVC/WebFlux + Spring Data + Spring Security + Spring Cloud(微服务)
其他所有模块都是围绕这几个核心在扩展。

想继续深挖哪个模块?我可以给你从配置文件到源码级别全部讲透!

文章已创建 3017

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部