質問: 現在上記タグの技術を使ってCSVファイルダウンロード機能を実装しようとしています。 質問があるんですが、 結論から言うと、 **POJOオブジェクトとはなんでしょうか?** 以下サイトを見て、現在OrangeSignalを使ってCSVを実装しようとしているのですが POJOオブジェクトが度々出てきています。 もちろん調べましたが > > Plain Old Java Object (POJO) は、あるJavaオブジェクトがEJB(特にEJB 3より前のEJB)のように特殊なものではなく、ごく普通のJavaオブジェクトであることを強調した名称 > > > といった抽象的な説明しかなく、いまいち掴みきれていません。 もしわかる方がいればアドバイスいただければありがたいです。
回答: 最終的にはやはり「ごく普通のJavaオブジェクトであることを強調した名称」としか言えないものですが、 **POJOではないオブジェクト**とは何なのかを知ると分かってくるかもしれません。 昔のJavaでは、ある処理を行うために、何かクラスを継承するとか特殊な処理を施さないといけない場合がありました。 そこに書いてあるEJBを例にとると更にややこしいことになるのですが、EJBを生成するには単にクラスを継承すれば良いわけでなく、複雑な手続きを経る必要があり、その複雑さから開発の難易度や複雑さを上げてしまう原因となっていました。 その時代を過ぎて、Javaの開発(とくにエンタープライスの開発)から複雑さを緩和させようという動き(Java EE 5のEase of Developmentなど)があり、開発者は特別な手続きをせずに単なるクラス(POJO)を作って渡せば良いようにツール側で何とかしてくれる仕組みが発達しました。 このような経緯から、「ごく普通のJavaオブジェクトである」という表現が必要になり、それがPOJOと呼ばれるようになりました。 ただ定義は少しあいまいなものなので、あまり難しく考えない方が良いかも知れません。 大雑把にいってこういう背景があって生まれた言葉です。 これを踏まえたうえで、改めて他のドキュメントを読んでいただければ少しはご理解いただけるのではないかと思います。