使用 ByteBuddy 更改 Spring 应用程序中带注释的 class 的包

Use ByteBuddy to change package of annotated class in Spring app

我想更改已使用特定注释进行注释的 classes 的包。我想这样做,这样它们就不会被 Jersey 捡到。我想知道这是否可以在 Spring(引导)应用程序中实现。如果是这样,添加它的最佳位置在哪里?我最初想在 ImportBeanDefinitionRegistrar 中执行此操作,以便我可以在配置 class 上添加 EnableXXX 注释,但我认为这在 Spring 生命周期中可能为时已晚重新定义 classes.

是的,Byte Buddy 允许您更改任何检测类型的名称。您可以创建一个 AgentBuilder 来匹配所有带有注释的类型,并使用 DSL 更改它们的包名称。

但是请注意,任何对此 class 的引用都不会自动更新,并且包更改的其他影响将是不可预测的。一般来说,我不建议你走那条路。