ひがやすを技術ブログ

電通国際情報サービスのプログラマ

2006-06-01から1ヶ月間の記事一覧

自動バインディングの改良

Seasar2.3までは、プロパティの型がインターフェースの場合、自動でDIしていましたが、DTOなどで、プロパティの型がListの場合、「対象のコンポーネントがないよ」のワーニングが出てうざったいとの指摘がありました。 それに対応するために、ComponentAutoRegi…

setterインジェクションの配列サポート

これまで、あるコンポーネントが複数のコンポーネントを必要としたとき、addXxx(Xxx xxx)みたいなメソッドを作って、initMethodタグで追加していました。 ただ実際に開発していると、対象となるクラスを追加するたびに、diconファイルを修正する必要があり、めん…

マージンFX

マージンFXのひまわり証券さん、ニンテンドーDS Lite欲しい!

RailsやChuraのいけてないところ

etc

RailsやChuraのいけてないところ どういう意図でこんなことを書いているか分からないけど、誰もDBから最初に設計するとは言ってないけど。あたりまえに、Goyaにもとづいてますよ。churaの解説としては、HTMLとDBはできているところからはじめているのです。これ…

サンプルアプリ3

doFindEmployee()メソッドの記述からするつもりでしたが、Teedaで画面が表示されるとき、あるいは、サブミットされたときの処理の流れを簡単に説明しておきたいと思います。 画面が表示されるときの流れは次のとおりです。 入力内容がリクエストに復元される。…

Railsの比べて。

ぼくはひがさんは尊敬しているし、何を考えてこういうことをするかもわかる気がするけど、でも決定的にずれてる。RailsがRailsたりうるのはRubyだからで、ほかのものがRailsとくらべてどうこう、ということにほとんど意味はない。 Railsの仕様はほとんど持ち…

サンプルアプリ2

このアプリケーションは、4つの画面で構成されます。 検索条件入力画面 検索結果一覧画面 編集画面 確認画面 最初は、検索条件入力画面です。従業員名か部署を指定することができます。部署はリストから選択します。HTML(employeeSearch.html)は次のようになり…

サンプルアプリ

churaのイメージをつかんでもらうために、単純なサンプルを元に説明します。まだ、実装されていないところもありますが、イメージということで。 このサンプルは、従業員管理のアプリケーションです。S2JSF-exampleに出てくるやつの簡易版です。テーブルは次の2…

Agile Java EE Beyond Rails

EJB3、JSF、JPAというJava EEの標準仕様をベースに、その開発効率をRails以上に高めようという新プロジェクトchuraを立ち上げます。churaの基本構成は、Seasar2.4 + Teeda + KuinaDao + S2Hibernate-JPA + S2Dxo + ツール群という形になります。S2Hibernate-J…

EJB3時代のアーキテクチャパターン 業務ロジックType5

一般的なEJB3時代のアーキテクチャはType4で十分だと思います。でも、EJB3って開発が重いよね。修正するたびに、パッケージング化して、アプリケーションサーバにデプロイしないと、実際に動かしてみることできないって耐え切れない。 でも大丈夫。Seasar2で…

EJB3時代のアーキテクチャパターン 業務ロジックType4

「Serviceに業務ロジックを書く」も「Entityに業務ロジックを書く」も結局問題を抱えています。それを解決するのがこのTypeになります。 Type4:EntityとEntityFacadeに業務ロジックを書く Entityに業務ロジックを書いた場合 業務ロジックで自分と関連の無いE…

EJB3時代のアーキテクチャパターン 業務ロジックType3

「Type2:Serviceに業務ロジックを書く」でも、同じようなロジックが複数のViewに分散する問題は以前未解決のままです。それを解決しようとするのがこのTypeです。 Type3:Entityに業務ロジックを書く Viewごとに業務ロジックを書けば、分散してしまう可能性が…

EJB3時代のアーキテクチャパターン 業務ロジックType2

Type2:Serviceに業務ロジックを書く ManagedBeanに業務ロジックを書くパターンの問題点である「クラスが肥大化してメンテナンスが困難になる」を解決するのが、このTypeで、Actionから業務ロジックを分離して、Serviceで業務ロジックを実装します。ServiceはA…

EJB3時代のアーキテクチャパターン 業務ロジックType1

EJB3、JSF、JPAを使ったときに業務ロジックはどのように実装すればよいのでしょうか。 Type1:ManagedBeanに業務ロジックを書く 最初は、ManagedBean(多くの場合Action)に業務ロジックを書くパターンです。 TransactionServletFilter Action(プレゼンテーショ…

EJB3時代のアーキテクチャパターン

EJB3、JSF、JPAを使ったときのアーキテクチャは、ある一定のパターンで説明できると思っています。私見ですが、説明したいと思います。 まず、プレゼンテーション層であるJSFですが、ページ(View)ごとにManagedBean(s)を定義します。ManagedBeanの作り方は3パ…

HOT deploy

Sessionで管理されているコンポーネントがHOT deployで変更された場合でも、コンポーネントの状態が引き継がれるようにしました。

externalBinding

S2JSFやS2Strutsでは、リクエストのパラメータや属性に入っている内容を、自動的にActionに設定する機能がありますが、それをSeasar2本体に取り込みました。 Actionだけでなく、任意のコンポーネントで、コンポーネント定義のexternalBindingをtrue(デフォルト…

diconファイルの切り替え

diconファイルのツリーに、以下のインクルード構造が含まれているとします。 someapp/allLogic.dicon j2ee.diconここで、「テスト時にはj2ee.diconでなくj2ee_test.diconを使いたい」という要請があったとします。 このためには、j2ee.diconの代わりにj2ee_t…

ExternalContextの機能アップ

etc

Seasar2.4からServlet APIに直接依存しないように、ExternalContextが提供されますが、request, session, application, cookie, request.headerなどにアクセスするときは、Map経由でアクセスできるようになります。使い方は、JSFと同じです。例えば、web.xmlの初…

2chのSeasarスレの住人へ

2chのSeasarスレは、会社から見れないこともあって、基本的にはノータッチでした。ただ、最近、www.seasar.orgのトップページの変更をはじめ、2chの意見を取り込むことによって、良くなったところも結構あるなと思っています。 やはり、名無しで気軽に意見を書き…

Compatibility Testing Scholarship Program

現在、Seasarファウンデーションでは、EJB3, JSF, JPAの実装を進めています。その実装の正確さを客観的に証明するために、TCK(Technology Compatibility Kit)にパスすることを計画しています。 とりあえず、ページはこちら。http://java.sun.com/scholarship/ J…

Seasar2技術推進グループ新体制(コミッタ関連)

etc

ISIDのうちのグループ(Seasar2技術推進グループ)には、実はSeasar2のコミッタが4人!!!います。 私以外の方を紹介しておくと、本間さん、小林さん、大谷さんです。 本間さん、小林さんには、開発パートナーとして、お手伝いいただいています。大谷さんには、今日…