3

applicatoncontextawareがどのように機能するかを知る必要があります。インポートリソース(別のapplicationContext)を持つapplicationContext.xmlがあります。スプリングBeanを使用するには、JavaクラスでapplicationContext.xmlを使用する必要があります。

javaクラス内でSpringBeanを取得するために使用されるapplicationcontextawareクラスを知りました。Applicationawareにはsetメソッドとgetapplicationcontext()メソッドがあります。getapplicationcontext()は静的として定義されています。

applicationcontextwareはどのようにapplicationContext.xmlをロードしますか?applicationcontextawareがロードされるようにapplicationContext.xmlの場所を指定する必要があるかどうか。Javaクラスでどのように使用できますか?

4

1 に答える 1

15

あなたはいくつかのことを混乱させています。まず、ApplicationContextAwareクラスについて話しますよね?方法は1つだけです。

setApplicationContext(ApplicationContext applicationContext)

通常、次のように実装します。

public class MyFancyBean implements ApplicationContextAware {

  private ApplicationContext applicationContext;

  void setApplicationContext(ApplicationContext applicationContext) {
    this.applicationContext = applicationContext;
  }

  public void businessMethod() {
    //use applicationContext somehow
  }

}

ApplicationContextただし、直接アクセスする必要はほとんどありません。通常、一度起動すると、Beanが自動的に読み込まれます。

スプリングBeanを使用するには、JavaクラスでapplicationContext.xmlを使用する必要があります。

どうぞ:

ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

にすでに含まれているファイルについて言及する必要はないことに注意してくださいapplicationContext.xml。これで、名前またはタイプで1つのBeanを簡単にフェッチできます。

ctx.getBean("someName")

ContextLoaderListenerSpringを開始するには、@Configurationクラスなどを使用する方法がたくさんあることに注意してください。

于 2012-04-12T17:22:20.763 に答える