相关注解

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:提供全参构造方法
posted @   kaishen  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示