S-JIS[2024-03-10] 変更履歴
JAX-RSのApplicationクラスのメモ。
Applicationを継承したクラスで、REST APIの処理を行うクラスを指定する。
import java.util.Set; import jakarta.ws.rs.ApplicationPath; import jakarta.ws.rs.core.Application;
@ApplicationPath("/api") public class ExampleApplication extends Application { @Override public Set<Class<?>> getClasses() { return Set.of(Resource1.class); } }
Applicationを継承するクラスの名前は何でもいい。APサーバーが自動的に探してくれるようだ。
getClassesメソッドで、REST APIの処理を行うクラスを返す。
Applicationを継承したクラスでインジェクションが出来るかどうかは、APサーバーによって違うようだ。
(GlassFish7は出来るがWildFly31は出来ない)
出来ないのが仕様なのか、仕様で決まっていない不定動作なのか、バグなのかは不明。
import jakarta.inject.Inject;
@ApplicationPath("/api") public class ExampleApplication extends Application { @Inject // NG ? private MyObject myObject; 〜 }