Spring Boot中最常用的 100 个注解
liuian 2025-07-27 21:58 36 浏览
以下是 Spring Boot 中最常用的 100 个注解(按功能分类整理),适用于配置、控制层、数据访问、安全、测试等常见场景:
一、核心注解(Core Annotations)
- @SpringBootApplication:标记主类,启用自动配置和组件扫描。
- @Component:通用组件,自动扫描注入 Spring 容器。
- @Service:业务逻辑层组件。
- @Repository:数据访问层组件,自动处理异常。
- @Configuration:声明配置类,替代 XML 配置。
- @Bean:在配置类中定义一个 Bean。
- @ComponentScan:指定 Spring 要扫描的包路径。
- @PropertySource:加载外部属性文件。
- @Value:注入属性值。
- @Autowired:自动装配 Bean。
- @Qualifier:配合 @Autowired 解决多个同类型 Bean 冲突。
- @Primary:标记首选 Bean。
- @Scope:定义 Bean 的作用域(如 prototype、singleton)。
- @Lazy:延迟初始化 Bean。
- @Profile:根据环境激活配置。
二、Web 相关(Web & REST)
- @RestController:组合 @Controller + @ResponseBody。
- @Controller:定义控制器类,返回视图名称。
- @RequestMapping:映射请求 URL 到类或方法。
- @GetMapping:映射 GET 请求。
- @PostMapping:映射 POST 请求。
- @PutMapping:映射 PUT 请求。
- @DeleteMapping:映射 DELETE 请求。
- @PatchMapping:映射 PATCH 请求。
- @PathVariable:获取 URL 中的变量。
- @RequestParam:绑定请求参数。
- @RequestBody:将请求体转为对象。
- @ResponseBody:将返回值直接写入 HTTP 响应体。
- @RequestHeader:获取请求头信息。
- @CookieValue:获取 Cookie 值。
- @SessionAttribute:从会话中获取属性。
- @CrossOrigin:允许跨域请求。
- @ResponseStatus:设置响应状态码。
- @ExceptionHandler:处理控制器内异常。
- @ControllerAdvice:全局异常处理器。
- @RestControllerAdvice:结合 @ControllerAdvice 和 @ResponseBody。
- @Valid:触发对 Bean 的校验。
- @InitBinder:用于自定义数据绑定与验证规则。
三、数据访问(Data Access / JPA / MyBatis)
- @Entity:JPA 实体类。
- @Table:指定实体对应的数据库表名。
- @Id:标识主键字段。
- @GeneratedValue:主键自动生成策略。
- @Column:映射字段到数据库列。
- @Transient:忽略该字段持久化。
- @OneToOne:一对一关联。
- @OneToMany:一对多关联。
- @ManyToOne:多对一关联。
- @ManyToMany:多对多关联。
- @JoinColumn:指定外键字段。
- @JoinTable:多对多关系中的连接表。
- @Query:自定义 JPQL 或原生 SQL 查询。
- @Modifying:执行更新操作。
- @Transactional:声明事务边界。
- @EnableJpaRepositories:启用 JPA Repository 扫描。
- @RepositoryRestResource:暴露 Repository 为 REST 接口。
- @Select:MyBatis 查询注解。
- @Insert:MyBatis 插入注解。
- @Update:MyBatis 更新注解。
- @Delete:MyBatis 删除注解。
- @Options:MyBatis 操作选项,如生成主键。
- @Results:结果映射。
- @ResultMap:引用已有的结果映射。
- @Param:命名参数传递给 SQL。
- @Mapper:标记接口为 MyBatis Mapper。
- @MapperScan:启用 MyBatis Mapper 扫描。
- @EnableTransactionManagement:启用事务管理支持。
四、安全相关(Security)
- @EnableWebSecurity:启用 Spring Security。
- @EnableGlobalMethodSecurity:启用方法级安全控制。
- @PreAuthorize:前置权限判断。
- @PostAuthorize:后置权限判断。
- @Secured:基于角色的访问控制。
- @RolesAllowed:Java EE 标准权限注解。
- @AuthenticationPrincipal:获取认证用户信息。
- @EnableOAuth2Sso:启用 OAuth2 单点登录。
- @EnableResourceServer:启用资源服务器。
- @EnableAuthorizationServer:启用授权服务器。
五、测试相关(Testing)
- @RunWith(SpringRunner.class):JUnit 测试集成 Spring 上下文。
- @SpringBootTest:启动完整 Spring Boot 应用上下文。
- @DataJpaTest:仅加载 JPA 相关配置。
- @WebMvcTest:仅测试 Web 层(控制器)。
- @MockBean:模拟 Bean。
- @InjectMocks:注入被测试的类。
- @Before:JUnit 测试前准备。
- @After:JUnit 测试后清理。
- @Test:JUnit 测试方法。
- @DataMongoTest:仅加载 MongoDB 相关配置。
- @RestClientTest:测试 REST 客户端。
- @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT):启动随机端口 Web 环境。
- @DirtiesContext:测试后重置应用上下文。
- @Sql:执行 SQL 脚本。
- @DataRedisTest:仅加载 Redis 配置。
六、其他常用注解
- @ConditionalOnClass:当类路径存在某个类时生效。
- @ConditionalOnMissingBean:当容器中没有该 Bean 时生效。
- @ConditionalOnProperty:根据配置属性是否设置决定是否加载。
- @ConditionalOnExpression:根据 SpEL 表达式决定是否加载。
- @RefreshScope:配合 Spring Cloud Config 支持动态刷新配置。
- @EnableAsync:启用异步方法调用。
- @Async:标记异步方法。
- @Scheduled:定时任务注解。
- @EnableSwagger2:启用 Swagger 文档。
- @OpenAPIDefinition:OpenAPI 文档定义(Swagger 3+)。
提示:
- 实际开发中并不需要掌握全部,根据项目需求选择使用。
- 大部分注解来源于 Spring Framework、Spring Boot、Spring Data、Spring Security 等模块。
- 如果你需要具体某个注解的详细说明或示例,可以告诉我。
相关推荐
- 手机处理器排名最新图(手机处理器排行榜全部)
-
众所周知,手机端SOC很少在插电模式下运行,因此能耗比在移动端CPU性能中特别重要。本文整理了主流的SOC能耗比情况,给大家购买手机做一个参考。SOC能耗比较高的,包括麒麟810,骁龙625,麒麟65...
- pdf版本怎么弄(怎么把word转为pdf)
-
回答如下:要将PDF文件恢复到以前的版本,您需要执行以下步骤:1.找到保存PDF文件的文件夹或位置。2.在该位置中找到以前的版本,这可能是备份文件、自动保存文件或之前保存的版本。3.如果您没有备...
- 万能bt搜索引擎网站(bt万能搜索破解版)
-
最好用最全面的的磁力搜索引擎是磁力熊,因为它是一个内容丰富、还是功能最为强大的一个磁力搜索网站,通过它不仅仅可以搜索磁力熊磁力熊,是一个内容丰富、功能最为强大的一个磁力搜索网站,通过它不仅仅可以搜索...
- 苹果id注册官网登录(appleid官网注册账号)
-
浏览器访问申请AppleID官网注册 1、在浏览器地址栏上面输入:“https://appleid.apple.com/cn”,进入申请AppleID官网界面,点击下面的“创建AppleID...
- 苹果笔记本怎么下载windows系统
-
方法一:使用BootCamp方法二:使用虚拟机方法三:使用Wine简介BootCamp是苹果电脑自带的一个软件,可以帮助用户在Mac上安装Windows操作系统。虚拟机则是运行在Mac上的一个软件...
- 华硕电脑激活码(华硕电脑windows激活码在哪里)
-
你所说的应该是系统激活密钥吧华硕OEM密钥就行!HomePremium(家庭高级版):27GBM-Y4QQC-JKHXW-D9W83-FJQKDUltimate(旗舰版):6K2KY-BF...
- wifi如何防止别人蹭网(wifi如何防止别人蹭网呢)
-
防止WIFI被蹭网的方法1、家庭的wifi信号,一般是通过设置无线路由器发射出来。在设置无线路由器时,一定要注意设置无线密码的安全强度。最好含有大小写字母加数字的组合,不要设置连续数字,比如“1234...
- 无线ap安装示意图(无线ap如何安装方法)
-
商用无线ap安装完成后连接ap应用添加wifi网络信号将无线网卡插入电脑USBWindows7/8系统下,网卡安装成功后直接进行软件安装...2.继续安装类型,推荐保持默认选择,点击“下一步”继续安装...
- miui官网开发版下载(小米miui开发版下载)
-
你好,miui12开发版下载方式如下1打开浏览器,登录小米Rom官网,2进去之后搜索自己的手机型号,3点击进入就可以看到所有发布过的miui版本4点击想要的12版本下载即可。现在的MIUI开发版需要申...
-
- 惠普台式机进入bios设置u盘启动
-
设置u盘启动的步骤如下:1、首先,将u盘插入hp台式机的USB接口处。2、开机快速断续的按F10键进入BIOS设置界面。3、将光标移到【BootDevicePriority】选项按回车键进入。4、选择【HDDGroupBootPr...
-
2026-01-15 00:37 liuian
- 云手机免费版无限挂机怎么用
-
1、登陆后,如果需要挂网页游戏,点击服务器的左下角,找到IE浏览器,然后打开网页游戏,登陆你的账号就行了,不要关闭IE浏览器,你的网页游戏就会24小时挂在云服务器上面。2、如果想要挂机,打开IE浏览器...
- 上海最近3天疫情情况(上海近几天的新冠疫情情况)
-
根据国家卫健委的每天疫情通报及上海市的疫情通报,上海没有一个区属中高风险地区,所以从上海任何一个区返乡都不需要隔离14天。上海这么大的城市,每天人来人往的Ill流不息,能继续做到区级地区没有中高级风险...
- windows media player怎么下载
-
方法如下:在安装WMP11时只是把C:\DocumentsandSettings\AllUsers\ApplicationData\WindowsGenuineAdvantage\data...
- 一周热门
-
-
飞牛OS入门安装遇到问题,如何解决?
-
如何在 iPhone 和 Android 上恢复已删除的抖音消息
-
Boost高性能并发无锁队列指南:boost::lockfree::queue
-
大模型手册: 保姆级用CherryStudio知识库
-
用什么工具在Win中查看8G大的log文件?
-
如何在 Windows 10 或 11 上通过命令行安装 Node.js 和 NPM
-
威联通NAS安装阿里云盘WebDAV服务并添加到Infuse
-
Trae IDE 如何与 GitHub 无缝对接?
-
idea插件之maven search(工欲善其事,必先利其器)
-
如何修改图片拍摄日期?快速修改图片拍摄日期的6种方法
-
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
