1
在SpringBoot(1.3.3.RELEASE)应用程序中使用jOOQ时出现问题,因为它似乎在执行第一个查询之前jOOQ未初始化(我们没有看到ascii-art徽标) 。这不应该是一个问题,但在我们的使用情况下是这样。所以我们正在寻找一种在应用程序启动期间初始化jOOQ的方法。使用SpringBoot初始化jOOQ
我们所做的只是创建下面的bean,一旦创建了应用程序上下文并且执行一个查询来初始化jOOQ,Spring就会自动执行它。
@Bean
CommandLineRunner runner(DSLContext create) {
new CommandLineRunner() {
@Override
void run(String... args) throws Exception {
create.fetchCount(create.select(BLACKBOX))
}
}
}
有没有更好的方法来做到这一点?
有什么问题由jOOQ后期初始化引起的?顺便说一句:你的想法看起来不错,你可以将其设置为一个答案... –
_problem_是因为我们有一个AOP拦截某些Spring服务的执行并将该执行记录为审计跟踪。记录它们的模块会使用RabbitMQ接收请求,并且具有1秒的超时时间。问题是jOOQ的初始化需要多一点,而请求失败并被兔拒绝。现在,解决方法它工作正常:) –
哦,我明白了。是的,如果您有大型模式,则所有生成的类的类加载可能需要一段时间。运行实际查询是解决此问题的最佳方法。你甚至可以运行一个更便宜的查询:'create.fetchExists(BLACKBOX)' –