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.ymlapplication.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




举报

© 著作权归作者所有


0