前回の記事でJAX-RSのAPIがCoC (Convention over Configuration)的な思想で作られているのが分かったのではないかと思います。
このCoC的なAPIは必要最低限のコードだけを書けば良い半面、「実はこんなアノテーションをつけるとこんな事ができるんだよー」という隠しコマンドのようなものがたくさん出てきてしまいます。
過去3回にわたり、Spring、MyBatis、RESTEasyという3つのフレームワークを使ってJAX-RS仕様に準拠したRESTfulサービスを構築する方法を解説してきました。まだ読んでない方は以下のリンクからどうぞ。
今回は「その3」で解説しきれなかったデータバインディングについての解説をします。
続きを読む »
コンピュータのメモリ上に表現されたオブジェクトをネットワーク越しにアクセスする際、オブジェクトは何らかのデータ列に変換されてネットワーク上を流れています。そのデータ変換の事をデータバインディングと言ったり、マーシャリングと言ったり、シリアライズと言ったりしますが、それぞれ微妙に異なるニュアンスで使われます。
僕も厳密な定義を言えと言われると自信が無いのですが、概ね次のように使い分けられているようです(あくまで個人的な解釈です)。
こんな感じでしょうか?もうちょっと厳密な定義があったら教えてくださいませ。
Javaや C++などのオブジェクト指向ライブラリには Mapというクラスが提供されています。
Mapというのは、「Key-Valueストア」「連想配列」などと言われるものです。配列のようにたくさんのデータを入れられる箱ようなものですが、配列とは違って、個々のデータに「名前」をつける事ができます。
「Key-Valueストア」とは「Key(箱の名前)を指定するとValue(箱の中身)が取り出せる記憶装置」という意味です。
Action Scriptではオブジェクトに [] という演算子を組み合わせるとこのKey-Valueストアの機能が使えます。次の例を見てみてください。
続きを読む »
今朝、AppleのWWDCというエンジニア向けのイベントで、iCloudという新しいサービスが発表になりました。
iPhoneや iPodを使っている人はご存知だと思いますが、今までiTunesを使って音楽を転送したり写真を転送したりしていたのをインターネット経由で(ただし3G回線ではなくWiFi経由で)できるようになるという便利なサービスです。
個人的には写真を結構撮るので、PhotoStreamという機能に非常に興味があります。
続きを読む »
Flex、というかAction Script 3が始めから持っているデータ型(プリミティブデータ型)はAdobeのサイトによると以下のものがあります。
このうち数値の格納に使うのは int, uint, Numberになります。
ドキュメントによると intは「32ビット符号有り整数」を格納する者で、Javaのintと同じ範囲の値を格納できます。uintは「32ビット符号無し整数」で、Javaには同等の型はありませんが、C言語やC++などの unsigned int と同じ(ただしintが32ビットの場合)と同じものです。Javaでは符号無し整数が扱えないのですが、あると結構便利なんですよね〜。
続きを読む »
Flash Builder で順調に Airアプリを開発していたのに、さていざリリースビルドしてみたらなぜか挙動が変わってしまった、、、。なんて事はありませんか?
僕は先日そんな現象に遭遇し、原因がわかるまで丸一日かかってしまいました。以下そのメモです。
今まではPostgreSQL派だったのですが、Amazon RDSがMySQLだと言う事もあり、最近はバックエンドのRDBMSとしてMySQLを使う機会が多くなってきました。
この間、何気なくDATETIME型のカラムを作って、Java側で new Date()して MyBatisでさくさくと INSERTしてみたのですが、なんかタイムゾーンがずれて格納されているような、、、という問題に遭遇しました。
以下、その際の格闘メモです。
Flash Builder で新しいクラスを作りコードを書いていると、「明らかに間違ったコードを書いているのにFlush Builderがエラーを吐かない」という状況に遭遇する事があります。
画像のように、「hogehoge」という明らかに間違ったコードが書かれているにも関わらず、赤いバッテン×が表示されません。