如果我想从 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 时,有没有办法在 xml 文件中加载 spring bean。
这没有用
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。