Java アノテーションの内部構造と処理機制の解説
アノテーションの技術的な正体
Java におけるアノテーションは、一見するとコメントのように見えますが、実際には特定のインターフェースを継承した特殊な型です。ソースコード上で付与された情報は、コンパイラによってバイトコード内の特定属性として記録されます。
// 定義の実際
public interface SystemConfig extends Annotation {
String environment() default ...
7月26日 03:12 投稿
Javaにおけるリフレクションとアノテーションの活用
リフレクションの基礎
クラス情報の取得には主に以下の3つの手法がある。
public class ReflectionTest {
public void setup() {
// テスト前処理
}
public void demonstrateClassRetrieval() throws ClassNotFoundException {
// 文字列からクラス情報を取得 - 設定ファイル読み込みに適す
Class<?> clazz1 = Class.forName(& ...
7月1日 16:15 投稿
Springフルアノテーション開発ガイド
アノテーション駆動の意義と落とし穴
アノテーション駆動とは、XML の冗長な記述を Java のメタデータで置き換える手法である。設定ファイルが消滅し、IDE の補完やリファクタリング恩恵を受けられる一方、次のようなトレードオフもある。
単純な定義ほどコードが膨張しがち
外部ライブラリの Bean を登録する際、ソース修正ができないため専用のファクトリメソッドが必要 ...
6月28日 18:26 投稿
Javaリフレクションの基本と実践
Javaのリフレクション(Reflection)は、実行時にクラスやオブジェクトに関する情報を動的に取得・操作するための強力な機能です。これにより、コンパイル時には不明なクラスに対しても、そのフィールドやメソッドにアクセスしたり、インスタンスを生成したりできます。
Classオブジェクトの取得方法
リフレクションの中心となるのはjava.lang.Classクラスです。各クラス ...
6月13日 23:04 投稿
SpringアノテーションによるBean管理と依存注入の実践
@Component系アノテーションでBeanを定義する
@Component("dataAccessor")
public class DataAccessorImpl implements DataAccessor {}
@Service
public class BusinessServiceImpl implements BusinessService {}
設定ファイルでは、コンポーネントスキャンによりパッケージ内のBeanを自動検出します:
<context:component-scan base-package="com.example" />
...
5月22日 20:36 投稿