🌱 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);
}
}