LoginSignup
0
0

More than 5 years have passed since last update.

GAE/Java8試行(その2:「Javaアプリ解説」)

Last updated at Posted at 2018-10-02

お題

前回は、Java8のWebアプリをGAEデプロイした。
WebアプリはApp Engine用のMavenアーキタイプを使って自動生成し、結果、下記の構成となった。
https://qiita.com/sky0621/items/8437da4e96bffef69250#自動生成プロジェクトの中身
今回は、上記を元にちょっと解説。

解説

Servlet

JavaでWebアプリを作る際はServletを使うのが王道。
自動生成されたServletは「src/main/java/com/example/sky0621/HelloAppEngine」

// 省略

@WebServlet(name = "HelloAppEngine", value = "/hello")
public class HelloAppEngine extends HttpServlet {
  @Override
  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws IOException {
      // 省略
  }
}

↑のソースにより、「http://【ドメイン:ポート】/hello」にアクセスすると「doGet」の中身を実行してくれる。
自分の記憶の中ではServletのルーティング定義は「web.xml」に記載していたのだけど、今のServlet仕様ではアノテーションでルーティング定義するのだね。
(SpringやSeasarといったフレームワークではもともとアノテーション指定だったかな・・・)

これだけでロジックへの橋渡しは出来ているので、今後はこの中で、Datastoreにアクセスしたり、Memcache使ったり、
タスクキュー呼び出ししたりといったロジックを組んでいこうと思う。

appengine-web.xml

App Engineへのデプロイ時に使われる設定群。
オートスケールの指定やリソースの定義なども設定可能。
【参考】
 https://cloud.google.com/appengine/docs/standard/java/config/appref?hl=ja

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
    <runtime>java8</runtime>
    <threadsafe>true</threadsafe>
    <system-properties>
        <property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
    </system-properties>
</appengine-web-app>

まとめ

上記2ファイルを用途に合わせて拡張していくことで少しずつアプリの体裁を整えていくことができるはず。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0