如何在不使用注释的情况下创建 Spring 控制器?

How can I create a Spring controller without the use of the annotations?

我正在学习 Spring 核心认证,我对这个问题有一些疑问:

What is the @Controller annotation used for? How can you create a controller without an annotation?

所以我知道 @Controller 注释表示特定的 class 充当控制器的角色。 @Controller 注解充当注解 class 的原型,表明其作用。调度程序扫描此类带注释的 classes 以查找映射方法并检测 @RequestMapping 注释。

所以控制器 class 是这样的:

@Controller
public class AccountController {

    @RequestMapping("/listAccounts")
        public String list(Model model) {...}
    }
}

好的,这对我来说很清楚,但是 创建一个没有注释的控制器的确切含义是什么?我该怎么做?通过XML配置还是怎样?

Tnx

我遇到过这个:Spring MVC 3.1 without annotations?

看来你真的可以创建一个没有注释的控制器(我已经使用 Spring 一年多了,还没有遇到过这样的情况,我不知道为什么会想这样做,当然除了认证问题之外),方法是在 dispatcher-servlet XML 文件中使用特殊配置。

public class AccountController extends MultiActionController {
    public ModelAndView listAccounts() {
        // your code
        return new ModelAndView("listAccounts.bean", "msg", "As you  want")
    }
}

web.xml

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>*.bean</url-pattern>
</servlet-mapping>

调度员-servlet.xml

<bean name="/listAccounts.bean" class="p1.AccountController"></bean>

只是评论为什么有人想以编程方式或通过 XML 配置 Spring 的原因,这是因为在运行时扫描所有文件以查找注释需要一些时间,所以如果我们禁用扫描并手动配置它应用程序将更快地用于服务请求,这在高需求场景中非常重要。