私のアプリケーションは次のように正しく実行されています:
<context:component-scan base-package="com.mypackage"> </context:component-scan>
これを手動の Bean 定義に置き換えると、コントローラーが検出されなくなります。
いずれの場合でも、これらの注釈を使用しています:
<context:annotation-config />
<mvc:annotation-driven />
コントローラーの自動配線されたメソッドが呼び出されますが、Bean はエントリポイントとして宣言されていないため、404 エラーが発生し、アクセスできません。
コンポーネントスキャンの背後にある黒魔術とは?
コントローラーは次のように宣言されます。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- Controller configuration -->
<bean class="com.xx.ControllerClass" />
</beans>