3

Spring2.5版ではコントローラーの種類が多いのですが、@controllerを使った場合Spring内部で実装するコントローラーはどのようなものでしょうか? そして、春はどのコントローラーを実装するかをどのように決定しますか?

4

1 に答える 1

2

簡単な答え: @Controller が内部でどのように実装されているかは問題ではありません。

長い答え:

まず、リファレンス マニュアルを読んで、主にアノテーションに基づく API を理解する必要があります。AbstractControllerなどはありませんSimpleFormController。重要な文:

注釈は、特定の@Controllerクラスがコントローラーの役割を果たすことを示します。Spring では、コントローラーの基本クラスを拡張したり、サーブレット API を参照したりする必要はありません。

「Spring MVC 2.5 の考え方」を放棄し、次@Controllerのような注釈が付けられた Bean を定義する必要があります

@Controller
public class ClinicController {

    private final Clinic clinic;

    @Autowired
    public ClinicController(Clinic clinic) {
        this.clinic = clinic;
    }

    @RequestMapping("/")
    public void welcomeHandler() {
    }

    @RequestMapping("/vets")
    public ModelMap vetsHandler() {
        return new ModelMap(this.clinic.getVets());
    }

}

それらを通常の Bean として使用するだけです ( servlet.xml に追加することにより<bean class="com.example.ClinicController " />)。この方法の方がはるかに簡単です。

于 2012-09-12T13:59:02.590 に答える