springboot的常用注解有哪些?
时间: 2023-11-16 15:27:20 浏览: 108
一些常用的Spring Boot注解包括:@SpringBootApplication、@RestController、@RequestMapping、@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@Autowired、@Value、@ComponentScan、@EnableAutoConfiguration等等。
相关问题
SpringBoot常用注解有哪些?
### Spring Boot 常用注解列表及其用途
#### 启动和配置相关注解
- **`@SpringBootApplication`**
此组合注解用于启动类上,内部包含了 `@Configuration`, `@EnableAutoConfiguration` 和 `@ComponentScan`。这使得应用程序能够自动配置组件并扫描指定路径下的组件[^3]。
- **`@Configuration`**
定义配置类,允许开发者以编程方式代替传统的 XML 配置文件来声明 beans 或者其他配置项。
- **`@ComponentScan`**
指定要扫描的基础包名,默认情况下会扫描标记有此注解的类所在的整个包树结构内的所有带有 `@Component` 的 bean 类型,并注册到 IoC 容器中[^2].
- **`@EnableConfigurationProperties`**
当需要启用特定属性绑定至 Java 对象时使用该注解;通常配合 `@ConfigurationProperties` 使用以便支持外部化配置.
#### 控制器和请求映射相关注解
- **`@Controller` / `@RestController`**
标记一个类作为 MVC 架构中的控制器层组件,其中 `@RestController` 是一种简化版的 `@Controller` 加上了 `@ResponseBody` 效果,直接返回 JSON/XML 数据给前端调用方[^1].
- **`@RequestMapping`**, **`@GetMapping`**, **`@PostMapping`** 等
这些都是用来定义 HTTP 请求与处理器方法之间的映射关系,具体指定了 URL 路径模式、HTTP 方法类型等参数匹配规则.
#### 依赖注入相关注解
- **`@Autowired`**
自动装配依赖对象实例,可以作用于字段、构造函数或 setter 方法之上,在大多数情况下推荐优先考虑基于构造器的方式来进行 DI (Dependency Injection).
- **`@Value`**
读取配置文件中的值并赋给成员变量,适用于简单的字符串替换场景.
#### 数据访问和事务管理相关注解
- **`@Repository`**
表明这是一个 DAO 层组件,负责数据库交互逻辑封装,同时也提供了异常转换机制.
- **`@Transactional`**
应用于服务层的方法上来控制事务边界,确保一组操作要么全部成功提交,要么回滚失败状态变化.
#### 条件化配置相关注解
- **`@ConditionalOnProperty`**, **`@ConditionalOnClass`**, etc.
提供了一种灵活的方式来有条件地加载某些 Bean 或执行初始化工作,取决于环境变量设置或其他因素的存在与否.
#### 测试相关注解
- **`@Test`**
JUnit 单元测试框架提供的标准注解之一,表示被它修饰的方法是一个测试案例.
- **`@RunWith(SpringRunner.class)`**
结合 JUnit4 使用,告知运行器如何发现和加载上下文信息,从而可以在单元测试期间模拟完整的 Spring 上下文环境.
#### 其他实用注解
- **`@Scheduled`**
支持定时任务调度的功能,可以通过 cron 表达式精确设定触发时间间隔.
- **`@Cacheable`**, **`@CachePut`**, and **`@CacheEvict`**
缓存相关的三个主要注解,分别对应着获取缓存数据、更新缓存条目以及清除过期/不再需要的数据的操作.
```java
// 示例代码片段展示部分常见注解的应用
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
@RestController
@RequestMapping("/api/v1")
class ExampleController {
private final ExampleService exampleService;
@Autowired
public ExampleController(ExampleService exampleService){
this.exampleService = exampleService;
}
@GetMapping("/example")
String getExample(){
return "This is an API endpoint";
}
}
```
SpringBoot常用注解有哪些
### Spring Boot 中常用的注解
在开发基于 Spring Boot 的应用程序时,一些核心注解对于配置和组件扫描至关重要。`@SpringBootApplication` 是最常使用的注解之一,它实际上是一个复合注解,包含了 `@SpringBootConfiguration`, `@EnableAutoConfiguration` 和 `@ComponentScan` 这三个重要注解的功能[^1]。
#### 1. @SpringBootApplication
此注解用于标记主类并启用自动配置以及组件扫描功能。该注解简化了项目启动类的编写过程,使得开发者无需单独声明多个基础注解即可完成应用初始化工作。
```java
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
```
#### 2. @Controller / @RestController
这两个注解用来定义控制器层,在 RESTful API 开发中非常普遍。其中 `@RestController` 实际上是 `@Controller` 加上 `@ResponseBody` 组合而成,可以直接返回 JSON 或 XML 数据给客户端而不需要视图解析器处理响应体内容。
#### 3. @Service
服务层逻辑通常由带有此类注解的 Bean 来实现。通过这种方式可以轻松管理业务逻辑单元,并让它们参与到依赖注入机制当中去。
#### 4. @Repository
持久化操作相关的 DAO 类应该被标注为此种类型的 Bean。这有助于框架识别数据访问对象并将异常转换成未检查的应用程序特定异常类型。
#### 5. @Autowired
这是为了支持依赖注入所必需的一个关键注解。无论是字段、构造函数还是方法级别的注入都可以借助于这个工具来完成自动化装配流程。
#### 6. @Value
当需要从外部资源文件读取属性值时可利用此特性。它可以绑定环境变量或 application.properties/yml 文件中的键值对到 JavaBean 属性之上。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)