在spring上下文中创建bean

时间:2015-03-06 16:03:40

标签: java spring spring-mvc

<bean id="configuration" class="com.mypackage.util.Configuration" factory-method="getInstance">
<property name="path" value="${path.props.app.dev}"></property>
</bean>

然后我在课堂上有以下内容

Configuration.getInstance();

而spring应用程序上下文加载在另一个类Factory中,如此

private Factory() {
    context = new ClassPathXmlApplicationContext("META-INF/spring.xml");
}

问题是在访问Factory类之前,上下文没有加载,配置对象为路径赋予null,而当访问Factory时,访问该路径属性后,它会给出正确的路径。

请告诉我如何正确地做到这一点?这就是如何在不访问Factory类的情况下使用正确的数据获取我的成员变量路径。

1 个答案:

答案 0 :(得分:0)

假设您使用的是Spring WebMVC。有两种方式:

  1. 将bean配置放入调度程序配置XML(mvc-dispatcher-servlet.xml
  2. 保留spring.xml并在web.xml

    中指定

    <context-param> <param-name>contextConfigLocation</param-name> <param-value>spring.xml</param-value> </context-param>

  3. 在这两种情况下,您将不再需要像Factory这样的课程。此外,由于Spring默认情况下会在单例范围内创建bean,因此您无需为getInstance()类实现com.mypackage.util.Configuration方法。