spring boot 常见注解
核心启动类注解
这类注解通常位于项目的入口类上。
@SpringBootApplication: 这是一个组合注解,包含了:@SpringBootConfiguration:标识这是一个 Spring Boot 配置类。@EnableAutoConfiguration:开启自动配置机制,让 Spring 根据依赖自动配置项目。@ComponentScan:开启组件扫描,默认扫描该类所在包及其子包下所有的@Component。
Bean 定义与依赖注入
用于将对象交给 Spring 容器(IOC)管理。
@Component通用注解,标记该类为一个由 Spring 管理的组件(Bean)。
@Service语义化注解,标记在业务逻辑层(Service 层)。
@Repository语义化注解,标记在数据访问层(DAO/Mapper 层),且具有异常转换功能。
@Controller标记在 控制层,用于返回页面(MVC 模式)。
@RestController等于 @Controller + @ResponseBody,用于构建 RESTful API,直接返回 JSON 或 XML。
@Autowired核心注解,用于自动装配依赖。默认按类型(Type)匹配。
@Qualifier当容器中有多个同类型 Bean 时,配合 @Autowired 使用,按名称(Name)指定注入。
@Bean显式定义 Bean。通常写在配置类的方法上,将方法的返回值存入容器。
3. HTTP 请求与 Web 处理 (MVC)
用于定义 API 接口及参数获取。
@RequestMapping:定义通用的 URL 路径映射。@GetMapping/@PostMapping/@PutMapping/@DeleteMapping:- 快捷注解,分别对应 HTTP 的 GET、POST、PUT、DELETE 方法。
@PathVariable:获取 URL 路径中的变量。例如:/user/{id}。@RequestParam:获取 URL 查询参数。例如:/user?name=jack。@RequestBody:将 HTTP 请求体中的 JSON 映射为 Java 对象(通常用于 POST/PUT)。@ResponseBody:表示方法返回的对象直接写入 HTTP 响应体,不经过视图解析。
配置与属性注入
用于读取 application.yml 或 application.properties 中的配置。
@Configuration:声明当前类是一个配置类。@Value:用于注入单个简单属性。
示例:@Value("${server.port}") private int port;@ConfigurationProperties:类型安全的对象映射。将配置文件中具有相同前缀的属性批量绑定到 Java Bean 上。@PropertySource:加载指定的外部配置文件。
5. 其他进阶常用注解
@Transactional: 声明式事务管理。标记在方法或类上,发生异常时自动回滚数据库操作。@ConditionalOnProperty/@ConditionalOnClass: 条件装配注解。根据某个属性是否存在或某个类是否在类路径下来决定是否加载该 Bean。@PostConstruct/@PreDestroy: 分别在 Bean 初始化完成之后和销毁之前执行的方法。@Async: 标记方法为异步执行,该方法会在独立的线程池中运行。
典型场景对比表
需求场景推荐注解组合定义一个 Rest 接口@RestController + @RequestMapping
接收 JSON 数据并保存@PostMapping + @RequestBody
从配置文件读取配置对象@Component + @ConfigurationProperties(prefix = "...")
确保多个数据库操作的一致性@Transactional手动向容器注册第三方 Jar 包的类@Configuration + @Bean