我正在实现 Quarkus 服务器。服务器启动时,应启动一个(永无止境的)后台进程。
@ApplicationScoped我知道我可以使用实现以下功能的 bean
来观察启动事件void onStart(@Observes StartupEvent ev):
但是启动后台进程的最佳方式是什么?有限制吗?在 J2EE 中,不应创建线程,而应使用ManagedExecutorService带有注释方法的 EJB @Asynchronous。
Quarkus 里有类似的东西吗?我只找到了调度程序注释(这很好,但我只想在开始时启动一个进程一次)。
那么我可以只创建线程吗?或者只是把我的无限代码放进去void onStart(@Observes StartupEvent ev)?
谢谢
我想从 Java 源文件(输入:*.java 文件;输出:某物)创建某些文件。Xtext 似乎是一个很好的工具。当然,您必须先定义语法(在本例中:Java)。但是 Xtext 应该能够解析 Java 文件并从中生成一些文件(如果我编写模板)。
不知何故,我无法想象,这是以前没有做过的。我查了一下,但没有找到任何东西。所以问题是:
是否有用于 Java(定义 Java 语法)的 Xtext-grammar 文件?
我正在做 Java APT 并想解析一个方法 (an ExecutableElement)。现在我需要该方法的返回类型。我不知道如何获取类型,如果它是一个数组。
例子: String[] foobar()
我想得到类型String。
从 ExecutableElement 实例中,我可以获得作为 TypeMirror 实例的返回类型(使用getReturnType())。但是如果它是一个数组,我就无法得到“真实类型”(在我的例子中:)String。
我试过:
System.out.println("TEST: " + pReturnType.toString());
System.out.println("TEST2: " + pReturnType.getClass().getName());
System.out.println("TEST3: " + pReturnType.getClass().getEnclosingClass());
System.out.println("TEST4: " + pReturnType.getClass().getComponentType());
System.out.println("TEST5: " + pReturnType.getKind());
Run Code Online (Sandbox Code Playgroud)
这给了我:
TEST: java.lang.String[]
TEST2: com.sun.tools.javac.code.Type$ArrayType
TEST3: class com.sun.tools.javac.code.Type
TEST4: null
TEST5: ARRAY
Run Code Online (Sandbox Code Playgroud)
我想要一个java.lang.Class, 代表java.lang.String(在我的例子中)的实例。