当前位置: 首页 > 知识库问答 >
问题:

在@Configuration注释类之前运行Mongock

樊俊悟
2023-03-14

我想使用Mongock迁移工具来初始化存储在数据库中的应用程序配置。我遇到的问题是我的一个配置在使用@Configuration注释的类中使用。由于Mongock更改集在@Configuration之后执行,它无法从数据库中检索尚未存在的值,这会导致应用程序崩溃。有没有办法推迟创建@Configuration类?或者我应该在不使用mongock的情况下初始化这个配置?

共有1个答案

楚雪松
2023-03-14

我不完全理解你的问题。我认为在处理带有@Configuration注释的类之前,需要运行Mongock。正如您所提到的,SpringMongock需要处理配置类,因为它需要Spring应用程序上下文。但是,您可以将Mongock作为独立的运行程序运行,并在任何地方使用它(运行它),因为它不依赖于Spring上下文。

Mongock文档

我希望这有帮助。

 类似资料:
  • 我是新来的春靴AOP。 用@Before注释的AOP方法是否在java验证注释(例如@NotNull)之前运行? 我还需要为每个请求运行一些其他自定义验证,但我需要在java验证注释运行之后运行这些验证。 哪个先跑? 我的控制器: 我的建议是:

  • Spring参考文档说明如下: ComponentScanPackageMarker类故意省略了@Configuration注释。我已经测试了组件扫描和自动连接功能。令我吃惊的是,一切都很顺利: 组件扫描的这种行为是故意的吗?为什么即使没有@Configuration注释也能工作?

  • 我在AspectJ实现方面遇到了一些问题! 我想为带有@myAnnotation注释的方法创建一个日志方法。 然而,这似乎不起作用。它没有记录任何东西! 我在中使用了断点来检查结果,但没有成功! 有人知道为什么这行不通吗?

  • 我试图弄清楚使用运行时级别保留注释(例如:@javax.inject.named)注释的类在编译时和运行时类路径方面的确切影响。这是我到目前为止的理解: null 如果是这种情况,我是否需要创建一个包装对象(用@javax.inject.named注释)来委托内部的、未注释的对象?是否还有一个在编译时禁用注释处理的选项?参见http://docs.oracle.com/javase/7/docs/

  • 使用Spring进行集成测试,我可以填充一个运行脚本的测试数据库,如下所示... 我使用的是JUnit4、Spring Boot、Java15、TestContainers。 我试过的事情... 我曾尝试在我的测试类扩展的类上使用,但它似乎在我的测试之后运行。 TestContainers确实有一个init脚本函数,但它只接受一个文件,这并不理想。 我也尝试过,但是出于某种原因,测试容器不喜欢这样

  • 我在类上设置了一些注释,注释与注释位于同一行,例如: 但是,每次格式化文件时,我的同一行注释都会移动到下一行。这不仅是不可取的,因为它移动了我的评论,更糟糕的是,它将评论置于一个混乱的地方。上述示例变为: 如何阻止Eclipse在格式化后移动这些注释?或者,如何让Eclipse将注释移到上面的一行,而不是下面的一行?非常感谢。