我愿意在上下文启动时间变得太慢的Spring应用程序上进行测试。一种方法是使包扫描更严格,但随后我必须将所有bean实现移动到这个更严格的包结构中(例如,从com.foo.*到com.foo.beans.*)。
当我启动容器时,Spring (实现+接口)扫描了超过2500个bean,所以我假设我将不得不移动大约1000-1300个类。好消息是:我可以很容易地在上下文启动时生成它们的列表……
然而,我也想要一个使用列表文件作为输入的自动重构。在我开始写一些涵盖这个任务的脚本之前,市场上有没有什么东西可以完成这个任务呢?我并不害怕来自外部的类调用,因为基本上所有的bean都是注入的bean,并且应该只使用接口来调用它们(如果在所有地方都正确应用了dip原则,但我将能够手动处理异常!)。
顺便说一句,因为第一个答案似乎表明我没有充分解释这个问题:我在列表中的文件位于不同的包中,并且这些包中可能有我不想移动的其他类。我最好的方法是找到一种方法来调用eclipse重构,将单个文件从a位置移动到b位置,但对于我知道的文件,这会连续1200次。
发布于 2018-02-27 18:53:08
如果使用的是eclipse IDE,则为
1.右键单击项目-> Refactor -> Rename
2.右键单击项目-> Refactor -> move
或
发布于 2020-07-23 02:35:21
我想做同样的事情,但发现没有批量解决方案。我可以这样做的唯一方法是使用IntelliJ
首先,尝试使用Refactor | Move将所有代码移动到新的命名空间中
Refactor | Move在名称空间内移动所有其他名称空间/类,这可以使用multi select来完成。Error creating bean with name...类型错误。也许您可以通过将ComponentScan添加到有问题的类中,并使用旧的和新的名称空间来解决其中的大多数问题@组件扫描({“com.mycompany.old.*”,"com.mycompany.new.*"})
Not a managed type)。通过将以下内容添加到您的主应用程序中,以相同的方式解决它们。@实体扫描({“com.mycompany.old.*”,"com.mycompany.new.*"})
https://stackoverflow.com/questions/49006432
复制相似问题