常用的 Spring Boot 注解及其作用

1、常用注解介绍:

Spring Boot 提供了许多注解来简化开发,并帮助开发者在 Spring 应用中实现各种功能。以下是一些常用的 Spring Boot 注解及其作用:

  1. @SpringBootApplication

    • 作用:用于标识主启动类,通常位于 Spring Boot 应用的入口类上。
    • 功能:该注解整合了三个常用注解:@Configuration@EnableAutoConfiguration 和 @ComponentScan,用于开启自动配置和组件扫描。
  2. @RestController

    • 作用:用于定义 RESTful 风格的控制器,通常用于处理 HTTP 请求并返回 JSON 或 XML 格式的数据。
    • 功能:相当于 @Controller 和 @ResponseBody 的组合,用于标识控制器类,并指示 Spring MVC 框架将方法的返回值序列化为 JSON 或 XML。
  3. @RequestMapping

    • 作用:用于将 HTTP 请求映射到控制器的处理方法上。
    • 功能:指定请求的 URL 路径和请求方法(GET、POST、PUT、DELETE 等),使得控制器能够处理特定的 HTTP 请求。
  4. @Autowired

    • 作用:用于自动装配 Spring Bean。
    • 功能:通过类型匹配将 Spring 容器中的 Bean 自动注入到标注了 @Autowired 的字段、方法或构造函数中,省去了手动注入的步骤。
  5. @Service@Repository@Controller

    • 作用:分别用于标识服务层、持久层和控制器层的组件。
    • 功能:通过这些注解,Spring Boot 能够自动扫描并将这些类识别为 Spring Bean,并加入到应用的上下文中。
  6. @Configuration@Bean

    • 作用:用于定义配置类和声明 Bean。
    • 功能:@Configuration 用于标识配置类,@Bean 用于声明 Bean,将方法的返回值作为 Bean 注入到 Spring 容器中。
  7. @Value

    • 作用:用于注入配置文件中的属性值。
    • 功能:通过 @Value 注解,可以将配置文件中的属性值注入到字段、方法或构造函数中,方便获取配置信息。
  8. @ComponentScan

    • 作用:用于指定 Spring 扫描组件的基础包。
    • 功能:通过 @ComponentScan 注解,可以告诉 Spring 在指定的包及其子包中扫描并注册所有带有 @Component 注解的类。

2、@Component 注解和 @Bean 注解区别

在 Spring 框架中,@Component 注解和 @Bean 注解都用于创建 Bean 对象,但它们之间存在一些区别:

  1. 作用对象

    • @Component 注解可以用于标识任何类为 Spring 组件(Bean),包括服务层、持久层和控制器层的类。
    • @Bean 注解通常用于配置类中的方法,用于声明某个方法返回的对象为一个 Bean。
  2. 使用方式

    • @Component 注解通常通过在类上直接使用来声明一个 Bean。
    • @Bean 注解通常通过在配置类中的方法上使用,将方法的返回值声明为一个 Bean。
  3. 作用范围

    • @Component 注解是一种泛化的声明,表示一个受 Spring 管理的组件,它的具体作用范围可以通过其他特定的注解来区分,如 @Service@Repository@Controller
    • @Bean 注解通常用于声明一个具体的 Bean,开发者可以在配置类中定义需要创建的 Bean,并可以指定其作用域、初始化方法、销毁方法等。
  4. 依赖注入

    • 通过 @Component 注解声明的 Bean 通常需要 Spring 容器在启动时自动扫描并进行依赖注入。
    • 通过 @Bean 注解声明的 Bean 则需要手动在配置类中进行声明,开发者可以通过配置方法的参数来实现依赖注入,或者通过 @Autowired 注解来注入其他 Bean。

总的来说,@Component 注解是一种更为泛化的声明方式,用于声明任意的 Spring 组件,而 @Bean 注解则更加具体,用于在配置类中声明需要被 Spring 管理的 Bean。在实际应用中,两者通常会根据具体的需求和场景来选择使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/3065.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

信号分解 | SSA(奇异谱分析)-Matlab

分解效果 SSA(奇异谱分析) 信号分解 | SSA(奇异谱分析)-Matlab 奇异谱分析(Singular Spectrum Analysis,简称SSA)是一种用于时间序列分析的方法。它可以用于数据降维、信号分解、噪声去除和预测等应用。 SSA的基本思想是将时间序列分解为若干个成分,每个成分代表着不同的…

语言模型的发展

文章目录 语言模型的发展历程大语言模型的能力特点大语言模型关键技术概览大语言模型对科技发展的影响 语言模型的发展历程 一般来说,语言模型旨在对于人类语言的内在规律进行建模,从而准确预测词序列中未来(或缺失)词或词元&…

Dubbo应用可观测性升级指南与踩坑记录

应用从dubbo-3.1.*升级到dubbo-*:3.2.*最新稳定版本,提升应用的可观测性和度量数据准确性。 1. dubbo版本发布说明(可不关注) dubbo版本发布 https://github.com/apache/dubbo/releases 【升级兼容性】3.1 升级到 3.2 2. 应用修改点 应用一般只需要升级dubbo-s…

Vue+OpenLayers7入门到实战:OpenLayers加载GeoJson格式数据并解析成多边形、线段、点和区域范围等要素叠加到地图矢量图层上

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7入门到实战 前言 本章介绍如何使用OpenLayers7在地图上加载GeoJson格式数据并解析成多边形、线段、点和区域范围等要素叠加到地图矢量图层上的功能。 前面两章也是可以支持多边形、线段、点和区域范围灯数据加载的,只是没…

Go 到底是哪里没有做好,我请问呢?

