0

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

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

我的 webapp,在谷歌的应用引擎上必须在 60 秒内初始化和启动。由于这种类路径扫描,我的需要更长的时间(此链接解释了应用引擎中“减少或避免使用组件扫描”的重要性)。

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

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

现在,无论我是否添加@Controller,控制器都不会被加载。任何 url 都会导致 404。

问题:

1) 那么如何在不依赖共同扫描的情况下使 spring 3.x MVC 控制器充当 Web 控制器?

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

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

4

1 回答 1

0

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

更新:

并且您可能还需要<context:annotation-config />一些注释(@EJB、、@PersistenceContext等)才能由 spring 处理。

于 2012-12-05T23:29:55.290 回答