Spring Boot 核心注解
一、启动类与配置类
1. @SpringBootApplication
• 作用 :应用入口,整合 @Configuration
、@EnableAutoConfiguration
、@ComponentScan
。 • 示例:
java
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
2. @Configuration
• 作用 :标记配置类,用于定义 Bean。 • 常用搭配 :@Bean
• 示例:
java
@Configuration
public class AppConfig {
@Bean
public MyService myService() {
return new MyService();
}
}
二、控制器与 REST API
3. @RestController
• 作用 :@Controller
+ @ResponseBody
,返回 JSON/XML 数据。 • 示例:
java
@RestController
@RequestMapping("/api/users")
public class UserController { ... }
4. @RequestMapping
• 作用 :映射请求路径,支持类/方法级别。 • 属性 :path
、method
(GET/POST等)。 • 示例:
java
@RequestMapping("/users")
public class UserController { ... }
@PostMapping("/create")
public User createUser(@Valid @RequestBody User user) { ... }
5. HTTP 方法注解
• @GetMapping
:GET 请求
• @PostMapping
:POST 请求
• @PutMapping
:PUT 请求
• @DeleteMapping
:DELETE 请求
三、依赖注入
6. @Autowired
• 作用 :自动注入 Spring 容器中的 Bean。 • 适用场景 :字段、构造方法、方法参数。 • 示例:
java
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
}
7. 组件注解
注解 | 作用 | 使用场景 |
---|---|---|
@Component |
通用组件 | 任意层 |
@Service |
业务逻辑层 | Service 类 |
@Repository |
数据访问层 | DAO 接口/实现类 |
@Controller |
MVC 控制器 | 控制器类 |
四、数据访问与 JPA
8. @Entity
• 作用 :标记 JPA 实体类,对应数据库表。 • 示例:
java
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
}
9. @Repository
• 作用 :继承 JpaRepository
,提供 CRUD 和分页功能。 • 示例:
java
public interface UserRepository extends JpaRepository<User, Long> { ... }
五、事务管理
10. @Transactional
• 作用 :声明式事务管理,自动控制事务提交/回滚。 • 示例:
java
@Service
@Transactional
public class UserService {
public void createUser(User user) {
userRepository.save(user);
// 异常触发回滚
}
}
六、验证与异常处理
11. @Validated
• 作用 :启用方法参数和返回值验证。 • 示例:
java
@Validated
@Service
public class UserService {
public void createUser(@Valid @RequestBody User user) { ... }
}
12. @Valid
/ @NotBlank
等
• 作用 :字段验证,如非空、格式校验。 • 示例:
java
public class User {
@NotBlank(message = "用户名不能为空")
private String name;
}
七、其他常用注解
13. @PathVariable
• 作用 :绑定 URL 路径参数。 • 示例:
java
@GetMapping("/{id}")
public User getUserById(@PathVariable Long id) { ... }
14. @RequestParam
• 作用 :绑定 HTTP 请求参数。 • 示例:
java
@GetMapping("/search?name={name}")
public List<User> searchUser(@RequestParam String name) { ... }
八、核心注解速查表
注解 | 作用 | 典型场景 |
---|---|---|
@SpringBootApplication |
应用启动类 | 主类 |
@RestController |
RESTful API 控制器 | 控制器类 |
@Autowired |
依赖注入 | 字段/构造方法 |
@Entity |
JPA 实体类映射 | 数据模型类 |
@Repository |
数据访问层组件 | DAO 接口 |
@Transactional |
声明式事务管理 | 服务类方法 |
@GetMapping |
映射 GET 请求 | 控制器方法 |
@PathVariable |
绑定 URL 路径参数 | 控制器方法参数 |
@Validated |
启用方法参数验证 | 服务类 |
九、学习建议
- 动手实践:创建项目,逐步添加注解观察效果。
- 文档参考 :Spring Boot 官方文档。
- 避坑提示 : •
@SpringBootApplication
的扫描路径默认为主类包及其子包。 • 使用@Valid
时需在启动类添加@Validated
。 - 进阶学习:结合 Spring Security、MyBatis 等扩展注解。
整理说明 :
以上笔记覆盖了 Spring Boot 开发的核心注解,建议通过小项目(如 CRUD API、集成数据库)逐步掌握每个注解的实际用法。遇到问题优先查阅官方文档和社区资源(如 Stack Overflow)。