読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

Guiceのインターセプタってprivateメソッドには適用できないんだっけ?

privateメソッドにインターセプタを適用したはずが、どうもうまく設定できていない風の動作になったのでちょっと調査。ドキュメントのAOPのLimitationsのところに記述があり、適用対象のメソッド(を持つクラス)は以下の条件を満たす必要があるとのことです。…

PrivateModule

PrivateModuleを使うと、モジュールに登録されたコンポーネントの公開/非公開を制御できます。 デフォルトは非公開。 コンポーネントは、登録されたモジュール内でのみ利用可能(他のコンポーネントにInject可能)です。 外部から取得しようとするとエラーにな…

Provider Methods

Provider Methodsは、Moduleの関数として定義したメソッドを、コンポーネントを取得する際のProviderとして使う機能です。 インスタンス生成時に初期化が必要だったりする場合、Providerでコンポーネントを登録したりしますが、Providerクラスやそのインスタ…

ChildInjector

ChildInjectorは、任意のInjectorから、そのInjectorが持つモジュールの内容を継承する子Injectorを作成する機能です。 子Injectorでは親のコンポーネントが参照でき、インスタンスを取得したり、Injectしたりできます。 子Injector作成時にはModuleを渡すこ…

Multibindings, MapBindings

Google Guice 2.0がリリースされたました!ということで、新機能を少しずつ試してみることにします。まずは、Multibindings と MapBindings。 機能 Multibindings,MapBindings は登録した複数のコンポーネントを、SetやMapで取得 or Injectする機能です。Cont…

Generic type付きインスタンスのインジェクション

Generic type付きインスタンスをインジェクションするには、TypeLiteralを使用します。インジェクション先: import java.util.List; import com.google.inject.Inject; import com.google.inject.Singleton; class Kitten { // Generic type付きのListを受け…

アノテーションで名前付け

アノテーションを使用して、サービスインターフェイスと実装を名前付きで関連づけます。 識別用アノテーションには、@BindingAnnotationを設定します。(設定しないとエラーになります) Moduleで、annotatedWith()またはKeyを利用して、名前付きでインスタン…

名前付きバインディング

Guice組み込みのNamedアノテーションを利用して、サービスインターフェイスと実装を名前付きで関連づけます。 Moduleで「インターフェイス+名前」と、実装を関連づけ。(Names#namedはNamedアノテーションを生成するユーティリティです。) インスタンス取得時…

インジェクションのやり方いろいろ

Guiceでは以下のインジェクション方式がサポートされています。 フィールドインジェクション コンストラクタインジェクション メソッドインジェクション(set*に限らず任意のメソッドを指定できます) フィールドインジェクション(Mii.java): import com.googl…

アノテーションでバインディング

サービスと実装の関連付けや、スコープの指定はアノテーションで行うこともできます。サービスインターフェイス: import com.google.inject.ImplementedBy; /** * サービスのインターフェイス */ @ImplementedBy(KittenImpl.class) // 実装がKittenImplであ…