我使用 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:应用引擎上的类路径扫描存在已知问题。在这里讨论这将是一个题外话。所以我跳过了细节。