如何在没有组件扫描的情况下使用spring mvc控制器?

时间:2012-12-05 22:36:09

标签: google-app-engine spring-mvc classloader spring-3 spring-annotations

我使用Spring 3.x MVC @Controller注释。我的servlet.xml有这个条目:

<context:component-scan base-package=”com.my.controllers.package”/>

我的网络应用程序,在谷歌的应用程序引擎上必须初始化&amp;在60secs内启动。由于此类路径扫描,我的花费时间更长(link explains在应用引擎中“减少或避免使用组件扫描”的重要性。

我将以下行添加到我的servlet.xml

    <bean id=”myComponentBean” class=”org.foo.MyComponent”/>

现在,无论是否添加@Controller,控制器都不会被加载。任何网址都会产生404.

问题:

1)那么如何在不依赖于组件扫描的情况下使spring 3.x MVC控制器表现为Web控制器?

2)当我向谷歌提交了一个错误时,我被要求删除“组件扫描”&amp; “使用classLoader.getResource()显式定义所需的类”。如何使用classLoader.getResource()加载mvc控制器?

P.S:应用引擎上的类路径扫描存在已知问题。讨论这将是一个题外话。所以我跳过了细节。

1 个答案:

答案 0 :(得分:0)

你已经做对了。使用<bean class="..." />定义控制器并将<mvc:annotation-driven />放入servlet配置中。就是这样!

<强>更新

并且您可能需要<context:annotation-config />以及某些注释(@EJB@PersistenceContext等)以便由春季处理。