Spring、Spring Boot常用注解及大致作用?这题其实也和简单
时间: 2025-06-16 10:05:11 浏览: 10
### Spring 和 Spring Boot 中常用注解及其功能
#### 1. `@SpringBootApplication`
该注解是一个复合注解,综合了三个核心注解的功能:`@SpringBootConfiguration`、`@EnableAutoConfiguration` 和 `@ComponentScan`[^3]。它通常被用来标识一个 Spring Boot 应用程序的主配置类,并负责启动自动配置以及组件扫描。
```java
@SpringBootApplication
public class MySpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(MySpringBootApplication.class, args);
}
}
```
---
#### 2. `@EnableAutoConfiguration`
此注解开启了 Spring Boot 的自动配置机制,能够根据项目中的依赖项和运行环境动态加载合适的配置文件[^1]。这种智能化的配置过程主要通过 `SpringFactoriesLoader` 工具类实现,从而将所有符合条件的 `@Configuration` 配置加载到当前应用程序所使用的 IoC 容器中[^2]。
---
#### 3. `@ComponentScan`
这个注解的作用是指定需要扫描的包路径,以便发现并注册带有 `@Component` 或其他相关注解(如 `@Service`, `@Repository`, `@Controller` 等)标记的 Bean 到 Spring 容器中。如果没有显式指定,则默认会从声明该注解所在的类所在包开始向下扫描。
---
#### 4. `@RestController` 和 `@Controller`
这两个注解均用于定义控制器层逻辑处理单元。区别在于:
- **`@RestController`**: 自动返回 JSON 数据给前端调用者,无需额外设置视图解析器。
- **`@Controller`**: 默认配合视图解析器工作,适合传统的 MVC 架构开发模式。
示例代码如下所示:
```java
@RestController
@RequestMapping("/api/users")
public class UserApiController {
@GetMapping("/{id}")
public ResponseEntity<User> getUserById(@PathVariable Long id) {
// 查询数据库获取用户对象...
return new ResponseEntity<>(new User(), HttpStatus.OK);
}
}
```
---
#### 5. `@RequestMapping`
这是一个通用型请求映射注解,可以应用于类级别或者方法级别来绑定 URL 路径与具体的业务操作之间的关系[^4]。除此之外还有更细粒度的变体形式比如 `@GetMapping`, `@PostMapping`, `@PutMapping`, `@DeleteMapping` 等分别对应不同的 HTTP 方法类型。
---
#### 6. `@Autowired`
实现了基于类型的依赖注入(Dependency Injection),简化了传统 XML 方式的繁琐配置流程。它可以标注在字段上、构造函数参数列表里或者是 setter 方法前面等等位置。
---
#### 7. `@PathVariable`
当希望从 URI 参数提取变量值传递至处理器内部作为输入参量时可采用本注解完成绑定动作。例如上述例子中的 `/users/{id}` 即表示接受名为 “id” 的路径片段内容传入对应的 Java 方法形参之中。
---
#### 8. 其他重要注解概览
| 注解名称 | 功能描述 |
|---------------------|------------------------------------------------------------------------|
| `@Scheduled` | 支持定时任务调度 |
| `@Transactional` | 提供事务管理能力 |
| `@Qualifier` | 明确指明具体要注入哪个同类型 bean |
| `@Lazy` | 推迟初始化某些 beans |
---
阅读全文
相关推荐











