最近刚学 Spring
看到一本书中提到了,可以在服务器启动的时候自动创建 ApplicationContext 的实例。只需要在 web.xml 文件中进行些设置就行。
在 web.xml 中的设置能看明白。 可是我如何获得这个在服务器启动时创建的 ApplicationContext 的实例呢?
请明人指教。还有一个问题 Spring 1 中,Spring 的配置文件中的 <bean> 标签有个 singleton 属性,用来管理 bean 在程序运行期间始终是一个实例。 可是 在 Spring 2 中。我找不到这个属性,这个属性是被取消了,还是被改名称了。如果是取消了,那么我希望能够重复创建 <bean> 所映射的类的实例该如何做呢?分不多,还请大家帮忙谢了~~

解决方案 »

  1.   

    第一个问题web.xml:
    <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
    classpath:/applicationContext.xml
    </param-value>
    </context-param> <listener>
    <listener-class>
    org.springframework.web.context.ContextLoaderListener
    </listener-class>
    </listener> <servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>
    org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>2</load-on-startup>
    </servlet>
    第二个问题:<bean id="accountService" class="com.foo.DefaultAccountService" singleton="true"/>
    改为:
    <bean id="accountService" class="com.foo.DefaultAccountService" scope="singleton"/>
    不过默认就是scope="singleton"参见文档:http://www.redsaga.com/spring_ref/2.0/html/beans.html#beans-factory-scopes-singletonspring的文档非常全,而且很好理解,你的两个问题文档上都有。
      

  2.   

    谢 2 楼了,看了你给的资源
    但是有一点 还是不知道:
    当我以编程的方式创建ApplicationContext实例(即 ApplicationContext ac = new ApplicationContext("..."))。后可以直接获得它的引用( ac ) 以便接下来的操作(例如:ac.getBean(".."))。
    可是当我以声明的方式创建 ApplicationContext 实例 (就是在 web.xml 中进行了2楼朋友的设置)后。如何获得 ApplicationContext 实例的引用,以便下面的操作呢?
      

  3.   

    谢 2 楼了,看了你给的资源
    但是有一点 还是不知道:
    当我以编程的方式创建ApplicationContext实例(即 ApplicationContext ac = new ApplicationContext("..."))。后可以直接获得它的引用( ac ) 以便接下来的操作(例如:ac.getBean(".."))。
    可是当我以声明的方式创建 ApplicationContext 实例 (就是在 web.xml 中进行了2楼朋友的设置)后。如何获得 ApplicationContext 实例的引用,以便下面的操作呢?
      

  4.   

    回复5楼:
    谢   2   楼了,看了你给的资源
    但是有一点   还是不知道:
    当我以编程的方式创建ApplicationContext实例(即   ApplicationContext   ac   =   new   ApplicationContext("..."))。后可以直接获得它的引用(   ac   )   以便接下来的操作(例如:ac.getBean(".."))。
    可是当我以声明的方式创建   ApplicationContext   实例   (就是在   web.xml   中进行了2楼朋友的设置)后。如何获得   ApplicationContext   实例的引用,以便下面的操作呢?当然是通过依赖注入了。就是说你不需要获得任何ApplicationContext的引用,而是要在容器中applicationContext.xml通过声明你要用的类由哪些类组成。这才是spring的正常用法。而new   ApplicationContext只是存在在说明问题的时候。