相关注解
Spring 注解
依赖注入相关
-
@Autowired:自动装配
- 默认按类型匹配唯一,若有多个则按名称匹配唯一,若都匹配不到则报错
- @Autowired(required = false) 表示:该属性值允许为 null
- @Qualifier:若 @Autowired 不能判定其唯一性,则可通过 @Qualifier("xxx") 指定具体的类
- @Primary: 若不使用 @Qualifier 指定,也可以在实现类中使用 @Primary 注解,表示发现不唯一时优先使用该类
-
@Resource:自动装配
- 默认按名称匹配唯一,若匹配不到则按类型匹配唯一,若都匹配不到则报错
- 可通过 name 属性指定具体装配的类 @Resource(name = "xxx") or @Resource("xxx")
字段相关
- @Nullable:字段允许为 null
- @Value("xxx"):给字段赋值
- 可用 el 表达式获取配置的值,如:@Value("${server.port}")
资源相关
- @Import:导入配置
- @ImportResource:加载 xml 配置文件,兼容旧 Spring 项目
- @PropertySource(value = {config/xxx.propertites}):读取指定属性配置
配置相关
- @Configuration:指定类为配置类,相当于一个 applicationContext.xml
- @Bean:相当于 applicationContext.xml 中的 <bean> 标签
- @Scope:指定类的作用域
AOP 相关
- @Before:前置通知
- @After:后置通知
- @AfterReturning:带返回值的后置通知
- @Around:环绕通知
- @Pointcut:切入点
- @Aspect:切面
- @EnableAspectJAutoProxy:开启自动配置,相当于 <aop:aspectj-autoproxy/>
事务相关
- @Transactional(rollbackFor = Exception.class):实现方法上添加事务控制
- @EnableTransactionManagement:启动类上开启事务管理
任务调度相关
- @EnableScheduling:开启任务调度
- @Scheduled(cron = "0/2 * * * * ?"):预定 2 秒执行一次;支持 cron、fixedDelay、fixedRate
SpringMVC 注解
组件相关
- @Component:通用组件;Spring 组件不好归类时使用
- @ComponentScan:扫描 Spring 组件
- @Repository:持久层组件
- @Service:服务层组件
- @Controller:控制层组件
- RestController:表示控制器,并将函数返回值直接填入 HTTP 响应体;
- 等价于 @Controller + @ResponseBody
请求/响应相关
- @RequestMapping(url, method):指定请求的 url 和方法
- @RequestParam:请求参数设定
- @RequestBody:注解实现接收 http 请求的 json 数据,将 json 转换成 Java 对象
- @GetMapping(url):get 请求
- @PostMapping(url):post 请求
- @ResponseBody:注解实现将 Controller 方法返回的对象转换成 json 对象
- @ModeAttribute:在其他方法执行前,优先执行
- @PathVariable:String 的一种传参方式,可使用 {} 取出传递的值
SpringBoot 注解
- @SpringBootApplication:SpringBoot 核心注解
- @ComponentScan:组件扫描
- @SpringBootConfiguration:相当于 Spring 的 xml 配置文件
- @EnableAutoConfiguration:启动自动配置
SpringCloud 注解
注册中心相关
- @EnableEurekaServer:开启 Eureka 服务端
- @EnableEurekaClient:开启 Eureka 客户端
- @EnableDiscoveryClient:开启服务注册与发现,ZK、Consul、Nacos 的注册与发现都使用该注解
负载均衡相关
- @LoadBalanced:启用负载均衡
远程调用相关
- @FeignClient(value = "微服务名", contextId = "1"):Feign 接口注解
- @EnableFeignClients(basePackages = {"com.xx"}):开启 Feign 客户端扫描
服务熔断与降级相关
- @EnableCircuitBreaker:开启断路器
- @HystrixCommand(fallbackMethod = "queryHystrixDeptById"):定义服务熔断方法
监控面板
- @EnableHystrixDashboard:开启控制面板
服务网关
- @EnableZuulProxy:开启网关代理
服务配置相关
- @EnableConfigServer:开启配置服务端
Lombok 注解
- @Slf4j:提供日志打印功能
- @Data:提供 Getter、Setter、toString、equals、hashCode 等方法
- @Accessors:提供链式写法支持
- @NoArgsConstructor:提供无参构造方法
- @AllArgsConstructor:提供全参构造方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)