Java 通过Quarkus连接到DB

Java 通过Quarkus连接到DB,java,mysql,jdbc,quarkus,Java,Mysql,Jdbc,Quarkus,我最近启动了一个新的Java应用程序,我正在尝试使用Quarkus框架。我有一个DB(MySQL)在docker容器上运行,该容器已经公开了端口3306,我确认我可以通过MySQL工作台访问它 在阅读doc online时,我按照以下步骤设置JDBC连接。我将agral和jdbc-mysql扩展添加到Quarkus,并在我的应用程序中具有以下属性 quarkus.datasource.db-kind=mysql quarkus.datasource.username=<username&g

我最近启动了一个新的Java应用程序,我正在尝试使用Quarkus框架。我有一个DB(MySQL)在docker容器上运行,该容器已经公开了端口3306,我确认我可以通过MySQL工作台访问它

在阅读doc online时,我按照以下步骤设置JDBC连接。我将
agral
jdbc-mysql
扩展添加到Quarkus,并在我的
应用程序中具有以下属性

quarkus.datasource.db-kind=mysql
quarkus.datasource.username=<username>
quarkus.datasource.password=<password>
quarkus.datasource.jdbc.url=jdbc:mysql://localhost:3306/messanger?useSSL=false&autoreconnect=true
quarkus.datasource.jdbc.acquisition-timeout=PT1M
quarkus.datasource.jdbc.min-size=1
quarkus.datasource.jdbc.max-size=16
我只包括了施工后的
部分,因为这是最重要的部分。但是当我让应用程序运行时,我附加了一个调试器并在
PostConstruct
方法中放置了一个断点,它永远不会被命中!!!我不理解这一点,但后来我尝试在Quarkus启动时查看控制台输出,它显示的是

2020-07-31 07:34:37,932 WARN  [io.qua.dep.QuarkusAugmentor] (main) Using Java versions older than 11 to build Quarkus applications is deprecated and will be disallowed in a future release!
2020-07-31 07:34:40,247 INFO  [io.agr.pool] (Quarkus Main Thread) Datasource '<default>': Initial size smaller than min. Connections will be created when necessary
2020-07-31 07:34:40,495 INFO  [io.quarkus] (Quarkus Main Thread) platform 1.0.0-SNAPSHOT on JVM (powered by Quarkus 1.6.1.Final) started in 2.616s. Listening on: http://0.0.0.0:8082
2020-07-31 07:34:40,497 INFO  [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated.
2020-07-31 07:34:40,497 INFO  [io.quarkus] (Quarkus Main Thread) Installed features: [agroal, cache, cdi, flyway, jdbc-mysql, mutiny, narayana-jta, resteasy, smallrye-context-propagation, smallrye-fault-tolerance, smallrye-health]
2020-07-31 07:34:37932警告[io.qua.dep.QuarkusAugmentor](main)使用早于11的Java版本构建Quarkus应用程序已被弃用,并将在未来版本中被禁止!
2020-07-31 07:34:40247信息[io.agr.pool](Quarkus主线程)数据源“”:初始大小小于最小值。必要时将创建连接
2020-07-31 07:34:40495信息[io.quarkus](quarkus主线程)平台1.0.0-JVM上的快照(由quarkus 1.6.1.Final提供动力)于2.616s开始。收听:http://0.0.0.0:8082
2020-07-31 07:34:40497信息[io.quarkus](quarkus主线程)配置文件开发已激活。激活实时编码。
2020-07-31 07:34:40497信息[io.quarkus](quarkus主线程)安装的功能:[Agral、缓存、cdi、flyway、jdbc mysql、mutiny、narayana jta、resteasy、smallrye上下文传播、smallrye容错、smallrye健康]
数据源设置为
default
,尽管我遵循了配置文档(上面的链接),并希望数据源是
mysql


这里有什么明显的遗漏吗?

bean是惰性创建的,您的
@PostConstruct
方法将在bean实例化时被调用

这意味着您的
@PostConstruct
方法将在您第一次使用
DatabaseManager
bean时调用,而不是在应用程序启动时调用

如果希望在应用程序运行时运行方法,则需要使用lyfecycle事件:


还要注意,Arc(Quarkus的CDI实现)会删除未使用的bean。这也可能是未调用初始化方法的原因,更多信息如下:

只是出于好奇:您是否尝试让jdbi在本机模式下工作?
2020-07-31 07:34:37,932 WARN  [io.qua.dep.QuarkusAugmentor] (main) Using Java versions older than 11 to build Quarkus applications is deprecated and will be disallowed in a future release!
2020-07-31 07:34:40,247 INFO  [io.agr.pool] (Quarkus Main Thread) Datasource '<default>': Initial size smaller than min. Connections will be created when necessary
2020-07-31 07:34:40,495 INFO  [io.quarkus] (Quarkus Main Thread) platform 1.0.0-SNAPSHOT on JVM (powered by Quarkus 1.6.1.Final) started in 2.616s. Listening on: http://0.0.0.0:8082
2020-07-31 07:34:40,497 INFO  [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated.
2020-07-31 07:34:40,497 INFO  [io.quarkus] (Quarkus Main Thread) Installed features: [agroal, cache, cdi, flyway, jdbc-mysql, mutiny, narayana-jta, resteasy, smallrye-context-propagation, smallrye-fault-tolerance, smallrye-health]