ApplicationContext タイプ

5. ApplicationContextの種類

Spring は、に適したさまざまなタイプの ApplicationContext コンテナを提供しますdifferent requirementsこれらは の実装ですApplicationContext interfaceそれでは、ApplicationContext の一般的なタイプをいくつか見てみましょう。

5.1. AnnotationConfigApplicationContext

AnnotationConfigApplicationContextクラスは Spring 3.0 で導入されました。
@Configuration、@Component、および JSR-330 メタデータで注釈が付けられたクラスを入力として受け取ることができます。

ApplicationContext context = new AnnotationConfigApplicationContext(AccountConfig.class);
AccountService accountService = context.getBean(AccountService.class);

5.2. AnnotationConfigWebApplicationContext

AnnotationConfigWebApplicationContext は、AnnotationConfigApplicationContext の Web ベースのバリアントです。

このクラスは、web.xml ファイルでSpring のContextLoaderListenerサーブレット リスナーまたは Spring MVC を設定するときに使用できます。DispatcherServlet

さらに、Spring 3.0 以降では、このアプリケーション コンテキスト コンテナをプログラムで構成することもできます。必要なのは、WebApplicationInitializerインターフェイスを実装することだけです。

public class MyWebApplicationInitializer implements WebApplicationInitializer {
    
    

  public void onStartup(ServletContext container) throws ServletException {
    
    
    AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
    context.register(AccountConfig.class);
    context.setServletContext(container);

    // servlet configuration
  }
}

5.3. XmlWebApplicationContext

Web アプリケーションで XML ベースの構成を使用する場合は、XmlWebApplicationContextクラスを使用できます。

実際のところ、このコンテナの構成は AnnotationConfigWebApplicationContext クラスのみに似ています。つまり、web.xml で構成することも、WebApplicationInitializer インターフェイスを実装することもできます。

public class MyXmlWebApplicationInitializer implements WebApplicationInitializer {
    
    

  public void onStartup(ServletContext container) throws ServletException {
    
    
    XmlWebApplicationContext context = new XmlWebApplicationContext();
    context.setConfigLocation("/WEB-INF/spring/applicationContext.xml");
    context.setServletContext(container);

    // Servlet configuration
  }
}

5.4. ファイルシステムXMLアプリケーションコンテキスト

FileSystemXMLApplicationContextクラスを使用して、ファイル システムまたは URL から XML ベースの Spring 構成ファイルをロードします。このクラスは、ApplicationContext をプログラムでロードする必要がある場合に役立ちます。一般に、テスト ハーネスやスタンドアロン アプリケーションは、これに使用できるケースの一部です。

たとえば、この Spring コンテナを作成し、XML ベースの構成用の Bean をロードする方法を見てみましょう。

String path = "C:/myProject/src/main/resources/applicationcontext/account-bean-config.xml";

ApplicationContext context = new FileSystemXmlApplicationContext(path);
AccountService accountService = context.getBean("accountService", AccountService.class);

5.5. ClassPathXmlApplicationContext

XML 構成ファイルをクラスパスからロードしたい場合は、ClassPathXmlApplicationContextクラスを使用できます。FileSystemXMLApplicationContext と同様に、テスト ハーネスだけでなく、JAR 内に埋め込まれたアプリケーション コンテキストにも役立ちます。

このクラスの使用例を見てみましょう。

ApplicationContext context = new ClassPathXmlApplicationContext("applicationcontext/account-bean-config.xml");
AccountService accountService = context.getBean("accountService", AccountService.class);

参考:
The Spring ApplicationContext

おすすめ

転載: blog.csdn.net/weixin_37646636/article/details/133325590