当前位置: 首页 > news >正文

Springboot之常用注解

参考整理自元宝的回答。

一、Bean声明和管理

注解

核心作用

简要说明

@Component

通用组件标识

最基础的注解,标记一个类为 Spring 组件(Bean),将由 Spring 容器管理其生命周期

@Service

业务逻辑层标识

特化于服务层(Service Layer),是 @Component的一种,用于标识业务逻辑组件

@Repository

数据访问层标识

特化于数据访问层(DAO Layer),是 @Component的一种。它还有一个额外好处,会自动转换特定数据访问异常为 Spring 的统一数据访问异常

@Controller​ / ​@RestController

Web 控制层标识

@Controller用于标记 Spring MVC 的控制器。@RestController@Controller@ResponseBody的组合,专为 RESTful Web 服务设计,其所有方法的返回值都会直接写入 HTTP 响应体

@Configuration

声明配置类

标记一个类为配置类,该类内部会包含使用 @Bean注解的方法,用于定义 Bean

@Bean

方法级别定义Bean

在配置类的方法上使用,方法的返回值将被注册为 Spring 容器中的一个 Bean

@Scope

定义Bean的作用域

指定 Bean 的作用域,例如单例(singleton)、原型(prototype,每次注入新实例)、请求(request)、会话(session)等

@Lazy

延迟初始化

标记 Bean 是否应该延迟初始化。设置为 true时,Bean 会在第一次被使用时才创建,而不是在容器启动时

@Primary

首选Bean

当存在多个相同类型的 Bean 候选时,被此注解标记的 Bean 将作为自动注入时的首选

@PostConstruct初始化函数自定义初始化函数
@PreDestroy销毁函数自定义销毁函数

二、依赖注入

注解

核心作用

简要说明

@Autowired

按类型自动装配

Spring 提供的注解,用于自动按照类型(byType)注入依赖。可以用在字段、setter 方法或构造函数上

@Qualifier

按名称细化装配

当有多个同一类型的 Bean 时,配合 @Autowired使用,通过指定 Bean 的名称(byName)来消除歧义

@Resource

按名称装配 (JSR-250)​

Java 标准注解(JSR-250),默认按名称(byName)进行装配。如果找不到匹配的名称,则会回退到按类型装配

@Value

注入简单值/配置

用于注入基本数据类型、String、SpEL 表达式结果,或者从配置文件(如 application.properties)中读取属性值

三、web

注解

核心作用

简要说明

@RequestMapping

映射Web请求

用于将 HTTP 请求映射到控制器方法上。可以简化其特定 HTTP 方法的变体,如 @GetMapping, @PostMapping

@RequestBody

绑定请求体

指示方法参数应该从 HTTP 请求体中绑定,通常用于接收 JSON 或 XML 格式的数据并转换为 Java 对象

@ResponseBody

返回值直接作为响应体

标记一个方法,其返回值应直接写入 HTTP 响应体,而不是解析为视图名称

@PathVariable

提取URL路径变量

用于从请求 URI 模板中提取变量值,绑定到方法参数上。例如,URI 模板 /users/{id}中的 {id}

@RequestParam

提取请求参数

用于从 URL 查询字符串或表单数据中提取请求参数,绑定到方法参数上

@RequestHeader提取请求头取出请求头中的数据并绑定到参数上

@ControllerAdvice​ / ​@RestControllerAdvice

全局控制器增强

用于编写跨所有控制器的全局代码,如全局异常处理(@ExceptionHandler)、数据绑定(@InitBinder

四、配置

核心作用

简要说明

@SpringBootApplication

Spring Boot核心注解

这是一个组合注解,包含了 @SpringBootConfiguration(允许在上下文中注册额外的 bean 或导入其他配置类)、@EnableAutoConfiguration(启用自动配置)和 @ComponentScan(组件扫描)

@EnableAutoConfiguration

启用自动配置

Spring Boot 自动配置机制的核心。它会根据项目的类路径、已存在的 Bean 定义和各种属性设置,尝试自动配置你的应用程序

@Conditional系列

条件化配置Bean

这是一族注解(如 @ConditionalOnClass, @ConditionalOnProperty等),它们根据特定条件(如某个类是否存在、某个属性是否被设置)来决定是否注册 Bean

@ConfigurationProperties

批量绑定配置属性

将配置文件(如 application.properties)中的属性批量绑定到一个带有前缀的 Java Bean 上,实现类型安全的配置

@Profile

环境特定配置

指定某个 Bean 或配置类仅在特定的环境(Profile,如 "dev", "prod")被激活时才会被注册到容器中

@PropertySource

加载属性文件

指定要加载的外部属性文件(.properties),将其中的属性添加到 Spring 的 Environment

@Import导入类将外部类导入到IOC容器中
@ImportResource导入配置文件将xml文件中的配置导入到配置环境中

五、AOP、事务与异步

注解

核心作用

简要说明

@Transactional

声明式事务管理

声明一个方法或类需要事务管理。可以配置事务的传播行为、隔离级别、回滚规则等属性

@Aspect

声明切面

标记一个类为切面,该类包含了通知(Advice)和切点(Pointcut)的定义

@Before/ @After/ @Around

声明通知

在切面中定义通知类型,例如 @Before在目标方法执行前执行,@Around环绕目标方法执行

@EnableAsync

启用异步执行

在配置类上使用,开启对异步任务的支持

@Async

标记异步方法

标记一个方法为异步执行,该方法将在调用时在一个独立的线程中运行

http://www.dtcms.com/a/470506.html

相关文章:

  • 从 0 到 1 搭建 Python 语言 Web UI自动化测试学习系列 14--二次开发--封装公共方法 2
  • 做平面的公司网站DNF做钓鱼网站
  • SpringBoot 集成 LangChain4j RAG Redis
  • 【QT】customPlot 设置图例透明背景和文字颜色
  • AT指令解析:ring_buffer、信号量、互斥量等基础知识
  • 任务网站(做任务学技能的)潍坊市建设局网站
  • 【算法】——动态规划之路径问题
  • 阿里云企业建站教程泰州东方医院
  • 东阿县住房和城乡建设局网站申请做版主 再什么网站
  • 深入理解数据在内存中的存储:整数与浮点数的二进制表示
  • 广东网站营销seo费用品牌推广活动有哪些
  • 特效音网站建设公司官网制作平台
  • MySQL数据库安装后,如何设置自动化备份策略?
  • 【开题答辩全过程】以 保险业务信息管理系统为例,包含答辩的问题和答案
  • 进口食品销售销售在那个网站做seo托管
  • 公司模板网站建设成绩查询系统网站开发
  • 建设大淘客网站雅布设计师
  • Oracle ADRCI工具全面使用指南:从基础到故障诊断实战
  • 美食网站设计欣赏上海著名网站建设
  • 【智能系统项目开发与学习记录】bringup功能包详解
  • 外贸网建站建公司网站的详细步骤
  • 美食网站建设书成都seo技术
  • 江河建设集团有限公司网站梧州网站建设流程
  • 在Qt中使用VTK
  • 正安北郊湖吉他文化广场自动化监测
  • 【论文阅读】DSPy-based neural-symbolic pipeline to enhance spatial reasoning in LLMs
  • cn域名后缀网站163企业邮箱格式
  • psql常用命令
  • 高速公路自动车道保持系统原理与实现
  • 番禺做网站最便宜的哪家公司wordpress注册界面