SpringMVC(3) - 控制器(1) - 通过@Controller定义控制器

参考:https://docs.spring.io/spring/docs/4.3.20.RELEASE/spring-framework-reference/htmlsingle/#mvc-ann-controller

1. 控制器简介

控制器提供对通过服务接口定义的应用程序行为的访问。 控制器解释用户输入并将其转换为由视图表示给用户的模型。 Spring以非常抽象的方式实现了一个控制器,可以创建各种各样的控制器。

Spring 2.5为MVC控制器引入了一个基于注解的编程模型,该模型使用注解,如@RequestMapping、@RequestParam、@ ModelAttribute等。 这个注解支持可用于Servlet MVC和Portlet MVC。 以此样式实现的控制器不必扩展特定的基类或实现特定的接口。 此外,它们不直接依赖于Servlet或Portlet API,可以轻松配置对Servlet或Portlet工具的访问。

@Controller
public class HelloWorldController {
    @RequestMapping("/helloWorld")
    public String helloWorld(Model model) {
        model.addAttribute("message", "Hello World!");
        return "helloWorld";
    }
}

@Controller和@RequestMapping注解允许灵活的方法名称和签名。 在此示例中,该方法接受Model并将视图名称作为String返回,但可以使用各种其他方法参数和返回值。@Controller和@RequestMapping以及许多其他注解构成了Spring MVC实现的基础。

2. 通过@Controller定义一个控制器

@Controller注解指示特定类充当控制器的角色。 Spring不要求扩展任何控制器基类或引用Servlet API。 但是,如果需要,仍可以引用特定于Servlet的功能。

调度程序扫描带这些注解的类以查找映射方法,并检测@RequestMapping注解。

可以使用调度程序上下文中的标准Spring bean定义显式定义带注解的控制器bean;也允许通过扫描组件的方式注入,检测类路径中的组件类,并为它们自动注册bean定义。

要启用此类带注解控制器的自动检测,将组件扫描添加到配置中。如以下XML片段所示:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">

    <context:component-scan base-package="org.springframework.samples.petclinic.web"/>
    <!-- ... -->
</beans>

猜你喜欢

转载自blog.csdn.net/mytt_10566/article/details/84065411
今日推荐