Spring&SpringBoot常用注解

Spring 和 Spring Boot 是 Java 开发中广泛使用的框架,它们提供了许多注解来简化配置和开发过程。以下是一些 Spring 和 Spring Boot 中常用的注解:

Spring 常用注解

‌@Component‌

用于标注一个类为 Spring 容器的一个组件,Spring 会自动为这个类创建 Bean 实例。

‌@Repository‌

专门用于标注数据访问层(DAO)的组件,表示该类是用于数据库访问的。

‌@Service‌

用于标注服务层的组件,通常包含业务逻辑。

‌@Controller‌

用于标注控制层组件,如 Spring MVC 中的控制器。

‌@Autowired‌

自动注入依赖的 Bean,可以标注在字段、方法或构造器上。

‌@Qualifier‌

与 @Autowired 一起使用,用于指定要注入的 Bean 的名称或类型。

‌@Configuration‌

表示该类是一个配置类,Spring 会基于这个类生成 IoC 容器,并且可以将 @Bean 注解的方法返回的实例注入到其他组件中。

‌@Bean‌

用于标注在 @Configuration 类中的方法上,表示该方法会返回一个 Bean 实例,该实例会被注册到 Spring 容器中。

‌@Scope‌

用于指定 Bean 的作用域,如 singleton、prototype、request、session 等。

‌@Value‌

用于注入配置文件中的值到字段或方法参数中。

Spring Boot 常用注解

‌@SpringBootApplication‌

是一个组合注解,包含了 @SpringBootConfiguration、@EnableAutoConfiguration 和 @ComponentScan,用于标注主配置类,开启自动配置和组件扫描。

‌@SpringBootConfiguration‌

表示这是一个 Spring Boot 的配置类,等同于传统的 Spring 配置类上的 @Configuration 注解。

‌@EnableAutoConfiguration‌

告诉 Spring Boot 基于添加的 jar 依赖猜测你可能需要的配置,并自动进行配置。

‌@SpringBootTest‌

用于编写 Spring Boot 应用的集成测试,可以启动整个 Spring 容器。

‌@TestConfiguration‌

用于测试时的专用配置,与 @Configuration 类似,但仅用于测试环境。

‌@MockBean‌

在测试时用于替换 Spring 容器中的真实 Bean,以便进行隔离测试。

‌@Profile‌

用于指定某些 Bean 只在特定的环境下才激活,如开发环境、测试环境或生产环境。

‌@Conditional‌

根据特定的条件来决定是否创建某个 Bean,通常与自定义的条件类一起使用。

这些注解大大简化了 Spring 和 Spring Boot 应用的配置和开发过程,使得开发者可以更加专注于业务逻辑的实现,而不是框架的配置。在实际开发中,会根据需要选择和使用这些注解。

相关推荐
哦虎!4 小时前
【JavaEE】网络初识
java
for_ever_love__4 小时前
MySQL ORDER BY 排序优化:从 Using filesort 到索引有序扫描(含双路 / 单路排序原理)
java·mysql·优化·存储·by·order·filesort
我是人✓5 小时前
Java文件上传三方式对比:从传统到SpringBoot
java·开发语言
欣栀♡5 小时前
JVM 频繁 Full GC 先看日志括号里的 cause,jstat 的 FGC 在 JDK 8 上会骗人
java·jvm
IT研究室5 小时前
最新计算机毕业设计选题推荐-基于spring boot的葡萄酒文化宣传网站-网站-文档指导-Java-springboot
java·spring boot·课程设计
慧都小项5 小时前
MyEclipse 中创建和测试 JAX-RS REST 接口:从项目配置到 REST Explorer
java·restful·myeclipse·jax-rs
Wang's Blog5 小时前
Java 项目实战: 交友项目 - 入门案例:编写 Dubbo 服务提供者
java·dubbo·交友
秋饼6 小时前
Spring AI 2.0 结构化输出企业级实战:从 BeanOutputConverter 源码到生产级解析容错
java·ai·技术分享·后端开发
摇滚侠6 小时前
《计算机是如何工作的:人人都能懂的计算机软硬件工作原理》第 9 章 机器码与汇编语言 阅读笔记 9
java·开发语言·笔记
Cc.Y6 小时前
Java零基础入门:深入Java核心:文件IO与序列化全解
java·开发语言·python