一键注入 Spring 成员变量,顺序编程

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 介绍了一款针对Spring框架开发的插件,旨在解决开发中频繁滚动查找成员变量注入位置的问题。通过一键操作(如Ctrl+1),该插件可自动在类顶部添加`@Autowired`注解及其成员变量声明,同时保持光标位置不变,有效提升开发效率和代码编写流畅度。适用于IntelliJ IDEA 2023及以上版本。

提高开发效率:一键注入 Spring 成员变量,告别跳转

在日常开发中,是否遇到过这样的情况?一个类动辄上千行代码,当需要在方法中使用某个依赖时,通常我们需要先滚动到类的顶部,然后手动添加类似这样的注解:

java

代码解读

复制代码

@Autowired
private IXxxService xxxService;

紧接着,还要回到之前写代码的位置,继续完成未完成的逻辑。然而,问题随之而来:

  • 在滚动寻找代码位置时,容易打乱思路
  • 回到方法后,可能已经忘了当前的上下文,需要额外花时间重新整理思路。
  • 这是一个很小但是却让人很不爽的点儿,本文就是为了解决这个痛点儿

实际开发中的问题场景

比如,在以下代码片段中,我们发现缺少了一个依赖:

图 1:缺少成员变量时的场景

这时,我们需要注入 memberRewardSendServiceRemote 成员变量。按照传统操作步骤:

  1. 滚动到类的顶部。
  2. 添加如下代码:

java

  1. 代码解读
  2. 复制代码
@Autowired
private MemberRewardSendServiceRemote memberRewardSendServiceRemote;
  1. 滚动回到之前的位置。

但在这个过程中,很可能会出现以下问题:

  • 上下文丢失:滚动过程中可能让你分心,忘记原本的逻辑要点。
  • 效率低下:对于代码量大的类,频繁滚动会让开发节奏变得拖沓。
  • 影响思维流畅性:思路被打断,可能需要额外时间重新集中注意力。

高效开发的解决方案:一键注入 @Autowired 成员变量

为了解决这一痛点,我设计了一款插件,它的核心思想是:写代码时不跳转,所有操作在当前窗口、当前行完成,不打乱思路

插件功能演示

在需要注入依赖的地方,直接按下快捷键 Ctrl+1,插件会自动完成以下操作:

  • 在类的顶部添加 @Autowired 注解及成员变量声明。
  • 保持光标位置不变,无需手动滚动和跳转。

效果如下图所示:

图 2:一键插入成员变量后,代码依然停留在当前行

这种方法让我们在开发过程中实现了思维的无缝流动,极大提升了效率。


插件核心优势

  1. 无需跳转:不再需要滚动到类的顶部,直接在当前窗口完成操作。
  2. 保持思路流畅:操作简单直接,不干扰开发节奏。
  3. 适配各种项目场景:支持注入 Spring Bean类型的成员变量,例如 @Autowired,快速无跳转创建各种VO实体等。
  4. 减少手动操作:自动生成代码,避免手动拼写变量名和注解。

安装与使用

安装步骤

  1. 打开 IntelliJ IDEA 的插件市场。
  2. 搜索关键词 Quick Create仅支持IDEA 2023版本及以上。
  3. 点击 Install 安装插件。
  4. 如果找到不插件,也可以手动下载安装。地址: plugins.jetbrains.com/plugin/2586…

主要功能
可以在当前缺失的类、方法上使用Alt+Enter,快速执行创建。
也可以使用如下快捷键:
  • 快速创建实体:   Ctrl+1 当前确实的类生成,无需跳转,快捷创建Bean。
  • 快速创建接口:   Ctrl+2 快速生成接口,无需跳转。
  • 快速生成成员变量Ctrl+3 根据当前缺失的成员变量,快速生成@Autowird注解的成员变量,无跳转。
  • 快速创建方法:   Ctrl+4 根据当前行代码生成方法及实现,无需跳转,快速创建方法。


总结

编程开发是一个注重高效与思路连贯的过程,而不必要的跳转会让我们浪费大量时间,同时打断我们的开发思维。通过这样的插件,我们可以保持专注,高效完成代码编写任务。如果你也经常为成员变量注入的问题感到头疼,不妨试试这款工具,为自己的开发效率加速!


转载来源:https://juejin.cn/post/7438966792934359091

