タグ

javaとdiに関するclavierのブックマーク (9)

  • DIコンテナのインジェクション方法の使い分けについて - 日々常々

    DIコンテナを使う時にどのインジェクションを使うかって話です。 たぶん誰かがどこかで同じようなことを書いているだろうけれど、気にせず書くよ。 「他の誰かが書いている」なんてのを書かない理由にしてると何も書けなくなるし。 コンテナ DIコンテナのこと。 コンテナ管理 インスタンスのライフサイクルをコンテナが管理していること。雑に言えば、使う側で new しないってこと。 インジェクション Dependency Injectionのこと。 Short Answer コンストラクタインジェクションを使いましょう。使い分けなくていいです。 3種類のインジェクション インジェクションには3種類ありますね。他あっても知らない。 フィールドインジェクション セッターインジェクション コンストラクタインジェクション フィールドインジェクション 一番よく見るかな。 class Hoge { @Inject

    DIコンテナのインジェクション方法の使い分けについて - 日々常々
  • PPAPで学ぶDaggerによるDI - きしだのHatena

    Daggerってありますよね。コンパイル時に依存性を解決するのでパフォーマンス的に有利なDIコンテナです。 https://google.github.io/dagger/ 依存関係の不備がコンパイル時にエラーになって発見できるのも、実行時にエラーが出たときの修正の難易度が高いAndroidアプリにはありがたいということで、Androidでよく使われてるようです。 基的なオブジェクトの定義 I have a pen. public class Pen { @Override public String toString() { return "ペン"; } } I have an apple. public class Apple { @Override public String toString() { return "アッポー"; } } Ohh!!! Apple Pen!!! p

    PPAPで学ぶDaggerによるDI - きしだのHatena
  • アノテーション入門勉強会を開催してきた。 - 水まんじゅう2

    DoorKeeper https://kumamotojava.doorkeeper.jp/events/42272 当日の資料 https://github.com/megascus/annotation-handson ちょっと間が空いてしまった*1けれども、先日熊にてアノテーション入門という名前で勉強会を開いてきた。 最近のJavaのフレームワークはたいていアノテーションが使用されているが、アノテーションが何やってるかよく判らないよねぇという声が聞こえたので。 とりあえず、目標地点としてDIを見据えて、アノテーションを使って何か作れるようにと、アノテーションがいかに何もしていないのかが判るように行ったつもりです。 とはいっても、DIについてはきしださんがこの勉強会を告知した後にDIを自分で実装してみるという記事を書いてくださったので、とりあえず、そちらの前提条件となる知識を網羅でき

    アノテーション入門勉強会を開催してきた。 - 水まんじゅう2
  • 作って理解するDIコンテナ - きしだのHatena

    DIコンテナ使ってるけど、アノテーションってなんなの!って聞かれて、作ってみたらわかるよと答えてみたので、自分でも作ってみました。 よくわかった。 「DIコンテナ使うと何がいいの?」ということも、作ってみるとわかります。あと「DIって何がいいの?」に関しては、「DIはちょっとコードを書くのが楽になるだけで、それだけあっても仕方ない、大事なのはコンテナ」と答えるようにしてますが、コード比率からもそれがよくわかります。 続編としてWebフレームワークも作っているので参考まで。 作って理解するWebフレームワーク - きしだのHatena まずはコンテナを作る とりあえず1ソースの状態で。 こんな感じで、管理する型を登録できるようにします。 static Map<String, Class> types = new HashMap<>(); static void register(String

    作って理解するDIコンテナ - きしだのHatena
  • Guiceで簡易的なプラグインシステムを構築するには | さにあらず

    Java 界隈には OSGi といういかついダイナミックモジュールシステムがあるのですけども、これは解決しようとしている問題の量が非常に多いのでちょっとしたものを作るために使おうとすると非常に辛い。 そもそも、アプリケーションのブートストラップ部分から全部 OSGi ベースで作りこまないと良い感じに動いてくれません。 そこで、OSGi を前提としたアーキテクチャ設計が必要になるのですけども、ちょっと便利なツール作りたいだけなのに膨大な時間をかけて OSGi を勉強するかと言われると、しませんよね。 という訳で、Java において簡易的なプラグインシステムを Guice で作ってみましょうという話です。 尚、Spring 界隈で実現する方法については@makingさんのエントリをどうぞ。 DI コンテナで実現する簡易プラグイン機構コードの場所#必要に応じてエントリ内にコードはありますが、実際

    Guiceで簡易的なプラグインシステムを構築するには | さにあらず
  • GitHub - tokuhirom/toydi

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - tokuhirom/toydi
  • Dagger † Android・Java 対応の高速依存性注入フレームワーク

    注意 語訳は、Dagger ユーザガイドの 2013-03-27 時点 からの非公式な翻訳です。最新および正確な情報については、オリジナルのユーザガイドを参照してください。 イントロダクション アプリケーションで最良のクラスとは、何かを実行するクラスです。 たとえば、バーコード読み取りクラス BarcodeDecoder 、 Koopa 物理エンジンクラス KoopaPhysicsEngine、 音楽ストリーミングクラス AudioStreamerといった類です。こういったクラスは別のクラスへの依存性を持ちます(バーコードカメラファインダクラス BarcodeCameraFinder、 デフォルトの物理エンジンクラス DefaultPhysicsEngine、 HTTPストリーミングクラス HttpStreamer 等々)。 一方で、アプリケーションで最悪のクラスとは、ほとんど何もし

  • プログラミングと開発者のためのCodeZine:DIをスクリプト言語で実装する(Java, DIコンテナ, スクリプト)

    はじめに DIコンテナのオブジェクト依存性の注入定義には、XMLベースの設定ファイルを用いることが主流ですが、「ツール無しでは視認性が悪い」「記述が面倒」といった使いにくさから、あまり手軽ではないと感じる時があります。 そこで、「変更容易な外部ファイルでDIの定義を行う」という前提で、もっと手軽に使える手段としてスクリプト言語を利用する事を考えてみました。 実装手段として、Java SEの次期バージョンJava SE 6で採用予定のJSR223(Scripting for the Java Platform)仕様を用いた場合と、現J2SE 5.0で実現する場合の2通りを考える事とし、以下のスクリプト言語を採用しました。JavaScriptJava SE 6環境)Groovy(J2SE 5.0環境) 必要な環境Java SE 6  もしくはJ2SE 5.0Groovy 1.0 jsr05

  • Spring-Java/J2EEアプリケーションフレームワークリファレンスドキュメント

    This domain may be for sale!

  • 1