<bean id="configuration" class="com.mypackage.util.Configuration" factory-method="getInstance">
<property name="path" value="${path.props.app.dev}"></property>
</bean>
然后我班上有以下内容
Configuration.getInstance();
而 spring 应用程序上下文像这样加载到另一个类工厂中
private Factory() {
context = new ClassPathXmlApplicationContext("META-INF/spring.xml");
}
问题是,在访问工厂类之前,上下文不会加载,并且配置对象为路径提供 null,而当访问工厂并在访问该路径属性之后,它会给出正确的路径。
请告诉我如何正确操作?这就是如何在不访问工厂类的情况下获取具有正确数据的成员变量路径。
假设你使用的是Spring WebMVC。有两种方法:
- 将 Bean 配置放入调度程序配置 XML (
mvc-dispatcher-servlet.xml
( -
保留您的
spring.xml
并在web.xml
中指定<context-param> <param-name>contextConfigLocation</param-name> <param-value>spring.xml</param-value> </context-param>
在这两种情况下,您都不再需要像 Factory
这样的类。此外,由于 Spring 默认在单例范围内创建 bean,因此您不需要为 com.mypackage.util.Configuration
类实现 getInstance()
方法。