IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.
Enunciateとは、Ryan Heaton氏により開発が進められているWebサービスフレームワークである。2007年3月にバージョン1.0が出たばかりの真新しいプロダクトだ。 Webサービス関連のフレームワークと言うと、AxisやXFireが有名だが、Enunciateはそうした「Webサービスの実行環境を提供するフレームワーク」ではない。EnunciateプロジェクトではEnunciateを「Webサービス・デプロイメント・フレームワーク」と位置付けている。 Webサービスデプロイメントフレームワークについて平たく説明するならば、「(1)完全なドキュメントを備え、(2)相互運用性に優れ、(3)すぐにデプロイ可能、という3つの条件を併せ持つWebサービスを、ソースコードを基に自動的に構築する」ためのフレームワークである。つまりは、Webサービスを構築する際に必要な作業のうち、ソースコー
Oracle Hardware Oracle hardware includes a full suite of scalable engineered systems, servers, and storage that let enterprises optimize application and database performance, protect crucial data, and lower costs. Organizations improve database performance, simplify management, and lower costs with exclusive features and automated operations that aren’t available with other solutions. Oracle Exada
もっと考えてみると、Entityに列挙をプロパティとして持つ事で受けるメリットとデメリットのバランスが悪すぎる。 Entityクラスを自動生成する方法がいくつかあるのに、それが素直に使えない。EntityクラスってくらいなのでDB上の型と合わせた方が筋ではないかいのう、などなど。 で、条件分岐などで区分を見るとかだったら、 if(HogeFlag.NOT_HOGE.getValue.equals(fuga)){ //ああだこうだ }とかやればいい訳だし、大した事ではない。 列挙のメリットは、メソッド呼び出し時の引数の型チェックが大きいと思う。だからEntityのプロパティまで律儀に列挙にするメリットはあまりないよなあ。 やっぱWebアプリの場合、需要なさそうだなあ・・・。
よく考えてみたらば、S2Daoで上手い事文字列の区分から列挙に変換してEntityクラスにマッピングしてくれるとベストではないかと。 Dtoは基本的にプレゼンテーション層依存と考えてるので、そこから独立した業務ロジックたるLogicクラスではEntityを見て色々とやるのが筋かと思うわけです。 その時の条件分岐なんかに列挙が使えれば、これは固い。 で、HTMLベースのWebアプリだとUIでは文字列で持つしかないので、Dxoでは逆に列挙から文字列へ変換して、プレゼンテーション層へ渡す。 さて出来るかな・・・。 もっと贅沢云うと、Dxoでは変換しないで、プレゼンテーション層のフレームワークで列挙→文字列変換。うーんこれは要らんかな。 なんで俺はこんなに列挙が好きなんだ?
id:koichikさんにコメント戴きまして。有難う御座居ます。 教わったとおり、こんな感じで。 public Object convert(Object source, Class destClass, ConversionContext context) { if(source ==null){ return null; } String srcStr = source.toString(); for(Object e: destClass.getEnumConstants()){ if(e.toString().equals(srcStr)){ return e; } } return null; }わーできました!getEnumConstantsなんてメソッドがあったとは・・・これでEnum側でgetEnumFromなんてクラスメソッドを実装しないでいけますよ。 標準ではEnum#
DB上の区分をそのままシステム上で文字列定数で扱うのはいやだなあと思って、せっかくのSE5.0なので列挙を使ってみる事にした。 最初、Service層で変換かけてやれと思ったんだけど、これまたせっかくなのでDxoでやってしまおうと思いました。 列挙から文字列へはこんな感じでやってみた。 まず列挙。送信フラグ、とかそんなの。 public enum SendFlag { NOT_SEND("N"), SENDING("S"), SENT("E"); private String value; SendFlag(String value){ this.value = value; } public String getValue(){ return value; } }変換対象となるBeanたち。Hogeでは区分を文字列で持つ。HogeDtoで区分を列挙で持つ。 public class Ho
Java | Timerクラス Timer (Java 2 Platform SE 5.0) 各 Timer オブジェクトと対応するのは、タイマーのタスクをすべて連続して実行するために使用される、単一のバックグラウンドスレッドです。タイマータスクは迅速に実行される必要があります。タイマータスクの完了に時間がかかりすぎると、タイマーのタスク実行スレッドが「占有」されます。これにより後続のタスクの実行が遅れ、違反したタスクの完了時 (完了した場合) に、立て続けに「まとめて」実行されることになります。JavaのTimerクラスの挙動について完全に勘違いしていて、1つのTimerインスタンスに対して登録された複数のTimerTaskでも独立して実行されると思い込んでいた。 実際は、ひとつのTimerTaskが遅延したら、他のTimerTaskの実行が遅れてしまう。 ここに詳しく書かれてる。(
Javaのオンライン学習するサイトJavalaが公開されている。JavalaはWebブラウザでJavaを学習したり、コードの実行結果を確認したりするための環境。タンペレ工科大学で開発されたもので、Java言語の学習を目的としている。リードデベロッパはTimo Lehtonen氏。使用に制限はなく、自由に利用できるとされている。用意されている言語は英語とフィンランド語。 図.1 Javala – Javaラーニング環境 基本的なトピックとしてはJava言語の基礎(基本型、演算子、制御構文、ループ構文、配列)、文字列(編集、比較、結合、トークン化)、オブジェクト(ネーミングとパッケージ、属性、演算、コンストラクタ、リファレンス、生成、削除)、クラス(クラスメソッド、クラス変数、定数、アクセス指定子)、継承(抽象クラス、サブクラス、動的束縛、型変換、比較、インタフェース)、例外(処理、try c
フレームワークは、多くのユーザのニーズに応えられるようにするために、汎用的で、最初から多くの機能が盛り込まれるというのが一般的ではないかと思います。 でも、本当にそうかなぁと私は思います。例えば、私がフレームワークを作るとします。多くのユーザのニーズを初めから把握できるでしょうか。たぶん、できないでしょう。ユーザのニーズを想像して機能を盛り込んでも実際に使われるかどうかは分かりません。それなら、ニーズを確実に把握できない機能は盛り込まないほうが良いでしょう。 ただ、このような考えはフレームワークに限っては落とし穴があります。機能の足りないフレームワークは誰にも使われない可能性があり、フィードバックがないかもしれないのです。 結局事前にどこまで機能を盛り込むかというのは、非常に難しい決断になります。そんなときに、私が使う方法は、「ユーザに使ってみたいと思わせるキラーな機能」は、事前に盛り込み
教育界、技術者コミュニティでJava言語の教育と啓蒙に長年携わってきた筆者が、独自の視点からJavaの面白さを掘り下げていく。(編集部) Java2 SE 1.4とJava SE 5の間には、機能差があり過ぎたため、現場で導入ができずに、これまで移行を見送ってきた読者も多いことでしょう。しかし、今回のJava SE 6(開発コード名:Mustang)の登場で、そろそろ Java2 SE 1.4 から Java SE 5 もしくは 6 へ移行してもいい時期になりました。Java SE 5 が登場したときほどの機能追加はありませんが、Java SE 6 にも注目の機能がいくつかあります。 今回は、注目度が高いパーシステンス(永続化)に関係するものについて紹介しましょう。ただし、本稿執筆時点(2006年12月5日)ではJava SE 6はRC(Release Candidate)版ですので、リリ
(株)オージス総研 Yoji Kanno はじめに WebフレームワークとMVC 2006年現在、JavaでWebアプリケーションを開発する場合は、MVCアーキテクチャを採用するケースがほとんどです。Web開発におけるMVCは、本来のMVCとは若干異なる部分もあり、Web版MVCというべき概念です。しかし、このWeb版MVCアーキテクチャはStrutsの流行ととも本来のMVCよりメジャーになりました。 Web版MVCアーキテクチャの大雑把なコンセプトは以下のとおりです。 画面(View)とロジックの分離 リクエストをハンドリングしてコントローラクラスの呼び出しに変換する機能 画面フロー制御ロジックとビジネスロジックの分離 Web版MVCフレームワークは、上記のようなMVCアーテクチャに基づいた設計と実装を支援もしくは強制します。そして上記の施策により画面開発者とロジック開発者が分離でき、よ
第1回では、XMLをベースとしたプログラミングによって、Flashムービーを生成するFree Flex 2 SDKの特徴について紹介しました。第2回の今回は、実際にFlex 2をインストールして簡単なプログラムをコンパイルする手順を解説します。
最近のWebアプリケーションでは、表現力、操作性、配布の容易性といった観点からリッチクライアント(注1)が注目を集めています。その中でも、オープンな技術に基づいているAjax(注2)は高い人気を誇っており、様々なところで話題をよんでいます。 しかし、Ajaxを用いたWebアプリケーションの開発手法はいまだに発展途上であり、商用の開発レベルには到達していないという見方があります。その要因として表1に示すようなことが考えられます。 JavaScriptの生産性の悪さ Ajaxではプログラミング言語としてJavaScriptを利用しますが、JavaScriptを用いて本格的な開発をしようとすると、他のプログラミング言語に比べてその生産性の悪さが課題となります。 ドキュメント不足 最近ではJavaScriptの生産性の悪さをカバーするためのAjaxライブラリが数多く出てきていますが、その多くはドキ
Javaプログラミングにおいて、クラスの独立性を高め、再利用性の高さ、実装の入れ替えの容易さ、アスペクトの自動的な適用、ホットデプロイなどサーバデベロップメントに欠かせない機能を実現するための基盤技術のひとつにDI(Dependency Injection)がある。DIはインタフェースと実装の完全な分離を目指し、主にDIコンテナと呼ばれる専用の実行環境/フレームワークを通して実現される。 DIコンテナの実装はいくつかあるが、ここでは11日に最新版の2.4.0(2.4.1)がリリースされたSeasar 2.4(S2Container 2.4)を取り上げて紹介したい。Seasar 2.4はThe Seasar Foundationによって開発がおこなわれているプロダクトで、周辺プロダクトの充実や日本語ドキュメントの充実など、国内におけるエンタープライズ向けWebアプリケーションシステム開発用の
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く