Java 如何重构使用spring自动连线的代码库

Java 如何重构使用spring自动连线的代码库,java,spring,refactoring,autowired,Java,Spring,Refactoring,Autowired,我继承了两个非常重要的代码库,它们使用spring来配置应用程序。现在我需要重新配置应用程序。但很多配置都是通过自动布线提供的,所以几乎不可能找出实际配置是什么 项目规模适中,每个项目大约20个ish maven模块,包括集成测试模块等。大多数模块为各种目的定义了一些应用程序上下文,其中包含一个或两个本地spring配置文件,以及它所依赖的核心模块中的一个或两个。结果是大量的配置,我无法在不破坏某些上游或下游模块中的依赖关系的情况下更改类或变量名(或setter方法),即使在项目中的任何地方都看

我继承了两个非常重要的代码库,它们使用spring来配置应用程序。现在我需要重新配置应用程序。但很多配置都是通过自动布线提供的,所以几乎不可能找出实际配置是什么

项目规模适中,每个项目大约20个ish maven模块,包括集成测试模块等。大多数模块为各种目的定义了一些应用程序上下文,其中包含一个或两个本地spring配置文件,以及它所依赖的核心模块中的一个或两个。结果是大量的配置,我无法在不破坏某些上游或下游模块中的依赖关系的情况下更改类或变量名(或setter方法),即使在项目中的任何地方都看不到这种依赖关系

如何在spring中有效地处理自动连线依赖项

任何人,也许是真正喜欢自动布线的人,都能对您如何有效地使用它们提供一些见解吗


(我还继承了一个结合了xml文件、自动连接和注释驱动配置的小项目,使依赖关系变得完全难以处理,但我将保存这些注释以供稍后单独提问)

您使用的是什么IDE?SpringSTS(一个基于Eclipse的IDE)有很多用于处理Spring注释和自动连接的工具,还有一套很好的重构工具

您可以使用Intellij(我有版本9 Ultimate)执行自动连线bean的重新分解。此外,Intellij还可以选择显式设置自动关联依赖项。下面提供了链接


您是否可以打开spring日志记录,并了解它在处理应用程序上下文xml文件时实例化了哪些bean?我猜一个项目中不同应用程序上下文的总量大约为50个。有些甚至只在fitnesse Fixture中使用(在衍生流程衍生的流程中…),有些仅在web应用程序中使用。这当然是可能的,但一个依赖项需要一整天的时间。构建所有模块并运行所有需求测试至少需要一个小时。由于所有依赖项都是用xml声明的(我并不喜欢xml,它只比备选方案更糟糕…),跟踪单个方法或类的所有用法最多需要2分钟。因此,您可以编写代码来解析spring日志文件,并从中创建application-context.xml。这听起来好像很有用。不。没有“一个应用程序上下文”。该项目构建了几个应用程序,其中一个与其他5个应用程序集成。我有一个接一个的集成测试配置(没有一个地方可以同时作为测试系统使用),为不可用的远程系统插入模拟。我已经配置了一个接一个地运行需求测试,通过web浏览器进行可视化检查,以及在CI服务器上运行相同的“headless”,内部有或没有异步队列。按此计算,大约有15个应用程序/配置都必须工作。有人真的喜欢自动布线吗?我以为自动连线只是为了演示的目的,所以HelloWorld变短了我使用IntelliJ ultimate 10。据我所知,它具有最好的spring支持,但它仍然没有检测到重命名setter方法是否会破坏按名称自动连接的关系。我使用它的次数越多,就越讨厌这种巧合机制的配置