尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Java系列知识之 ~ Spring 与 Spring Boot 常用注解对比说明 - 实践

Java系列知识之 ~ Spring 与 Spring Boot 常用注解对比说明 - 实践
📅 发布时间:2026/6/20 15:35:17

Java系列知识之 ~ Spring 与 Spring Boot 常用注解对比说明 - 实践

Spring 与 Spring Boot 常用注解对比说明

注解

所属框架

定义

主要作用

使用场景

示例代码

@Component

Spring

标识一个类为 Spring 管理的组件

注册 Bean 到容器,由 Spring 创建和管理对象

工具类、通用类

@Component public class MyUtil {}

@Service

Spring

业务逻辑层注解(@Component 派生)

表示该类属于业务逻辑层,由 Spring 管理

用户注册、订单处理等业务逻辑

@Service public class UserService {}

@Repository

Spring

数据访问层注解(@Component 派生)

表示该类负责数据持久化,并自动转换数据库异常

DAO 层、数据库操作类

@Repository public class UserDao {}

@Controller

Spring

控制层注解(@Component 派生)

接收 HTTP 请求并返回页面视图

MVC 控制器,返回 JSP/HTML 页面

@Controller public class PageController {}

@RestController

Spring

REST 控制层注解(= @Controller + @ResponseBody)

提供 REST API,自动将返回值转为 JSON

前后端分离、移动端接口

@RestController public class ApiController {}

@Configuration

Spring

配置类注解

定义 Bean 配置,替代 XML 配置文件

创建和注册 Bean

@Configuration public class AppConfig {}

@Bean

Spring

定义 Bean 的方法级注解

注册一个对象为 Spring Bean

配合 @Configuration 使用

@Bean public UserService userService(){}

@PostConstruct

Spring

Bean 初始化后执行方法

用于执行初始化逻辑

初始化缓存、加载配置

@PostConstruct public void init(){}

@Autowired

Spring

自动注入 Bean

自动装配依赖对象

注入 Service、Dao 等

@Autowired private UserService userService;

@Qualifier

Spring

配合 @Autowired 精确注入

指定具体 Bean 名称

存在多个同类型 Bean 时

