1

私はコアJavaフレームワークに取り組んでいます。クラス内に直接インスタンスを作成したくないため、依存性注入を使用したいと考えています。

インスタンス化するフィールドでカスタム注釈を宣言することを考えています。また、インスタンスを作成してフィールドに注入するコールバック関数があります。

カスタム注釈を作成しようとしました。しかし、宣言された注釈でコールバックを取得する直接的な方法はないようです。それで、私はそのためにクラスをスキャンしようとしていました。しかし、私はこの問題に行き着きました Java Scanning Class for Annotation using Google Reflections

これがこれを達成する正しい方法であるかどうか教えてください。

4

1 に答える 1

1

質問には「Spring」というタグが付けられているため、Spring Framework の Bean アノテーション (@Component / @Service / @Repository / ...)、クラスパス スキャン、および @Autowired を使用できます。

例えば:

spring config xml でクラスパス スキャンをセットアップします。

<context:component-scan base-package="com.mycompany.myapp" />

スキャンする Bean を作成します。Spring コンテナーは、デフォルトのコンストラクターを使用して、この Bean のシングルトン インスタンスを自動的に作成します。

@Repository
public class FooDAO {
  ...
}

DI + 自動配線を使用して上記の DAO インスタンスへの参照を挿入する

@Service
public class FooService {

  @Autowired private FooDAO fooDAO;

  ...
}
于 2013-07-23T22:51:34.173 に答える