スマートフォン用の表示で見る

POJO

Plain Old Java Object (または Plain Ordinary Java Object) の略語。「昔ながらのただのJavaオブジェクト」といったところか。

Martin Fowlerいわく、2000年9月に彼が作った造語だそうである。

特定のクラスの拡張やインタフェースの実装を求められる (EJB 2.1までの) 複雑なEJBコンポーネントと対比する文脈で使われてる場合が多いようだ。

POJOは必ずしもJavaBeansではないが、事実上、JavaBeansと同義で使われるケースもある。EJB (Enterprise JavaBeans) が、その名前とは裏腹にJavaBeansとは別物だったのに対し、単なるJavaオブジェクト/JavaBeansに回帰しようという動きがあり、POJOという用語もその動きとともに広まった。

このあたりの流れを押さえるには、Spring FrameworkSeasarなどのDIコンテナHibernateOracle TopLinkなどのO/Rマッピングフレームワーク、(Spring Frameworkの主要開発者) Rod Johnsonらによる書籍 "Expert One-on-One J2EE Development without EJB" などを参照。

なお、EJB 3.0では、上記のようなアンチEJBの動きに対応し、EJBアーキテクチャを変更して、POJO O/RマッピングDIコンテナの主要な機能が取り込まれた。これにより、EJBコンポーネントPOJOとして開発できるようになっている。