史上最全SpringBoot相关注解介绍

精心整理了最新的面试资料和简历模板,有需要的可以自行获取

点击前往百度网盘获取
点击前往夸克网盘获取

以下是Spring Boot相关注解的总结,按功能分类整理:


1. 核心注解

  • @SpringBootApplication
    用于主启动类,组合了三个注解:
    • @Configuration:标记为配置类。
    • @EnableAutoConfiguration:启用自动配置。
    • @ComponentScan:扫描当前包及子包的组件。

2. 依赖注入

  • @Autowired
    自动注入Bean(默认按类型)。
  • @Qualifier(“beanName”)
    指定Bean名称解决冲突。
  • @Resource
    JSR-250标准,按名称注入(如@Resource(name="beanName"))。
  • **@Value(“ p r o p e r t y " ) ∗ ∗ 注入配置文件中的值(如 ‘ @ V a l u e ( " {property}")** 注入配置文件中的值(如`@Value(" property")注入配置文件中的值(如‘@Value("{app.name}”)`)。

3. 配置相关

  • @Configuration
    声明配置类,内部用@Bean定义Bean。
  • @Bean
    在配置类中定义Bean。
  • @ComponentScan(“com.example”)
    指定组件扫描路径。
  • @Import(OtherConfig.class)
    导入其他配置类。
  • @PropertySource(“classpath:app.properties”)
    加载指定属性文件。
  • @ConfigurationProperties(prefix=“app”)
    绑定配置文件属性到Bean。

4. Web/MVC相关

  • @Controller
    标记为控制器,返回视图。
  • @RestController
    @Controller + @ResponseBody,直接返回数据(如JSON)。
  • @RequestMapping
    定义请求映射(支持pathmethod等属性)。
  • @GetMapping/@PostMapping/@PutMapping/@DeleteMapping
    简化版请求映射(对应HTTP方法)。
  • @PathVariable
    获取URL路径参数(如/user/{id})。
  • @RequestParam
    获取请求参数(如?name=xxx)。
  • @RequestBody
    接收请求体中的JSON数据并转换为对象。
  • @RequestHeader
    获取请求头信息。
  • @CookieValue
    获取Cookie值。
  • @ExceptionHandler
    处理控制器内的异常。
  • @ControllerAdvice
    全局异常处理类。

5. 数据相关

  • JPA/Hibernate
    • @Entity:标记实体类。
    • @Table(name="users"):指定数据库表名。
    • @Id:主键字段。
    • @GeneratedValue:主键生成策略。
    • @Repository:标记数据访问层(自动处理异常)。
  • Spring Data JPA
    • @Query:自定义查询语句。
  • MyBatis
    • @Mapper:标记Mapper接口。
    • @MapperScan("com.example.mapper"):扫描Mapper接口。

6. 条件注解(自动配置)

  • @ConditionalOnClass(DataSource.class)
    当类路径存在指定类时生效。
  • @ConditionalOnProperty(name=“feature.enabled”)
    当配置属性为true时生效。
  • @ConditionalOnMissingBean
    当容器中无指定Bean时生效。

7. 测试相关

  • @SpringBootTest
    集成测试入口。
  • @DataJpaTest
    仅测试JPA组件。
  • @MockBean
    模拟Bean(用于测试环境)。

8. AOP相关

  • @Aspect
    声明切面类。
  • @Pointcut("execution( com.example.service..(…))")*
    定义切点表达式。
  • @Before/@After/@Around
    定义通知类型(前置/后置/环绕)。

9. 定时任务与异步

  • @EnableScheduling
    启用定时任务(主类)。
  • @Scheduled(fixedRate=5000)
    定义定时任务方法。
  • @EnableAsync
    启用异步执行。
  • @Async
    标记异步方法。

10. 缓存

  • @EnableCaching
    启用缓存(主类)。
  • @Cacheable(“cacheName”)
    缓存方法结果。
  • @CacheEvict(“cacheName”)
    清除缓存。

11. 其他

  • @Profile(“dev”)
    指定Bean在特定环境下生效。
  • @Lazy
    延迟初始化Bean。
  • @Primary
    优先注入的Bean。

示例代码片段

// 主启动类
@SpringBootApplication
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}

// REST控制器
@RestController
@RequestMapping("/api")
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping("/user/{id}")
    public User getUser(@PathVariable Long id) {
        return userService.findById(id);
    }
}

// 配置属性绑定
@ConfigurationProperties(prefix = "app")
public class AppConfig {
    private String name;
    // getter/setter
}

以上注解覆盖了Spring Boot开发中的核心功能,包括配置、依赖注入、Web开发、数据访问、测试等场景。根据具体需求选择合适的注解即可快速构建应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嘵奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值