🌱 Spring Boot 常用注解速查表
📁 分类整理 + 应用说明,适用于日常开发参考。
🔧 核心注解(IOC/AOP)
| 注解 |
作用 |
应用层 |
| @Component |
标识一个通用组件,注册到 Spring 容器 |
所有组件 |
| @Service |
表示服务层组件(业务逻辑) |
Service |
| @Repository |
表示 DAO 层组件,带异常转换功能 |
Repository |
| @Controller |
表示控制器组件,返回视图 |
Web 控制层 |
| @RestController |
@Controller + @ResponseBody,返回 JSON |
Web API |
| @Autowired |
按类型注入 Bean |
所有层 |
| @Resource |
默认按名称注入 Bean |
所有层 |
| @Value("${key}") |
注入配置文件中的属性值 |
所有层 |
| @PostConstruct |
Bean 初始化后执行方法 |
所有层 |
| @PreDestroy |
Bean 销毁前执行方法 |
所有层 |
🌐 Web 开发相关(Spring MVC)
| 注解 |
作用 |
| @RequestMapping |
映射请求路径(支持 GET/POST 等) |
| @GetMapping / @PostMapping |
更具体的请求方法映射 |
| @PathVariable |
获取 URL 中的路径变量 |
| @RequestParam |
获取请求参数(?key=value) |
| @RequestBody |
接收 JSON 请求体并映射为对象 |
| @ResponseBody |
将方法返回值转为 JSON |
| @ModelAttribute |
用于表单绑定参数到对象 |
| @CrossOrigin |
支持跨域请求 |
| @SessionAttributes |
设置需要存储到 session 的属性 |
⚙️ 配置类 / 自动装配相关
| 注解 |
作用 |
| @SpringBootApplication |
启动类核心注解(包含 3 个注解) |
| @Configuration |
定义配置类(相当于 XML 配置) |
| @Bean |
将方法返回对象注册为 Bean |
| @ComponentScan |
指定扫描组件的基础包 |
| @EnableAutoConfiguration |
启用 Spring Boot 自动配置 |
| @EnableConfigurationProperties |
开启配置绑定支持 |
| @ConfigurationProperties(prefix="...") |
将配置文件的属性注入到 Java 类 |
🗃️ 数据访问(JPA)
| 注解 |
作用 |
| @Entity |
定义实体类 |
| @Table(name="...") |
指定数据库表名 |
| @Id |
定义主键 |
| @GeneratedValue |
主键生成策略 |
| @Column |
配置列名、约束等 |
| @Repository |
标注数据访问层类 |
🧪 测试相关
| 注解 |
作用 |
| @SpringBootTest |
启动整个 Spring Boot 环境进行测试 |
| @WebMvcTest |
测试 Controller 层(不启动整个容器) |
| @DataJpaTest |
测试 JPA 数据层 |
| @MockBean |
向测试环境注入 mock 的 Bean |
💡 其他实用注解
| 注解 |
作用 |
| @Primary |
标记为首选注入 Bean(多个 Bean 时) |
| @ConditionalOnProperty |
根据配置文件条件启用 Bean |
| @Slf4j |
自动注入日志对象(需 lombok) |
🧭 建议组合使用(常见套路)
复制代码
// 启动类
@SpringBootApplication
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
// Controller 示例
@RestController
@RequestMapping("/api")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users/{id}")
public User getUser(@PathVariable Long id) {
return userService.getById(id);
}
}