<context:component-scan>
コントローラーに@RequestMapping
注釈を付けてSpring 3.0.5を使用しています。これは機能し、URL はパッケージ スキャンによって登録されます。
しかし、XML 構成で定義されたハンドラー マッピングがあると問題が発生します。注釈は@RequestMapping
取得されなくなりました。
問題を単純なアプリケーションに分離しました。
次のコントローラーがある場合:
package test.pack.age;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class TestController {
@RequestMapping(value="/test")
public String showTestPage() {
return "testPage";
}
}
および次の構成:
<context:component-scan base-package="test.pack.age" />
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
アプリケーションは正常に動作し、URL/test
は登録され、正常に動作します。
18/09/2011 20:02:55 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping INFO Mapped URL path [/test] onto handler 'testController'
18/09/2011 20:02:55 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping INFO Mapped URL path [/test] onto handler 'testController'
しかし、XML にハンドラー マッピングを追加すると、機能しなくなります。このような単純なものでも:
<bean id="handlerMappings" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" />
これは基本的に何もせず、<context:component-scan>
URL を登録しなくなります。
注釈を付けることができない一部の (サード パーティの) コントローラー用に追加のハンドラー マッピングが必要ですが、追加するとすべての@RequestMapping
s が壊れます。
これは正常ですか?バグ?(Spring版は変更できません)
何か不足していますか?