タグ

ブックマーク / atmarkit.itmedia.co.jp (110)

  • @IT:Spring Frameworkで理解するDI(1)

    DI:依存性の注入とは何か?:Spring Frameworkで理解するDI(1)(1/3 ページ) Javaエンジニアであれば最近、「Dependency Injection」や「DIコンテナ」「Spring」、または「Seaser2」といった名前を目にしたことがあるのではないでしょうか。これらは次世代のEJB(EJB 3.0)に取り込まれる動きがあるなど、最近非常に注目されているキーワードであり、今後のJava開発を語るうえで避けては通れない概念の1つになるとされています。 この連載は、「Spring」というフレームワークを利用して、J2EE開発における「Dependency Injection(DI)」というデザインパターンから得られるメリットを紹介し、J2EEの今後の方向性を理解する助けとしていただくことを目的としています。 Dependency Injection:依存性の注入

    @IT:Spring Frameworkで理解するDI(1)
  • @IT:Java TIPS -- リダイレクトとフォワードの違いを知る

    しかし、sendRedirectメソッドによる移動は「リダイレクト」、forwardメソッドによる移動は「フォワード」と呼ばれ、内部的な挙動も性質もまったく異なるものです。ユーザーからは同じように見えますが、開発者はこれらの違いを把握しておく必要があります。 まず、リダイレクトとフォワードの挙動がどのように異なっているのかを簡単に説明しましょう。 リダイレクトの場合、クラアイアントがページXを要求すると、サーバがページYを要求する指示をクライアントに戻します。これによって“クライアントは自動的に”ページYを要求し、結果としてページYがクライアントに戻されます(ページXとページYは、必ずしも同一サーバからのレスポンスではない)。これに対しフォワードは、クライアントがページXを要求すると、“サーバ内で”ページXからYへ処理が移送され、ページYが応答として戻されます(ページXとページYは、必ず同

    @IT:Java TIPS -- リダイレクトとフォワードの違いを知る
    nantan
    nantan 2008/11/28
  • GWTとYahoo!のAPIを使って画像検索アプリ! - @IT

    前回「JavaをAjaxに変換するグーグルのGWTを使ってみよう」では、Google Web Toolkit(以下GWT)の概要を紹介しました。 GWT最大の特徴は、JavaでAjaxが開発できることです。Ajaxアプリケーションのクライアント側をJava言語で開発し、それをピュアなHTMLJavaScriptに翻訳する「Java-to-JavaScriptコンパイラ」というユニークな技術をコアとした開発手法にあります。 具体的なAjaxアプリケーションを実際に作成することで、GWTのプログラミングやウィジェットあるいはリモート・プロシージャ・コールの機能といった質的な要素へと迫っていきましょう。

  • @IT:CoolなEclipseプラグイン(2)

    今回は、ソフトウェアのレビュー/テスト/デバッグを助け、ソフトウェアの品質向上に役立つプラグインを紹介しましょう。バグの存在する可能性があるコードを指摘するFindBugs、カバレッジによりユニットテストの網羅性を検証するdjUnit、スレッドの問題の検出を助けるEnerjy Thread Profilerの3プラグインです。 1.FindBugs プログラムのバグ検出の手段として、プログラムを動作させずにバグを検出する静的解析があります。Eclipseも簡単な静的解析機能を備えています。コード中で初期化されないオブジェクトを参照する機能や、depricateなメソッドを利用した場合など、推奨されないコードを書くと黄色でランプマークを表示する機能などです。 FindBugsプラグインは、Eclipseの標準機能以上に強力な静的解析の機能を提供します。ある特定のコードパターンにマッチする部分

    @IT:CoolなEclipseプラグイン(2)
  • Eclipseプラグインを国際化しよう- @IT

    Eclipseプラグイン実践テクニック(1) Eclipseプラグインを国際化しよう NTTデータ先端技術 竹添直樹 NTTデータ 基盤システム事業部 岡隆史 2006/8/26 「作って覚えるEclipseプラグイン」では、Eclipseのプラグイン開発に関するトピックを解説してきました。連載では、より実践的な内容を紹介していきます。第1回ではプラグインを国際化する方法を解説します。「作って覚えるEclipseプラグイン」で作成してきたプラグインはいずれもユーザーインターフェイスで使用される文字列をマニフェストファイルやソースコード中にハードコードしてきましたが、より多くのユーザー(海外のユーザー)にプラグインを使ってもらおうという場合にはユーザーインターフェイスの国際化は必須になります。これはEclipseプラグインに限った話ではなく、通常のJavaアプリケーションにおいてもリソ

  • route - ルーティングテーブルの表示/設定を行う

    routeコマンドは、IPパケットをルーティングするためのルーティングテーブルの内容表示と設定を行う。ルーティングテーブルは、おもにOSが管理するルーティング情報を保管したメモリテーブルだ。テーブルのエントリーが経路を表している。経路はネットワークまたはホストへ到達するために通過する必要のあるゲートウェイを表している。 ここで、ルーティングテーブルの管理とは、 ルーティングテーブルの表示と確認 ルーティングテーブルへの経路の追加、削除、変更 を意味する。 書式 ●Windowsの場合 route[ -f][ -p][ PRINT| ADD| DELETE| CHANGE[ 宛先IPアドレス][ MASK サブネットマスクアドレス[ ゲートウェイIPアドレス][ METRIC メトリック数][ IF インターフェイス名]]

    route - ルーティングテーブルの表示/設定を行う
  • 「多重配列のディープコピー方法」(1) Java Solution - @IT

    IT 会議室 Indexリンク Windows Server Insider Insider.NET System Insider XML & SOA Linux Square Master of IP Network Java Solution Security & Trust Database Expert RFID+IC リッチクライアント & 帳票 Server & Storage Coding Edge @ITクラブ Cafe VB業務アプリケーション開発研究 @IT SpecialPR

  • Ajaxの高度な使用例、Yahoo! pipes Ajax うきうき Watch 第18回 ─ @IT

    Yahoo! pipes 話題のサービスです。検索エンジンやRSSフィードなど、さまざまなソースのデータを足し合わせ、フィルタリングし、望みの情報だけを抽出したフィードを作り出すことができます。シンプルな分かりやすさと操作性の良さが特徴です。 Yahoo! pipesは、サーバ側で実行されRSSフィードを出力するサービスで、Ajaxとは直接関係がありません。にもかかわらず、今回のトップで紹介した理由は、パイプのデザインツールが非常によくできているからです。 画面左側のパレットから、必要な機能を選んで配置します。場所は自由にドラッグして決めることができます。そして、パーツ間を線でつなぐと、自動的に滑らかな線で結び付けられます。パーツの場所を移動しても線は追従します。さらに、個々のパーツ内部は入力フィールドになっていて、編集できます。これはAjaxの高度な使用例として見る価値があるでしょう。

  • javapコマンドでクラスファイルを読む

    Sun Microsystems社より公開されているJVMの公式仕様『Java仮想マシン仕様(The Java Virtual Machine Specification)』(以下、JVM仕様)には、JVMで利用可能なバイトコードの仕様が説明されています。 JVM仕様では、バイトコードの命令列は、人間が読み取ることができるアルファベットの命令名(ニーモニック)と、その数値表現である1byteのオペコードで構成されています。クラスファイルはオペコードのみで構成されており、単なるバイナリデータです。試しにクラスファイルをテキストエディタで開いてみても、画像などのバイナリデータと同様に、文字にならないデータが表示されるだけです(クラスやフィールド、メソッドの名前は、バイトコード内にそのまま文字列として保存されているので、そこだけは何とか読み取ることができます)。 それでは、生成されたクラスファイ

    javapコマンドでクラスファイルを読む
  • Windows管理者必携、Sysinternalsでシステムを把握する - @IT

    Windows管理者必携、Sysinternalsでシステムを把握する:Security&Trust ウォッチ(43) SysinternalsというWebサイトをご存じだろうか? 何となくそこにたくさんのツールがあるのは知っていても、Webサイトが英語版しかないので全部読む気がしない。また、いくつかのツールは使っているけど、ほかにどういったユーティリティが提供されているのか細かく見ていないという人がいるのではないだろうか。 筆者もその1人で、「Process Explorer」などの有名なツールは使っていたが、全ぼうは把握していなかった。 Windowsを使っているシステム管理者や技術者の方ならば、Sysinternalsという名前を知っている方は多いはずだ。SysinternalsはWindows標準のツールでは管理できないシステム情報などを扱うツールを数多く提供している。 このSys

    Windows管理者必携、Sysinternalsでシステムを把握する - @IT
  • Hotspot VMの基本構造を理解する

    J2EEがミッションクリティカルな分野に適用されるようになり、Javaのパフォーマンスチューニングの重要性はさらに高まっています。パフォーマンスチューニングにはさまざまなパラメータがありますが、中でもJava VMに関連するチューニングの効果は大きいといわれています。稿は、Java VMに関連するチューニング手法を学ぶための前提知識を提供することを目的にしています(編集部)。 Java VMに関連するチューニングを行い、J2EEアプリケーションのパフォーマンスを上げるためには、Java VMについて詳しく知る必要があります。稿は2回に渡ってJava VMの基構造と動作原理を詳細に解説しますが、内容を理解するためにはプログラムがコンピュータ上で動作する基原理とJava VMの基用語を知っている必要があります。Java VMの基用語に関しては、「実行スピードに挑戦するJavaアーキ

    Hotspot VMの基本構造を理解する
    nantan
    nantan 2008/11/27
  • ガベージコレクタの仕組みを理解する

    J2EEがミッションクリティカルな分野に適用されるようになり、Javaのパフォーマンスチューニングの重要性はさらに高まっています。パフォーマンスチューニングにはさまざまなパラメータがありますが、中でもJava VMに関連するチューニングの効果は大きいといわれています。稿は、Java VMに関連するチューニング手法を学ぶための前提知識を提供することを目的にしています(編集部)。 ガベージコレクション(Garbage Collection:以下GC)と聞くと、「プログラマの煩雑なメモリ管理作業を軽減してくれるのはいいけど、アプリケーションの応答時間を遅らせたり、スループットを低下させたりして、パフォーマンスの観点からは非常に困ったものだ」というイメージを持つ人も多いのではないでしょうか。 GCはJava HotSpot仮想マシン(Java HotSpot Virtual Machine:以下

    ガベージコレクタの仕組みを理解する
    nantan
    nantan 2008/11/27
  • @IT:Javaパフォーマンスチューニング 第3回

    記事は、HP-UX Developer Edgeに掲載された記事を株式会社アットマーク・アイティおよび記事の筆者が独自の判断のもとに加筆・修正したものです。 今回は、Javaにおけるヒープ・メモリ管理の詳細を説明します。JVMのヒープ・メモリの中で、新しいオブジェクトと古いオブジェクトがどのように配置されるかを理解することで、ヒープ・メモリが有効に利用されているか否かを判断することができます。また、JVMが出力するガベージ・コレクションのログを解析し、オプションの指定によってヒープ・メモリのサイズを適切にチューニングする方法を紹介します。 Java ヒープ・メモリの構造 Javaにおけるガベージ・コレクションのメカニズムを理解するには、まずヒープ・メモリの構造を知っておく必要があります。 図1は、JVM におけるヒープ・メモリの構造を示したものです。この図が示すように、ヒープ・メモリの

    @IT:Javaパフォーマンスチューニング 第3回
    nantan
    nantan 2008/11/27
  • 「DocumentBuilder#parseに渡すsystemIdで日本語名を含むURIが通らない」(1) Java Solution - @IT

    IT 会議室 Indexリンク Windows Server Insider Insider.NET System Insider XML & SOA Linux Square Master of IP Network Java Solution Security & Trust Database Expert RFID+IC リッチクライアント & 帳票 Server & Storage Coding Edge @ITクラブ Cafe VB業務アプリケーション開発研究 @IT SpecialPR

  • JavaScriptを書かずにAjaxを実現するjMaki

    JavaScriptを書かずにAjaxを実現するjMaki:CoolなEclipseプラグイン(22)(1/3 ページ) Ajaxアプリケーションを開発するには、JavaScriptJavaの2つの性質の異なる言語を利用する必要があり、開発者を悩ませています。今回は、Ajaxアプリケーションの開発を簡単にするライブラリjMakiとそのEclipseプラグインについて解説します。 便利なJavaScriptライブラリが悩みのタネ? Ajax開発に欠かせないJavaScriptには現在prototype.js、jQuery、Dojo、script.acul.us、Yahoo UI Libraryなど実にさまざまなライブラリ(フレームワーク)が提供されていて、その利便性から開発の役に立っています。しかし、これらのライブラリを組み合わせて利用するには、各ライブラリの利用方法を習得する必要があり、

    JavaScriptを書かずにAjaxを実現するjMaki
  • Webアプリの問題点を「見える化」する7つ道具 (1/3) - @IT

    今回の概要 システムが応答しない、パフォーマンスが劣化したなどのトラブルが発生したときに、原因がなかなか掴めず、あたふたすることはないだろうか? 稿では、Java EEトラブルシューティングの現場で役立つ7つ道具を紹介する ある日、突然電話が鳴る 用件は、「システムが不定期に停止する。よく分からないけど、どうやらJava EE部分がおかしい」とのこと。このような事態が発生したとき、やみくもに原因を調べ、いつまでたっても問題が解決できず、原因の一片も発見できないことが多々ある。 トラブルが発生した場合、ツールが充実していない昔は、開発者の経験と勘に頼るところが非常に大きかった。Webシステムが普及するいま、昔とは比べ物にならないほど、システムの数が増え、開発者数が増える一方、システム障害を切り分けられる職人的なエンジニアの人数はシステム数に比例して増えているわけではない。そのため、すべての

    Webアプリの問題点を「見える化」する7つ道具 (1/3) - @IT
  • @IT:Java開発の問題解決を助ける(2)

    前ページでメモリを無駄遣いしているクラスを特定しました。ではもう少し具体的にどこで無駄遣いが起こっているかを調べてみましょう。プロファイル結果が表示されている画面にあるアイコン[ Take Snapshot of Collected Results] をクリックしてスナップショットを取得します。スナップショット画面ではそれぞれのクラスを右クリックし[Show Allocations Stack Traces]を選択することで、そのクラスがインスタンス化されたプログラム中の部分を取得することができます。 このスタックトレースのメソッドを右クリックし[Go To Source]を選べばソースコードにジャンプすることができ、そのままデバッグを行うことができます。このようにインスタンスが生成された個所から処理をたどったり、その個所を中心にデバッガのブレークポイント機能を使って処理を追跡することによ

  • 第3回 変数の宣言とスコープ

    ■関数リテラルとFunctionコンストラクタにおけるスコープの違い 前回、関数を定義する構文として「関数リテラル」と「Functionコンストラクタ」について紹介した。 関数リテラル、Functionコンストラクタは構文的な違いこそあるものの、いずれも匿名関数を定義するという意味でほぼ同様の機能を提供する。ただし、関数内で入れ子に関数リテラル/Functionコンストラクタを使用した場合には、スコープの解釈が互いに異なる点に要注意。 以下に、具体的なコード例を挙げてみよう。 var num = 0; function scope() { var num = 1; // Functionコンストラクタ var myScope1 = new Function("", "window.alert(num);"); // 関数リテラル var myScope2 = function() { wi

    第3回 変数の宣言とスコープ
  • テキストエディタプラグインの実装

    ドキュメントのパーティショニング Eclipseのエディタ(正確にはJFaceのテキストエディタ・フレームワーク)ではエディタで編集するドキュメントの内容をorg.eclipse.jface.text.IDocumentという抽象的なオブジェクトとして扱います。IDocumentオブジェクトはドキュメントプロバイダによって提供されます。今回のサンプルではXMLDocumentProviderがドキュメントプロバイダに当たります。 リスト3 public class XMLDocumentProvider extends FileDocumentProvider { protected IDocument createDocument(Object element) throws CoreException { IDocument document = super.createDocumen

    テキストエディタプラグインの実装
  • そもそもコンパイラの中ってどうなっているの?

    コンパイラの基構成 さて、今回はコンパイラの基構成について確認をしておきます。コンパイラは、入力としてソースコードを受け取り、内部で変換処理を行いオブジェクトコードを出力するプログラムです(図1)。ソースコードは、人間が理解しやすいプログラミング言語で記述されたものであり、オブジェクトコードは、コンピュータが理解しやすい2進数の羅列である機械語で構成されています。 Javaの場合は、ソースコードはプログラミング言語Javaの文法で書かれたコードが記述されたもの(.javaファイル)であり、オブジェクトコードはJavaVM用の機械語で書かれたクラスファイル(.classファイル)が相当します。 さて、ここでJavaのような仮想計算機用のプログラミング言語について見てみましょう。 Javaの場合には、Javaコンパイラによって出力されるオブジェクトコードは仮想計算機のJavaVM用の機械語

    そもそもコンパイラの中ってどうなっているの?