@Qualifier(\"beanName\")

@Value

Spring

注入配置值

注入 application.properties 中的值

加载配置项

@Value(\"${server.port}\")

@RequestMapping

Spring MVC

映射请求路径

定义控制器方法的 URL 路径

Web 请求处理

@RequestMapping(\"/users\")

@GetMapping / @PostMapping

Spring MVC

映射 GET/POST 请求

快捷定义请求方法

REST API 开发

@GetMapping(\"/list\")

@PathVariable

Spring MVC

路径参数绑定

获取 URL 中的变量

REST 接口路径参数

@GetMapping(\"/{id}\")

@RequestBody

Spring MVC

请求体参数绑定

接收 JSON 请求体

前后端分离 JSON 接口

@PostMapping(\"/\")


Spring Boot 常用注解(与 Spring 区别)

注解

所属框架

定义

主要作用

使用场景

示例代码

@SpringBootApplication

Spring Boot

Spring Boot 应用入口注解(= @Configuration + @EnableAutoConfiguration + @ComponentScan)

启动类标识,开启自动配置与包扫描

Spring Boot 主启动类

@SpringBootApplication public class App {}

@EnableAutoConfiguration

Spring Boot

自动配置注解

自动装配所需 Bean 和配置

启用自动配置功能

(已包含在 @SpringBootApplication 中)

@ComponentScan

Spring Boot

包扫描注解

自动扫描指定包下的组件

控制扫描范围

(已包含在 @SpringBootApplication 中)

@EnableScheduling

Spring Boot

启用定时任务

开启 @Scheduled 定时任务功能

定时任务调度

@EnableScheduling

@Scheduled

Spring Boot

定时任务方法注解

声明一个定时任务方法

定时执行任务

@Scheduled(fixedRate=5000)

@EnableAsync

Spring Boot

启用异步任务

支持 @Async 异步方法

异步处理

@EnableAsync

@Async

Spring Boot

异步方法注解

声明异步执行的方法

多线程任务执行

@Async public void doTask()

@ConfigurationProperties

Spring Boot

批量注入配置文件属性

将配置文件内容注入对象

配置类绑定

@ConfigurationProperties(prefix=\"app\")


总结:

  • Spring 注解 主要负责 Bean 管理、依赖注入、MVC 请求处理、配置管理 等传统功能。
  • Spring Boot 注解 是对 Spring 的增强,重点在于 自动配置、简化启动、快速开发,减少繁琐的 XML 和配置代码。
  • @SpringBootApplication 是最核心的入口注解,可以理解为“Spring 项目的启动开关”,一行代码完成三件事:自动配置、组件扫描和配置类加载。

✅ 记忆技巧:

  • 写业务逻辑用 @Service
  • 写数据库操作用 @Repository
  • 写网页控制器用 @Controller
  • 写 JSON 接口用 @RestController
  • 写配置用 @Configuration + @Bean
  • 启动类一定有 @SpringBootApplication

Spring中的注解可以在SpringBoot中使用

Spring 中的注解几乎都可以在 Spring Boot 中使用,因为 Spring Boot 本质上就是对 Spring 框架的一层封装和自动化配置。Spring Boot 是建立在 Spring 之上的,它并不是另一个独立框架,而是 简化 Spring 使用的一套工具集和约定。


详细解释如下:

分类

说明

Spring 注解

如 @Component、@Service、@Repository、@Controller、@Autowired、@Configuration 等,这些是 Spring 核心容器和 IOC/DI 的注解,Spring Boot 也完全支持,并且是其核心基础。

Spring Boot 特有注解

如 @SpringBootApplication、@EnableAutoConfiguration、@ConfigurationProperties、@RestControllerAdvice 等,这些是在原有 Spring 注解基础上进行的增强或组合,简化配置和开发流程。


✅ 例子:Spring 的注解在 Spring Boot 中使用

// 这是标准的 Spring 注解,用于标记 Bean
@Component
public class MyBean {@PostConstructpublic void init() {System.out.println("Bean 初始化完成");}
}

在 Spring Boot 中,这段代码 完全不用修改,可以直接运行,因为 Spring Boot 内部依然使用 Spring 的 IOC 容器和注解解析机制。


总结一句话:

Spring Boot ≈ Spring + 自动配置 + 嵌入式服务器 + 快速启动支持
因此,Spring 的注解不仅“可以”在 Spring Boot 中使用,而且是 Spring Boot 能够工作起来的根基。


Spring 和 Spring MVC 的关系(通俗理解)

一句话总结:

Spring 是一个大框架(基础设施框架),而 Spring MVC 是 Spring 框架中专门用于处理 Web 层(MVC 模式)的一个子模块。

换个更形象的比喻:

  • Spring 就像是一座大城市,提供了各种基础设施(依赖注入、AOP、事务、数据访问等)。
  • Spring MVC 就像这座城市里专门负责“交通调度”的一套系统,用来处理 Web 请求、响应、页面跳转等“前端交互”工作。

✅ 所以:
Spring MVC 是 Spring 框架的一部分,是它的一个子项目,要使用 Spring MVC 必须先有 Spring。


二、两者的功能定位对比

对比项

Spring

Spring MVC

定位

基础核心框架

Web 层框架(MVC 模型)

主要功能

IoC(控制反转)、AOP(面向切面)、事务管理、Bean 管理

请求分发、参数绑定、视图解析、REST 接口开发

是否独立运行

✅ 可以单独使用(比如纯后端服务)

❌ 不行,必须依赖 Spring

核心组件

ApplicationContext

、BeanFactory

、@Component

、@Autowired

等

DispatcherServlet

、@Controller

、@RequestMapping

等

使用场景

所有 Java 应用的基础设施

Web 项目开发(接口、页面)

与 Spring Boot 的关系

Spring Boot 内部依赖 Spring

Spring Boot Web 模块内部整合了 Spring MVC


三、工作原理对比(整体架构)

Spring MVC 的运行完全依赖于 Spring 容器:

Spring(IOC容器 + AOP + Bean管理)│└─── Spring MVC(Web 层处理)├─ DispatcherServlet(前端控制器)├─ Controller(控制层)├─ Model(模型层)└─ View(视图层)
  • Spring 负责管理所有 Bean、注入依赖、事务控制等。
  • Spring MVC 借助 Spring 的容器来创建 Controller 等组件,处理 HTTP 请求和响应。

四、代码层面示例

使用 Spring + Spring MVC 的典型控制器代码:

@Controller // Spring MVC 提供的控制层注解
public class HelloController {@RequestMapping("/hello")@ResponseBodypublic String sayHello() {return "Hello, Spring MVC!";}
}
  • @Controller、@RequestMapping 等都是 Spring MVC 提供的注解。
  • 这个 Controller Bean 本身依然是由 Spring 的 IOC 容器管理的。

总结一句话(适合论文写):

Spring 是整个框架的基础核心,负责 IoC、AOP、事务等基础设施;Spring MVC 是 Spring 框架的一个子模块,专注于 Web 层的请求分发和 MVC 模式实现。Spring MVC 必须依赖于 Spring,而 Spring 则可以独立使用。


✅ 最终结论:

  • Spring 包含了 Spring MVC(Spring MVC 是 Spring 的子项目)。
  • Spring MVC 无法离开 Spring 单独存在,而 Spring 可以单独使用。

相关新闻

  • 2025年知名的郑州市政电力管,郑州电力管厂家最新推荐榜:批发销售公司
  • 2025年靠谱的湖南水泥垫块,建筑水泥垫块推荐TOP品牌厂家:实力源头加工公司
  • 2025年热门的橡胶密封圈,密封圈最新TOP厂家推荐:直销制造公司

最新新闻

  • 嵌入式GUI开发实战:Alpha混合与位图绘制优化指南
  • 2026 年 6 月亨得利最新官方正式深度辟谣|拆解虚假资讯牟利底层逻辑,亨得利全直营门店资质全景深度解析 - 亨得利官方维修中心
  • 费亨得利官方公正辟谣|2026年6月最新声明:亨得利全国正规服务渠道权威公示 - 亨得利官方维修中心
  • iOS自动化测试演进:从WDA底层原理到Appium实战框架选型
  • 杭州黄金回收口碑榜单,连锁老店无隐藏收费上门回收更安心 - 奢品小当家
  • Selenium Grid架构解析与生产环境部署实践

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号