![Loading...](https://cdn-ak-scissors.b.st-hatena.com/image/square/8d71ff5111e05619a10d29bb40d7aebaa75c8fbc/height=288;version=1;width=512/https%3A%2F%2Fs0.wp.com%2Fi%2Fblank.jpg)
カスタムクラスローダを作ってみるに引き続き、リフレクションとかで遊ぶ。アノテーションでなんかしてみる。 MyAnnotation.java import java.lang.reflect.Method; import java.lang.annotation.Annotation; import java.lang.annotation.Target; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; public class MyAnnotation { public static void main(String[] args) { Class clazz = MyAnnotation.
徐々に利用する機会が増えてきたアノテーションだが、アノテーションベースのフレームワークで使われているのを使ったりすることはあっても自分でアノテーションを定義したことが無かった。 「業務用フレームワーク作る際も使えそうだよなぁ」と思っていたので、今後使いこなす為にも改めてちゃんと勉強しなおしてみた。 ※「アノテーション」自体は、JUnit、Jaxb、Spring等によって使い慣れていることを前提。 アノテーション型 独自のアノテーションを作成する為には、以下のようなアノテーション型のクラスを作成する必要がある。 @interface Annotation名{ キーの型 キーの名前(); ... } クラス名がアノテーション名、メソッド名がキー名となり、メソッドの返り値がキーに指定できる型となる。 アノテーション型はインターフェイス型と似ているが、通常のインターフェイス型に比べ、以下の制限があ
それぞれの指定の意味する場所は、以下のようになっている。 @LocationExampleAnnotation //TYPE:クラス定義やインターフェース定義をする場所 public class アノテーションを付けるサンプル { @LocationExampleAnnotation //FIELD:フィールド(メンバー変数)定義 protected int value; @LocationExampleAnnotation //CONSTRUCTOR:コンストラクター定義 public アノテーションを付けるサンプル() { } @LocationExampleAnnotation //METHOD:メソッド定義 public void メソッド() { } public int 引数ありメソッド( @LocationExampleAnnotation //PARAMETER:パラメータ
Datastoreでトランザクション管理をするには、 try { tx.begin(); <更新処理> pm.makePersistent(members); tx.commit(); } finally { if (tx.isActive()) { tx.rollback(); } }といったコードを書きます。これを毎回書くのが面倒なので、AOPやテンプレートメソッドパターン等を使ってコミットやロールバックを自動化したいところです。しかしDatastoreには、 1つのトランザクション内では1つのエンティティグループの更新しか実行できない という制限があります。トランザクションの競合を考えるとエンティティグループは小さく設計する必要があるので、必然的に1回のリクエスト内では複数のエンティティグループに更新する局面が増えます。すると、これまでのJava EEの時みたいに「1リクエスト=1ト
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く