Spring核心类研究价值排行榜(按使用频率)
以下是企业级开发中最值得深入研究的Spring核心类,按实际使用频率从极高频 到低频分层梳理:
一、极高频类
| 类名 | 核心作用 | 典型应用场景 |
|---|---|---|
DispatcherServlet |
Spring MVC核心前端控制器,统一接收HTTP请求并分发到对应Handler | 所有Spring Web应用的入口,请求路由、拦截器链执行、视图解析 |
ApplicationContext |
IoC容器核心接口,提供Bean工厂、事件发布、资源加载等完整功能 | 获取Bean、发布应用事件、读取配置文件、国际化支持 |
@Autowired / @Inject |
依赖注入核心注解,自动装配Bean实例 | 服务层注入DAO、Controller注入Service、配置类注入属性 |
@Controller / @RestController |
声明MVC控制器,处理HTTP请求 | 所有Web请求处理类,如OrderController |
@Service |
声明服务层组件,标记业务逻辑类 | 事务管理、业务编排,如OrderServiceImpl |
@Component |
通用组件注解,声明Spring管理的Bean | 工具类、转换器、通用Bean |
@Configuration |
声明配置类,替代XML配置,支持@Bean方法 | 数据源配置、Redis配置、第三方Bean装配 |
BeanPostProcessor |
Bean初始化前后拦截处理,提供扩展点 | AOP代理创建、属性填充检查、自定义注解处理 |
JdbcTemplate |
JDBC操作模板类,简化数据库CRUD | 执行SQL、查询结果映射、事务内的数据操作 |
@Transactional |
声明式事务管理,控制事务边界 | 服务层方法事务控制、传播行为、隔离级别、回滚规则 |
二、高频类
| 类名 | 核心作用 | 典型应用场景 |
|---|---|---|
PlatformTransactionManager |
事务管理器接口,定义事务获取/提交/回滚规范 | 自定义事务管理器、多数据源事务控制、JTA分布式事务 |
HandlerInterceptor |
MVC拦截器接口,在请求前后执行逻辑 | 登录认证、日志记录、接口耗时统计、权限校验 |
RestTemplate |
同步HTTP客户端,调用RESTful API | 微服务间调用、第三方接口集成、负载均衡 |
ConversionService |
类型转换服务接口,统一管理Converter | 参数绑定、配置文件值转换、自定义类型转换 |
@Value |
注入配置文件属性值 | 读取application.yml中的配置项、SpEL表达式 |
Environment |
环境抽象接口,聚合所有配置源 | 获取profile、读取系统变量、判断运行环境 |
BeanFactory |
IoC容器根接口,提供Bean基础管理能力 | 编程式获取Bean、容器生命周期监听 |
ProxyFactoryBean |
AOP代理工厂Bean,编程式创建代理 | 动态代理创建、切面织入、方法拦截 |
ServletRequestDataBinder |
请求参数绑定,将HTTP参数转换为Java对象 | 表单提交参数绑定、日期格式转换、自定义编辑器 |
@RequestMapping / @GetMapping / @PostMapping |
请求映射注解,绑定URL到Handler方法 | 定义RESTful接口、路由规则、API版本管理 |
三、中频类
| 类名 | 核心作用 | 典型应用场景 |
|---|---|---|
ServletContextAware |
注入ServletContext,获取Web上下文 | 获取WebRoot路径、操作ServletContext属性 |
InitializingBean |
Bean初始化回调接口,afterPropertiesSet方法 | 初始化资源(连接池)、启动后台线程、校验配置 |
DisposableBean |
Bean销毁回调接口,destroy方法 | 释放资源(关闭连接池)、清理临时文件 |
SmartLifecycle |
智能生命周期管理,控制Bean启动/停止顺序 | 应用启动时初始化组件、优雅停机资源释放 |
@Profile |
环境配置注解,按profile条件注册Bean | 开发/测试/生产环境差异化配置 |
@Scope |
Bean作用域注解,控制Bean生命周期(singleton/prototype/request/session) | 多例Bean、Web作用域Bean、线程安全处理 |
ResourceLoader |
资源加载接口,统一访问classpath/filesystem/URL资源 | 加载模板文件、读取配置文件、导入SQL脚本 |
DefaultListableBeanFactory |
BeanFactory默认实现,支持BeanDefinition注册 | 动态注册Bean、编程式创建容器、集成测试 |
ServletFilterRegistrationBean |
Filter注册Bean,向Servlet容器注册Filter | 注册自定义Filter、设置Filter顺序、URL匹配规则 |
ServletListenerRegistrationBean |
Listener注册Bean,注册Servlet事件监听器 | 监听应用启动/停止、Session创建/销毁 |
四、低频类
| 类名 | 核心作用 | 典型应用场景 |
|---|---|---|
FactoryBean |
工厂Bean接口,创建复杂初始化逻辑的Bean | 创建Proxy、集成第三方框架(MyBatis Mapper)、延迟初始化 |
BeanDefinitionRegistryPostProcessor |
BeanDefinition注册后置处理器,在容器刷新前注册Bean | 动态扫描注解注册Bean、实现@Component功能扩展 |
SmartInitializingSingleton |
所有单例Bean初始化后回调 | 在全部Bean就绪后执行全局初始化、校验全局配置 |
ImportSelector / DeferredImportSelector |
动态导入配置类,根据条件选择导入的类 | Spring Boot自动配置核心、按条件装配Bean |
Condition / @Conditional |
条件装配接口,按条件注册Bean | 判断类路径存在、配置项值、操作系统类型后再注册Bean |
PropertySource |
属性源抽象,封装不同来源的配置 | 加载自定义配置文件、实现配置中心客户端 |
ConfigurableEnvironment |
可配置环境接口,管理PropertySource | 动态添加配置源、修改profile |
StandardServletEnvironment |
Web环境实现,加载servlet配置 | Web应用启动时初始化Environment |
WebApplicationInitializer |
Web应用初始化器(替代web.xml) | Java配置方式启动Spring MVC、注册Servlet/Filter |
RequestMappingHandlerMapping |
请求映射处理器,将URL映射到HandlerMethod | 自定义URL匹配规则、实现动态路由 |
五、Spring Boot专属高频类(独立生态)
| 类名 | 核心作用 | 典型应用场景 |
|---|---|---|
SpringApplication |
Spring Boot应用启动入口类,封装启动流程 | main方法启动、自定义Banner、设置默认profile |
@SpringBootApplication |
组合注解(@Configuration + @EnableAutoConfiguration + @ComponentScan) | 主启动类标注、包扫描、自动配置启用 |
@EnableAutoConfiguration |
启用自动配置机制,根据classpath自动装配Bean | Spring Boot核心机制,几乎在所有启动类上 |
@ConfigurationProperties |
批量注入配置属性到POJO | 数据源配置、Redis配置、自定义配置类 |
WebMvcConfigurer |
Web MVC配置接口,添加拦截器/转换器/格式化器 | 跨域配置、拦截器注册、消息转换器定制 |
CommandLineRunner / ApplicationRunner |
应用启动后执行回调 | 初始化缓存、预热数据、启动后台任务 |
ErrorController |
全局错误处理控制器 | 自定义404/500错误页面、统一异常返回格式 |
EmbeddedServletContainerCustomizer |
嵌入式容器定制接口 | 修改Tomcat端口、线程数、连接超时 |
HealthIndicator |
健康检查接口 | 实现自定义健康检查端点(/actuator/health) |
@Async / AsyncConfigurer |
异步执行注解及配置 | 异步方法执行、自定义线程池 |
研究建议与路径
入门开发者 :重点掌握极高频类(前10个),这是Spring开发的基石,理解IoC/DI原理和MVC流程。
高级工程师 :深入学习高频类(11-20),掌握事务传播、AOP代理、拦截器链等核心机制,能排查Bean装配、事务失效等问题。
架构师 :必须精通中低频类(21-40),理解Spring启动流程、Bean生命周期扩展点、条件装配机制,能够实现框架级扩展(如自定义starter)。
学习路径 :从ApplicationContext入手 → 理解BeanPostProcessor扩展机制 → 研究DispatcherServlet请求处理流程 → 掌握@Transactional实现原理 → 探索ImportSelector自动配置奥秘。