Spring中有哪些常用的注解呢?

欣喜 Spring 发布时间:2024-11-28 09:49:54 阅读数:13170 1
下文笔者讲述Spring中常用的注解,如下所示

Spring注解的分类

Spring中注解按分类,可分为:
    组件扫描类
	依赖注入类
	作用域类
	生命周期回调
	AOP 面向切面编程类
	WEB 开发类
	测试类
	条件注解类
	异步处理类
	事务管理类
	定时类
	
	
   不同的注解,在Spring中加载位置及加载时间点都不同
每一个分类下面的内容如下所示

组件扫描与配置

1. **@Component**:通用组件注解,用于标记类为 Spring 管理的 Bean。
2. **@Service**:用于标记业务层组件。
3. **@Repository**:用于标记数据访问层组件。
4. **@Controller**:用于标记控制层组件。
5. **@Configuration**:用于标记配置类,替代 XML 配置文件。
6. **@Bean**:用于在配置类中定义 Bean。
7. **@ComponentScan**:用于自动扫描并注册带有 `@Component` 注解的类。

依赖注入

1. **@Autowired**:用于自动注入依赖,可以用于字段、构造器、方法等。
2. **@Qualifier**:用于指定具体的 Bean,当存在多个相同类型的 Bean 时使用。
3. **@Resource**:类似于 `@Autowired`,但基于名称进行注入。
4. **@Value**:用于注入属性值,支持 SpEL 表达式。

作用域

1. **@Scope**:用于指定 Bean 的作用域,如 `singleton`、`prototype`、`request`、`session` 等。

生命周期回调

1. **@PostConstruct**:用于标记初始化方法,在依赖注入完成后调用。
2. **@PreDestroy**:用于标记销毁方法,在 Bean 销毁前调用。

AOP(面向切面编程)

1. **@Aspect**:用于标记切面类。
2. **@Before**:用于定义前置通知。
3. **@After**:用于定义后置通知。
4. **@AfterReturning**:用于定义返回后通知。
5. **@AfterThrowing**:用于定义异常通知。
6. **@Around**:用于定义环绕通知。

Web开发

1. **@RequestMapping**:用于映射 HTTP 请求到处理方法。
2. **@GetMapping**:用于映射 HTTP GET 请求。
3. **@PostMapping**:用于映射 HTTP POST 请求。
4. **@PutMapping**:用于映射 HTTP PUT 请求。
5. **@DeleteMapping**:用于映射 HTTP DELETE 请求。
6. **@PathVariable**:用于提取 URL 中的路径变量。
7. **@RequestParam**:用于提取请求参数。
8. **@RequestBody**:用于将请求体中的数据绑定到方法参数。
9. **@ResponseBody**:用于将方法返回值直接写入响应体。
10. **@RestController**:组合了 `@Controller` 和 `@ResponseBody`,用于 RESTful API。

测试

1. **@SpringBootTest**:用于标记 Spring Boot 应用的集成测试。
2. **@RunWith**:用于指定测试运行器,通常与 `SpringRunner` 一起使用。
3. **@MockBean**:用于创建和管理模拟 Bean。
4. **@Test**:用于标记测试方法。

条件注解

1. **@Conditional**:用于根据条件决定是否创建 Bean。
2. **@ConditionalOnClass**:当类路径中存在指定类时创建 Bean。
3. **@ConditionalOnMissingClass**:当类路径中不存在指定类时创建 Bean。
4. **@ConditionalOnProperty**:当配置属性满足特定条件时创建 Bean。

异步处理

1. **@Async**:用于标记方法为异步执行。
2. **@EnableAsync**:启用异步方法支持。

事务管理

1. **@Transactional**:用于标记方法或类为事务性。

定时任务

1. **@Scheduled**:用于标记方法为定时任务。
2. **@EnableScheduling**:启用定时任务支持。

其他

1. **@Profile**:用于指定 Bean 在特定环境下生效。
2. **@Lazy**:用于延迟初始化 Bean。
3. **@Primary**:用于指定优先选择的 Bean。
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/Spring/202411/8192.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者