使用@controller时,Spring内部实现了什么样的控制器

时间:2012-09-12 13:21:39

标签: java spring-mvc

由于Spring2.5版本中有许多类型的控制器,当使用@controller时,Spring内部实现了哪种控制器? spring如何决定实现哪个控制器?

1 个答案:

答案 0 :(得分:2)

简答:如何在内部实施@Controller并不重要。

答案很长:

首先,你应该read the reference manual知道API,它主要基于注释。您没有AbstractControllerSimpleFormController等重要句子:

  

@Controller注释表示特定类服务   控制器的作用。 Spring不要求你扩展任何   控制器基类或引用Servlet 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 " />)。这种方式更容易。