Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...
Twitterではかいてたけど、blogにかいてなかったのでこっちにも。 http://code.google.com/p/google-guice/ DIの機能追加は少しだけ。新機能としてはJSR330対応とデータアクセスの口とかWebまわりのやつとかがエクステンションとして入ってる。 今までGuiceはDIコンテナのコア部分だけで、後は全部お好きにどうぞ、という感じだったが、最低限の仕組みは入れてきた感じ。 データアクセスはローカルトランザクションのJPAのコードがあるのでそれを参考に作れば他のデータアクセスライブラリと組み合わせるのも楽だろう。 これで、CDI、SpringFramework Guiceと主要DIコンテナはJSR330対応した。みんな@javax.inject.Injectで注入することになる。登録方法だけが異なるという感じ。
Put simply, Guice alleviates the need for factories and the use of new in your Java code. Think of Guice's @Inject as the new new. You will still need to write factories in some cases, but your code will not depend directly on them. Your code will be easier to change, unit test and reuse in other contexts. Guice embraces Java's type safe nature. You might think of Guice as filling in missing featu
Androidアプリ開発(に限った話ではないですが)でTDDしたいと思ったときに、テスト対象クラスのフィールドをモックで差し替えたい、と思うことがしばしばあります。依存するクラスの振る舞いを固定化することで、テスト対象オブジェクトの振る舞いだけに着目したテストケースを書くことができるからです。 そんな時に、DIコンテナ上でコードを書いていると便利です。以前、少しだけSeasar2+EasyMockでテストを書いていたことがあったのですが、作成したモックオブジェクトの差し替えを、ほぼ全てSeasar2がやってくれたのでものすごく便利でした。 Android開発でもSeasar2+EasyMockくらい簡単にテストを書きたい! ということで、 Android Mockでモックオブジェクトとその振る舞いを定義 RoboGuiceでモックオブジェクトをテスト対象クラスにインジェクト ということをや
privateメソッドにインターセプタを適用したはずが、どうもうまく設定できていない風の動作になったのでちょっと調査。ドキュメントのAOPのLimitationsのところに記述があり、適用対象のメソッド(を持つクラス)は以下の条件を満たす必要があるとのことです。 クラスが、public or パッケージプライベート(default)であること。 クラスが、finalでないこと。 メソッドが、public or protected or パッケージプライベート(default)であること。 メソッドが、finalでないこと。 インスタンスが@Inject-annotatedまたはデフォルトコンストラクタでGuiceで作成されていること。 なるほど、アクセス修飾子についてはprivate以外であればOKなのか。ということで検証してみます。 public static void main ( S
あるいは、Genericタイプの着いたクラスをコンテナで管理する方法。 Google Guiceをいろいろ試してていろいろ日本語情報で見つからないのがあったので、メモしておく。 登録 TypeLiteralを使ってあげる。 List<IService> list = new ArrayList<IService>(); list.add(new ServiceA()); list.add(new ServiceB()); binder.bind(new TypeLiteral<List<IService>>() {}).toInstance(list); リストの中身は当然コンテナ管理にはならないざんす。 http://code.google.com/p/google-guice/wiki/FrequentlyAskedQuestions 取得 List<IService> list =
jarファイル1つで手軽に試せるJavaのORM DomaとActiveObjectsのサンプルをT2を使い作りました。 Doma 以前カンファレンス時に、id:taediumさんに「Doma触ってサンプル作ります」と言ったのでいつまで待たせるんだ!と怒られないように作成しました。 T2 + Guice + Doma T2 + Guice + Domaで構成されています。 詳細な使い方等は、id:c9katayamaさんが解説してくれていますので、こちらをご覧下さい。 http://d.hatena.ne.jp/c9katayama/20091011/1255244389 補足 あとGuiceとDomaにはTransaction機能はないので、SpringのTransactionInterceptor等のトランザクション機能を使ってみたがGuiceのサンプルなのにSpringも出てくると、
Guiceを使った場合に、DomaのConfigクラスのインスタンスをDaoImplにどうインジェクトするのがベターか?という話です。 昨日のConfigAdapterはDomaが提供するという前提で話をすすめたいと思います。 案1 明示的なコンストラクタインジェクション Daoの設定はこんな感じで普通。 @Dao(config = ConfigAdapter.class) public interface EmpDao { ... } aptで生成される実装クラスも普通。 public class EmpDaoImpl extends ... implements EmpDao { public EmpDaoImpl(Config config) { super(new ConfigAdapter(config)); } ... } Moduleでは、DaoImplを自分でnewしてto
前から気になっていたWebアプリケーションフレームワークCubbyが2.0からGuiceやSpringに対応するという話なので、ちょうど最近Guice 2.0が出たことだしちょっと試してみる。 初期セットアップ Maven 2.0.9 と Eclipse 3.4 (Pleiades) で、公式ページのGuice統合の通りに行う。groupId は example.cubby2 、artifactId は cubby2-guice とした。ただ、Guice 2.0 と JDK6 を使うために、pom.xml に以下の設定変更を行った。 まず、Guice 2.0のjarファイルはMaven2のセントラルリポジトリに無いので、<repositories> 配下に、以下のようにGoogleのリポジトリを追加する(コメント参照)。 <repository> <id>guice-maven</id>
Guiceとは GoogleからリリースされているDIコンテナ XMLレスでDIの定義をコード内での記述で閉じられる 現在2.0がリリースされている http://code.google.com/p/google-guice/ 最初の一歩 Client が DIされた Service を実行する単純なケースの実装 まず Service のインターフェース public interface Service { String execute(); } Service のImpl public class ServiceImpl implements Service { @Override public String execute() { return "Execute!!"; } } Client の実装はコンストラクタインジェクションにてServiceを設定するようにする このときコンスト
Google App Engine上でも普通に使えましたよ > Google GuiceのAOP。ということで、動作確認に使った簡単なサーブレットを公開してみます。 import java.io.IOException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.aopalliance.intercept.MethodInterceptor; import org.aopalliance.intercept.MethodInvocation; import com.google.inject.AbstractModule; import com.go
知っ得納得Webフレームワーク勉強会の第5回にてGuice2.0について発表しました。 発表資料です。 Guice2.0View more documents from yone098. 個人的には、Guice2.0の新機能はフレームワーク作成者に嬉しい機能が増えた印象を受けました。 私自身、新機能の有効活用を模索中です。 Ninject .NET版のGuiceは個人的に注目しています。完全に忍者ですね素敵です。 まとめ id:c9katayamaさんのEC2についての発表は為になりますので是非、資料を一読下さい。 http://d.hatena.ne.jp/c9katayama/20090716/1247737128 id:kaisehさんとは、最新技術の動向について議論しました。大変有意義な話しでしたね。 参加して下さった皆様、毎回セミナールームを提供してくださる株式会社フルネス様あり
Google Code 19日(米国時間)、Google Developer TeamのJesse Wilson氏はGuiceのメジャーバージョンアップ版となるGuice 2の公開を発表した。Guice 1は2007年3月8日(米国時間)に公開されており、2年2カ月を経てのメジャーバージョンアップとなった。Guice 2での変更は細かいものだが、サイズとメンテナンスの面で改善がはかられている。1とは互換性が失われている部分もあるため、移行するなら注意が必要だ。 GuiceはJavaで開発されたDI(Dependency Injection)フレームワーク。既存のほかのDIフレームワークと比較して、すべての処理がJavaソースコード内部で完結するように工夫されており、DI導入にともなう煩雑さを軽減しながらも、最大の効果を得られるように工夫されている。 Guice DeuceでJesse Wi
@Inject仕様をJCPにドラフトとして提出した模様。 どうやらSpring、Guiceだけでなく、PicoContainer、Plexus、あとTapestry IoCの人も参加するようです。 記述内容をざっと読むと、どうやらメインターゲットがJavaSEでJDK5から使えるようにしようとのことみたい。 なので、JavaEEじゃなくても使える点が好印象。非常にロウレベルなAPIを提供するんだというのが仕様全体に書かれているので、 そういうJSRはなんとなくよい気がします。 ポイントになりそうな点を幾つか。 Java SE 5 will be the minimum requirement, but Java SE 6 and 7-specific features will be available on those platforms. APIもjavaxでなくて、もしかしたらjav
知っ得納得Webフレームワーク勉強会#Vol.4が終了しました。 お忙しい中参加してくれた皆さん、どうもありがとうございました。 当日、発表した資料を公開します。 第4回とあって少し変化をつける為に資料は全て英語にし、最後に英語で俳句を入れました。 今回のお題はguice+warpとICEfacesでしたが、私の力不足でwarpに辿り着けず申し訳ありませんでした。 個人的にはProviderをもう少し紹介し、以下の新機能も紹介したかったです。 特にweb.xmlの代わりにJavaコードによってServletやFilterのマッピングが柔軟に設定出来る部分。 Guice.createInjector(new ServletModule() { filter("*.css").through(CustomCssFilter.class); serve("test.html").with(Tes
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く