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が最近リリースされ、重要な変...
![簡潔なJavaコード](https://cdn-ak-scissors.b.st-hatena.com/image/square/ed002daefeef79537784cefac6e8ac3d44d7a41d/height=288;version=1;width=512/https%3A%2F%2Fres.infoq.com%2Farticles%2FConcise-Java%2Fja%2Fsmallimage%2Flogo4.jpg)
このドメインモデルに基づいて、まず第一に、このアーティクルでは、どのようにHibernate/JPAを使って、Scalaにおける Personエンティティ用の ジェネリックData Access Object (DAO) と具体的なDAOの実装方法を示す。その結果、 PersonDaoに、 CRUD操作が実行できるようになりる。例: val p1 = new Person(“Rod Johnson”) val p2 = dao.findByName(“Martin Odersky”) p1.link(p2) personDao.save(p1) Step 2 それからこのアーティクルは、Person エンティティを「リッチな」ドメインオブジェクトに変換するのに、何が必要なのかを要約する。このオブジェクトは、内部で NotificationServiceを使って、linkメソッドが呼ばれたと
これがPerf4Jの理解にどう関係があるのでしょうか。Java向けの優れたロギングフレームワークが広く利用可能になる前の古き悪しき時代、私たち開発者の大部分がロギングステートメントを追加した方法を考えてみてください。System.out.println()を「手軽なデバッガ」 -- ロギング情報を出力するための間に合わせの方法として使いました。すぐに、これでは不十分と分かりました。ロギングステートメントを専用のログファイル(異なる複数のファイルの可能性もあり)に向かわせ、おそらくそうしたログファイルを毎日ロールさせたかったのです。異なるレベルの重要性を異なるロギングステートメントに割り当てる能力や、コードをまったく変更することなく、特定の環境で特定のログステートメントのみを書いたり、異なる環境でログステートメントのフォーマットを変更したりするオプションを求めていました。そのため、log4j
今月リリースされたJava EE 7プラットフォームには,VMwareのSpring Batchプロジェクトから多くを受け継いだ,バッチ処理プログラミングのモデル仕様が含まれている。そのSpring Batch自体も同じく今月,設定のスリム化とデータアクセスの合理化を達成した注目のリリースによって,多くの関心を集めている。 JSR-352としても知られるBatch Application for the Java Platformは,アプリケーション開発者に対して,堅牢なバッチ処理システムの開発モデルを提供する。プログラムモデルの中心となるのは,Spring Batchから借用した開発パターンだ。Reader-Processor-Writerパターンと名付けられたこのパターンでは開発者に対して,Chunk指向の処理標準の採用を推奨している。 Reader-Processor-Writer
これらのビジネスルールは新しいものではありません。多くのビジネスソフトアプリケーションの中核となるビジネスロジックです。もしあなたが開発者なら、こうしたルールは要件のサブセットとして表現されているのを何度となく見たことでしょう。これらは、"月曜日は、3つ以上のご注文で20%のディスカウント"や"スーパースポーツ・バイクでは、16才の男性に保険を掛けることはできません"といった文章に似ています。 ルールエンジン間の主な違いは、こうしたルールがどう表現されるか、です。プログラムの中に埋め込まれる代わりに、これらはビジネスルールの書式に符号化されます。この書式はルールエンジンごとに違っています。 ルールエンジンは、何の制限も受けていません。ルールを管理するための、他のツールと一緒にリリースされることがよくあります。一般的なオプションとしては、生成、デプロイ、保存、バージョニング、そして個別もしく
function backgroundLoad ( ids ) { for ( var i=0; i < ids.length; i++ ) { var a = getArticleWithCache(ids[i]); backgroundLoad(a.children); } } このbackgroundLoadはIDの配列を引数に取り、その各IDに対して上で定義したgetArticleWithCacheを呼び出します。これでIDに対応する記事のデータがキャッシュされます。そして読み込んだ記事の子記事のIDに対してbackgroundLoadを再帰的に呼び出すことで、ツリー全体をキャッシュすることができます。 ここまですべてうまくいっているように見えます。しかし、一度でもAjax開発を経験したことのある方ならば、これではうまくいかないということはすでにおわかりだと思います。これまでの例で
function f ( ) { do_something(); do_another(); do_one_more(); } このプログラムでは順番に3つの関数を呼び出していますが、各関数呼び出しの間でいったんスレッドの実行権を他のJavaScriptコードに渡したいとします。これは次のように、各関数呼び出しをそれぞれ別の関数に分けて、間にsetTimeoutを挿むようにプログラムを書き換えることで実現できます。 function f ( ) { do_something(); setTimeout(f1, 1); // 1ミリ秒後にf1を呼び出す } function f1 ( ) { do_another(); setTimeout(f2, 1); } function f2 ( ) { do_one_more(); } こうして書き換えた関数fを、 f(); f(); のようにし
原文(投稿日:2013/04/02)へのリンク 異なるアプリケーション間の通信に関するニーズは,企業の中にも,企業間にも存在します。ESB (Enterprise Service Bus/エンタープライズ・サービス・バス) は,そのようなアプリケーション統合をサポートするツールとして生まれました。では,ESBとは何なのでしょう? どんな時にインテグレーション・スイートより便利なのでしょうか? プロジェクトに一番適しているのはどの製品なのでしょう? 今回の記事では,なぜ万能策が存在しないのか,ESBが必ずしも最善解ではないのはなぜか,という点について説明したいと思います。プロジェクトの成功のためには,適切な製品の選択が不可欠なのです。 "エンタープライズ・サービス・バス" の定義 "エンタープライズ・サービス・バス" という名前は,さまざまなベンダの多数の製品に含まれています。残念なことに,
Sustainable Security Requirements with the ASVS Josh Grossman provides a brief overview of what the ASVS is, but takes a closer look at balancing trade-offs and prioritizing different security requirements. Josh shares how to make the process repeatable and how to implement it as part of your own organization's requirements process.
カリフォルニア州エルセガンドに本拠をおくカスタムアプリケーション開発会社のTechEmpowerが,"Java 8のすべて(Everything about Java 8)" と題するブログ記事を公開している。まもなく来るJava 8において,開発者が直面する変更点を包括的にとりまとめたものだ。ここではその記事の概要を紹介する。詳細な内容についてはTechEmpowerのブログ記事を参照してほしい。 インターフェースの改善 インターフェースでstaticメソッドが定義できるようになった。例えばjava.util.Comparatorには,次のようにstaticなneutralOrderメソッドが追加されている。 public static <T extends Comparable<? super T>> Comparator<T> naturalOrder() { return (Com
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く