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;
〜
}