相关文章
|
2月前
|
XML 安全 Java
使用 Spring 的 @Aspect 和 @Pointcut 注解简化面向方面的编程 (AOP)
面向方面编程(AOP)通过分离横切关注点,如日志、安全和事务,提升代码模块化与可维护性。Spring 提供了对 AOP 的强大支持,核心注解 `@Aspect` 和 `@Pointcut` 使得定义切面与切入点变得简洁直观。`@Aspect` 标记切面类,集中处理通用逻辑;`@Pointcut` 则通过表达式定义通知的应用位置,提高代码可读性与复用性。二者结合,使开发者能清晰划分业务逻辑与辅助功能,简化维护并提升系统灵活性。Spring AOP 借助代理机制实现运行时织入,与 Spring 容器无缝集成,支持依赖注入与声明式配置,是构建清晰、高内聚应用的理想选择。
403 0
|
3月前
|
Java API 开发者
Spring 控制反转与依赖注入:从玄学编程到科学管理
在传统开发中,手动`new`对象导致紧耦合、难以维护和测试。控制反转(IoC)将对象创建交给框架,实现解耦。Spring通过IOC容器自动管理对象生命周期,开发者只需声明依赖,无需关心创建细节。依赖注入(DI)是IoC的具体实现方式,支持构造器、Setter和字段注入。构造器注入推荐使用,保证依赖不可变且易于测试。对于多个同类型Bean,可用`@Qualifier`或`@Primary`解决冲突。此外,Spring还支持依赖查找(DL),开发者主动从容器获取Bean,适用于动态场景,但侵入性强。掌握IoC与DI,有助于构建灵活、可维护的Spring应用。
|
1月前
|
XML Java 数据格式
《深入理解Spring》:AOP面向切面编程深度解析
Spring AOP通过代理模式实现面向切面编程,将日志、事务等横切关注点与业务逻辑分离。支持注解、XML和编程式配置,提供五种通知类型及丰富切点表达式,助力构建高内聚、低耦合的可维护系统。
|
3月前
|
人工智能 监控 安全
Spring AOP切面编程颠覆传统!3大核心注解+5种通知类型,让业务代码纯净如初
本文介绍了AOP(面向切面编程)的基本概念、优势及其在Spring Boot中的使用。AOP作为OOP的补充,通过将横切关注点(如日志、安全、事务等)与业务逻辑分离,实现代码解耦,提升模块化程度、可维护性和灵活性。文章详细讲解了Spring AOP的核心概念,包括切面、切点、通知等,并提供了在Spring Boot中实现AOP的具体步骤和代码示例。此外,还列举了AOP在日志记录、性能监控、事务管理和安全控制等场景中的实际应用。通过本文,开发者可以快速掌握AOP编程思想及其实践技巧。
|
Java Spring
在使用Spring的`@Value`注解注入属性值时,有一些特殊字符需要注意
【10月更文挑战第9天】在使用Spring的`@Value`注解注入属性值时,需注意一些特殊字符的正确处理方法,包括空格、引号、反斜杠、新行、制表符、逗号、大括号、$、百分号及其他特殊字符。通过适当包裹或转义,确保这些字符能被正确解析和注入。
745 3
|
Java 测试技术 程序员
为什么Spring不推荐@Autowired用于字段注入?
作为Java程序员,Spring框架在日常开发中使用频繁,其依赖注入机制带来了极大的便利。然而,尽管@Autowired注解简化了依赖注入,Spring官方却不推荐在字段上使用它。本文将探讨字段注入的现状及其存在的问题,如难以进行单元测试、违反单一职责原则及易引发NPE等,并介绍为何Spring推荐构造器注入,包括增强代码可读性和维护性、方便单元测试以及避免NPE等问题。通过示例代码展示如何将字段注入重构为构造器注入,提高代码质量。
393 1
|
10月前
|
人工智能 Java API
阿里云工程师跟通义灵码结伴编程, 用Spring AI Alibaba来开发 AI 答疑助手
本次分享的主题是阿里云工程师跟通义灵码结伴编程, 用Spring AI Alibaba来开发 AI 答疑助手,由阿里云两位工程师分享。
507 2
阿里云工程师跟通义灵码结伴编程, 用Spring AI Alibaba来开发 AI 答疑助手
|
10月前
|
XML 监控 前端开发
Spring Boot中的WebFlux编程模型
Spring WebFlux 是 Spring Framework 5 引入的响应式编程模型,基于 Reactor 框架,支持非阻塞异步编程,适用于高并发和 I/O 密集型应用。本文介绍 WebFlux 的原理、优势及在 Spring Boot 中的应用,包括添加依赖、编写响应式控制器和服务层实现。WebFlux 提供高性能、快速响应和资源节省等优点,适合现代 Web 应用开发。
1179 15
|
Java 数据库连接 Spring
【2021Spring编程实战笔记】Spring开发分享~(下)
【2021Spring编程实战笔记】Spring开发分享~(下)
142 1