※注意 以下の話はSpringAOP3.1.1で確認しています。 SpringAOPで処理が挟み込まれたbeanは実体がProxyクラスなので、beanを使ってメタプログラミングをしたい場合、ちょっと困ることがありました。 困ること例 例えばCommandパターンを利用した以下のようなCommandのComponentがあったとします。 public interface Data { void readData(DataSource source); } public interface Command<T extends Data> { void execute(T data); } @Component public class SampleCommand implements Command<SampleData> { @Override public void execute(Sa