没有引导好并发理念 从历史背景来看,在 Go 诞生的那个年代,并发编程是一个比较新颖的理念。许多其他编程语言、论文甚至书籍都写过关于并发编程的内容。并发编程还没有成为主流思想。 Go 团队发明了 “goroutine” 这个词,Go 让协程的使用变…

轴承轶闻01-扎雷茨基和帕姆格伦

这个口述历史项目是NASA的一个在线资源,旨在记录和保留NACA时期的历史资料和相关信息。NACA成立于1915年,直到1958年成立NASA之前一直存在。在这段时间里,NACA在航空技术和航天领域做出了许多重要贡献,为美国的航空航天事业奠定了…

Leetcode刷题之——队列Queue|先入先出FIFO|广度优先搜索BFS|栈Stack|后入先出LIFO|深度优先搜索DFS

Leetcode刷题之——队列Queue|先入先出FIFO|广度优先搜索BFS|栈Stack|后入先出LIFO|深度优先搜索DFS 1. 队列(Queue)——FIFO,先入先出的数据结构1.1 循环队列1.2 内置队列的常用方法(C)1.3 广度优先搜索(BFS) 2.栈(St…

袁庭新ES系列16节|Elasticsearch客户端高级操作

前言 上一章节袁老师主要带领大家学习了Elasticsearch客户端基础部分的内容,Elasticsearch客户端还有很多高级相关的操作,这一章节主要带领大家来学习Elasticsearch客户端高级相关的操作。接下来就跟上袁老师的节奏继续探讨Elasticsearch的相关知识。 一…

Linux常用命令总结(四):文件权限及相关命令介绍

1. 文件属性信息解读 1. 文件类型和权限的表示 0首位表示类型。在Linux中第一个字符代表这个文件是目录、文件或链接文件 符号对应文件类型-代表文件dd 代表目录l链接文档(link file); 1-3位确定属主(该文件的所有者)拥有该文件的权限。 4-6…

Flutter 之 Widget

在 Flutter 开发框架中,Widget(中文:小部件)是一种核心概念,用于描述用户界面(UI)的各个组成部分。它不仅是构成 Flutter 应用程序的基础单元,也是实现应用程序视图层的主要手段。以…

深度探讨容器化技术在网络安全中的应用与挑战

随着容器化技术的快速发展,尤其是Docker与Kubernetes(K8s)的广泛应用,企业IT架构正经历着从传统虚拟机向轻量级容器的深刻变革。容器化技术为提升资源利用率、加速应用部署及维护提供了强大支持,但同时也给网络安全带来…

每日一题:托普利茨矩阵

给你一个 m x n 的矩阵 matrix 。如果这个矩阵是托普利茨矩阵,返回 true ;否则,返回 false 。 如果矩阵上每一条由左上到右下的对角线上的元素都相同,那么这个矩阵是 托普利茨矩阵 。 示例 1: 输入:matrix…

六西格玛管理培训对于个人的职业发展有哪些帮助?

在职业生涯的辽阔天地中,要想展翅高飞,不仅需要坚实的专业根基,还需掌握那些能引领团队、驱动变革的先进管理理念与方法。六西格玛管理作为一种以数据为基础、追求卓越的管理策略,正逐渐成为企业提升竞争力的有力工具,…

关于msvcp140.dll下载的方法分享,怎么才能靠谱的修复msvcp140.dll

msvcp140.dll文件的缺失,就代表你要去它重新下载回来,不然的话你的某些程序是没办法启动的,会直接卡死报错打不开!今天就来教一下大家怎么去把msvcp140.dll下载回来,完成修复! 一.msvcp140.dll文件有什么作…

用java实现PDF的下载

1.下载PDF模版 2.导入依赖 <dependency><groupId>com.itextpdf</groupId><artifactId>itext7-core</artifactId><version>7.2.5</version><type>pom</type></dependency> 3.完整代码 package com.by.controller…

Pytorch:神经网络训练过程代码详解

文章目录 一、基本概念1、epoch2、遍历DataLoader 二、神经网络训练过程代码详解步骤一&#xff1a;选择并初始化优化器步骤二&#xff1a;计算损失步骤三&#xff1a;反向传播步骤四&#xff1a;更新模型参数步骤五&#xff1a;清空梯度组合到训练循环中 一、基本概念 for ep…

jQuery 动画小练习

以下是一个使用 jQuery 实现动画效果的简单示例。这个示例会让一个元素在页面加载时向右移动&#xff0c;并在点击时回到原始位置&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"…

冯唐成事心法笔记 —— 知智慧

系列文章目录 冯唐成事心法笔记 —— 知己 冯唐成事心法笔记 —— 知人 冯唐成事心法笔记 —— 知世 冯唐成事心法笔记 —— 知智慧 文章目录 系列文章目录PART 4 知智慧 知可为&#xff0c;知不可为大势不可为怎么办为什么人是第一位的多谈问题&#xff0c;少谈道理用金字塔…

服用5年份筑基丹 - Vue篇

前言 修仙之道&#xff0c;千回百转&#xff0c;每一步都充满了玄妙与机遇。在这条充满奇幻的修仙之路上&#xff0c;有一物至关重要&#xff0c;那便是筑基丹。此丹&#xff0c;凝聚了修仙者多年的心血与智慧&#xff0c;是修炼道路上的重要助力。 今日&#xff0c;我有幸得…

面试经典150题——路径总和

​ 1. 题目描述 2. 题目分析与解析 2.1 思路一 注意题目的关键点&#xff1a;判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;起点是root&#xff0c;终点是叶子节点。 那么我们就可以从根节点按照层序遍历的方式&#xff0c;从根节点从根到 叶子不断对路径进行加…