上面是我做两个spring例子时,对web.xml的配置 ,两个例子都成功了,但是成功也要把基理想明白。1 配置1是我做spring和hessian结合的例子,hessian是和rmi差不多的远程对象调用的技术,但在web.xml中加入这段配置后,当resin装载这个工程时,会使hessian的服务器端自动启动,可能上面说的技术有点复杂,但我的问题很简单,为什么加了<servlet>
    <servlet-name>remote</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>后,那个提供hessain服务的类(我自己写的),在没被调用的情况下,自动的启动? 是通过什么原理实现的?
2  第二段配置的问题也大致相同,我想作用是让服务器装载站点的时候,把Timer-Context.xml里面定义的bean也全部载入吧?不知想法对不对,让高手指正

解决方案 »

  1.   

    <servlet>
        <servlet-name>remote</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet>这段配置会在实例化Servlet时加载remote-servlet.xml(这是SpringMVC的命名规则),你的remote-servlet.xml肯定像以下配置吧:
    <bean id="accountService" class="example.AccountServiceImpl">
    </bean><bean name="/AccountService" class="org.springframework.remoting.caucho.HessianServiceExporter">
      <property name="service" ref="accountService"/>
      <property name="serviceInterface" value="example.AccountService"/>
    </bean>
    自然就把你提供的Service Bean 加载了。第2个问题同上,你的想法是正确的。
      

  2.   

    请教楼上,关于第一问,如果<servlet>
        <servlet-name>remote</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet>  <servlet-mapping>
          <servlet-name>terry</servlet-name>
          <url-pattern>/terry/*</url-pattern>
        </servlet-mapping>如果是这样的话,就会自动加载 terry-servlet.xml文件吧?还有一个非技术问题,你最近是冲刺星星吧?到时都见到你,呵呵,
      

  3.   

    1.恩,是的,SpringMVC 命名规则就是这样(我开始也很不适应,不象struts可以指定配置文件),你该多看看SpringReference的。
    2.是啊,红星多好看哩,想了好久了,再说春节也没什么事,哈哈。
      

  4.   

    谢谢。Spring MVC我没学,因为我用的是Webwork,Spring的IOC,AOP,RMI,ORM等我都做过了,呵呵,我是一名java 程序员,工作差不多四年了,专做web方面的项目的,希望交个朋友,我的QQ:14224961