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

Panache实体可以用于非Quarkus管理的服务吗?

邵骏喆
2023-03-14

使用夸克1.9.1

我有一个命令行应用程序如下...

@CommandLine.Command
public class MyCommandApp {}

应用程序使用第三方库启动服务器连接。在某个时刻,当服务器接受一个连接时,它会动态地附加一个侦听器。例如:

if(server.accept())
    server.setListener(new MyServerListener())

在MyServerListener()中,我可以使用这样的panache实体吗?

// This is attached dynamically. There's no Quarkus CDI scope/context to this.
class MyServerLister implements ServerListener {
    @Override
    public void receiveEvent(Event event) {
        MyPanacheEntity.find(...)
        ...
    }

}

共有1个答案

岳曦
2023-03-14

Panache实体应该可以在非CDI bean上使用。如果不是这样,请与一个小的复制者开一个问题。

但Panache只能用于Quarkus应用程序,因为它依赖于Quarkus构建时增强功能。

无论如何,如果您希望在MyServerLister中使用Quarkus CDI的全部功能,那么您总是可以将其设置为CDI bean,并将其注入到MyCommandApp中,然后将其传递到MyServerLister构造函数中。

 类似资料: