クラスファイルを直接操作するためのフレームワーク「Javassist」を利用すれば、既にできあがっているクラスを操作し改変することが可能になります。この機能を利用し、XMLファイルからBeanクラスの定義を読み込んでクラスファイルを自動生成する手法について考えてみます。 はじめに Javaのクラスファイルというのは、ソースコードからコンパイルして作成する――これが、長い間の常識でした。しかし昨今、この常識を覆すような技術が次々と登場しています。最近のフレームワークなどを見ていて、ふと不思議に思ったことはありませんか? XMLで必要な情報を定義すると、自動的にそのクラスが生成されたり、既にあるクラスの機能が書き換わったりする。プログラマがソースコードを書くこともなく、必要なクラスが作成されてしまう。そうした「クラスの自動生成」の技術を大幅に進歩させたのが「クラスのバイトコードを直接書き換える
![Javassistでクラスのバイトコードを直接書き換える](https://cdn-ak-scissors.b.st-hatena.com/image/square/036cf97fedc1b958ea5339ba0055d1b9a0353d49/height=288;version=1;width=512/https%3A%2F%2Fcodezine.jp%2Fstatic%2Fimages%2Farticle%2F1355%2F1355_arena.png)