我正在攻读Spring Core认证,我对这个问题有些怀疑:
@Controller注释用于什么?你怎么能创造一个 没有注释的控制器?
所以我知道 @Controller 注释表明特定的类充当控制器的角色。 @Controller 注释充当带注释的类的构造型,指示其角色。调度程序扫描这些带注释的类以查找映射方法,并检测 @RequestMapping 注释。
所以控制器类是这样的:
@Controller
public class AccountController {
@RequestMapping("/listAccounts")
public String list(Model model) {...}
}
}
好的,这对我来说非常清楚,但究竟是什么意思创建一个没有注释的控制器?我该怎么办?通过XML配置还是如何?
TNX
答案 0 :(得分:3)
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>
答案 1 :(得分:1)
我遇到过这个问题:Spring MVC 3.1 without annotations?
看起来你实际上可以创建一个没有注释的控制器(我已经和Spring一起工作了一年多,并且没有遇到这种情况,我不知道为什么一个除了当然的认证问题之外,他们想要做到这一点),并且通过在dispatcher-servlet XML文件中使用特殊配置来实现它。
答案 2 :(得分:0)
仅说明为什么有人希望以编程方式或通过XML配置Spring的原因,这是因为在运行时扫描需要注解的所有文件都需要花一些时间,因此如果我们禁用扫描并手动配置该应用程序可以更快地为请求提供服务,这在高需求场景中非常重要。