m-namikiの日記

おもしろき こともなき世を おもしろく

Wicket on GAE/j with Slim3 #02

前回、WicketをGAE/j上で動作させることができたので、今回はSlim3 Datastoreを利用してみます。

Slim3のインストール

基本的にこちらのページに書かれていることをやりました。

インストールさせ済んでしまえば後はSlim3 Datastoreがよしなにしてくれるので、何かやりたかったら公式を読めば済んでしまいます。これだけだとアレなので、サービスをS2JDBCよろしく抽象クラス作ってジェネリックでモデルの型を指定できるようにしたりしてみましたが、上記のサイトでは「サービスの主な役割はユースケースを実行すること」とあったので、サービスクラスが1つのエンティティに依存するのはどうなんだろう?と迷ってます。何か良い指針があれば知りたいところです。

番外編:ロガークラスの変更

ロガークラスをlog4jではなく、slf4j+logbackに変更してみました。
slf4jから

  • slf4j-api-1.6.1.jar

logbackから

を持ってきて、WEB-INF/libに置くだけです。
このとき、最初に置いた

  • slf4j-api-1.5.8.jar
  • slf4j-log4j12-1.5.8.jar
  • log4j-1.2.14.jar

は削除しておきます。
で、最後にsrc直下にlogback.xmlを置けばOK。まだ何も編集してませんが、logback.xmlの内容は以下の通りです。

<configuration>
  <appender name="STDOUT"
    class="ch.qos.logback.core.ConsoleAppender">
   <Target>System.out</Target>
    <layout class="ch.qos.logback.classic.PatternLayout">
      <Pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</Pattern>
    </layout>
  </appender>
  <root>
    <level value="INFO" />
    <appender-ref ref="STDOUT" />
  </root>
</configuration>

wicket本体がcommons-logging+log4jからslf4jを使うようになっていたので真似してみました。恐らく仕事でlog4j以外のロガーを使うことはないと思いますが勉強のために。