デフォルトでは、すでに2つのコンテキストが必要です。サーブレットにちなんで名付けられたコンテキスト([servlet-name] -context.xml)はWebApplicationContextであり、contextConfigLocationにリストされたファイルから作成され、ContextLoaderListenerによってロードされるメインのApplicationContextの子コンテキストです。子は親で定義された任意のBeanにアクセスできますが、親は子で定義されたBeanにアクセスできないため、Beanの移動を開始する前に、このことに注意してください。
WebApplicationContextには、Web固有の構成(コントローラーやビューなど)のみを保持します。Webに固有でないものはすべて、メインのApplicationContextに入ります。これ自体は常に単一のファイルであり、他の人が提案しているように、レイヤーごとに分類された他のアプリケーションコンテキストxmlファイルをインポートするだけです。
<import resource="classpath:dao-context.xml" />
<import resource="classpath:service-context.xml" />
<import resource="security-context.xml" />
Springは各アプリケーションコンテキストで1つのproperty-placeholder要素のみを許可しますが、各子アプリコンテキストでも1つ持つことができるため、[servlet-name]-context.xmlファイルには常にweb-を含むproperty-placeholderがあります。特定の構成プロパティとメインアプリケーションコンテキストには異なるものがあります。これは通常、すべてのインポートの前に、最上位のファイルで定義します。