Supplierとは
関数型インターフェース。
引数なしで、指定された方の値を返す。
Supplier <T>
結果として、Tを返す。(引数なし)
Optionalとは メソッド
Optionalとは
値をラップすることで、直接いじることを禁止し、その値がnullかもしれないことを表現するクラス。
= nullチェクを強制させるためのクラス
getメソッド
値があることが確実な場合に使う。
値がnullだったら、NosuchElementExceptionを投げる。
そもそもOptionalは、nullがあるかもしれないことが前提になっているため、Optionalを使う時はあまり使わないメソッド。
orElseメソッド
値がnullの時に、デフォルト値を指定できるメソッド。
orElseGetメソッド
Supplierを引数に取る。
重たい処理を行うときに有効(遅延評価)。
orElseThrowメソッド
値がnullのときに、例外を指定してそれを投げれるメソッド。
ifPresentメソッド
保持している値がnullでない場合の時だけ実行するメソッド。
Behaviorとは
すべてのDBアクセスの処理を行うクラス。
一つのテーブルにつき、一つのBehaviorクラスがあり、DIコンポーネントとして利用される。
シンボリックリンク・ハードリンクとは
Linuxには、ファイルに対してリンクの張り方が2種類ある。
ファイルに別名を設定し、その別名で元のファイルにアクセスできるようにすることを、Linuxでは「リンクを張る」という。
シンボリックリンク
ファイル本体の位置情報を保管しているファイル。
ファイル本体とは、全く別のファイルなので、シンボリックリンクを残したままファイル本体を削除できる。
ln -s ファイル名 別名(リンク名)
ハードリンク
ファイルに複数の名前を割りあてる機能。
複数のハードリンクがある場合、ファイルに対しては、どのリンクも同じ扱いになる。
すべてのハードリンクが削除されるまでファイル本体は削除できない。
ln ファイル名 別名(rinnkumei)
Dropwizard 使ってみた
Cofigurationクラス
ymlファイルから設定値を受け取るクラス。
ymlファイルの内容がこのクラスに設定される。
@NotEmpty
対象がnullでなく、空でないことを保証するためのアノテーション。
@JsonProperty
わからーん
Applicationクラス
mainクラスとして実行されるクラス。
initialize
クラスが初期化した時やインスタンスが生成された時に、その直後に変数を初期化する。
Representationクラス(Hello.java)
Jsonで返す値を保持するPOJO(普通のオブジェクト)を作成する。
Resourceクラス
Controllerにあたるもの。
JerseyのResourceクラスを作成する。
Applicationクラスに登録が必要。
Jersey
Javaで作るWebアプリをREST対応するために必要な作業を簡素化できる。
REST
HTTPを使ったシンプルなWebサービス。
すべてのリソースは一意なアドレスで識別される。
@Timed
実行時間がログに残る。
@Produces
リソースのメソッドが生成し、クライアントに返却することができるMIMEタイプを指定する。
MIMEタイプ
WebサーバのWebブラウザ間でやりとりされるデータの中でファイル形式を表す識別子のこと。
ex)
ファイル形式 テキスト
一般的な拡張子 .txt
MIMEタイプ text/plain
@GET
受信HTTPリクエストをJavaメソッドにマッピングして、リソースを取得する。
@QueryParam
受け取った値を、自動でURLデコード処理する。
@Encoded
URLデコード処理をして欲しくない時に使う。
ex)
public Hello say(@QueryParam("name") @Encoded String name) { }
URLエンコード
ex) テキスト
URLデコード
ex) %83e%83X%83g
FreeMarkerとは
FreeMarkerとは
Javaのテンプレートエンジン。 FreeMarker Template Languageで書かれたテンプレートファイル(.ftl)と、Javaオブジェクトを合体させることで、動的にHTMLのソースコードを生成することができる。
<# hoge>タグ = 制御
テンプレート + Javaのコードからデータの挿入でHTMLファイルを作成する。
ex) <#list>
配列などの繰り返し処理を行う。
参考:Freemarkerのリファレンスの使い方でよく使用するものを日本語でまとめ | iwb.jp
テンプレートエンジンとは
データとテンプレート(雛形)を合体させて、文字列を作る仕組みのこと。
役割
データモデルを受け取る
ソーステンプレートに書かれたコードを処理
処理結果をテキストファイルなどに出力する。