spring-application-context.xml から Bean 定義を読み取りたい場合は、web.xml ファイルでこれを行います。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
Java 構成クラス (AnnotationConfigWebApplicationContext) を介して Bean 定義を読み取りたい場合は、web.xml でこれを行います。
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextClass</param-name>
<param-value>
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
</param-value>
</init-param>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
org.package.MyConfigAnnotatedClass
</param-value>
</init-param>
</servlet>
アプリケーションで両方を使用するにはどうすればよいですか。構成 xml ファイルと注釈付きクラスの両方から Bean を読み取るようなものです。
AppConfigAnnotatedClass を使用して残りの Bean をインスタンス化/使用しているときに、Spring Bean を xml ファイルにロードする方法はありますか。
これはうまくいきませんでした
XML ファイルは、Bean を次のように定義します。
<bean name="mybean" class="org.somepackage.MyBean"/>
Java クラスはリソースを次のようにインポートします
@ImportResource(value = {"classpath:some-other-context.xml"})
@Configuration
public class MyConfigAnnotatedClass {
@Inject
MyBean mybean;
}
ただし、mybean の値は常に null であり、mybean でメソッドを呼び出すときに nullpointerexception が発生します。