SpringMVC之@Controller注解

Spring从2.5版开始引入注解,本文说的是SpringMVC 4版

@Controller注解 

Controller注解用于指示Spring类的实例是一个控制器,相对于实现Controller接口变得更加简单。而且实现Controller接口只能处理一个单一的请求,而是用@Controller注解可以支持同时处理多个请求动作,更加灵活。

@Controller用于标记一个类,使用他标记的类就是一个SpringMVC Controller对象,即一个控制器类,Spring使用扫描机制查找应用程序中所有基于注解的控制器类。分发处理器会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping注解的方法才是真正处理请求的处理器。

为了保证个spring能找到控制器,必须完成两件事情:

1、在SpringMVC的配置文件的头文件引入spring-context

2、使用<context:component-scan />元素,该元素的功能为:启动包扫描功能,以便注册带有@Controller、@Service、@repository、@Component等注解的类成为Spring的Bean。base-package属性制定了需要扫描的类包,类包及其递归自爆中所有的类都会被处理。配置文件如下所示 :

 <context:component-scan base-package="com.test.controller">

spring将会扫描com.test.controller包及其子类所有的包中的控制器类。

@Controller注解的使用

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class TestController {
    @RequestMapping(value="/testController")
    public String testController(Model model){
       model.addAttribute("message", "hello springMVC");
       return "hello SpringMVC";
    }
}

@Controller表示该类是一个控制器类,@RequestMapping注解用来映射一个请求,value="/testController"表示请求由testController方法进行处理。

springmvc-config.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:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
        http://www.springframework.org/schema/context <!-- 引入spring-context -->
        http://www.springframework.org/schema/context/spring-context-4.2.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd ">

    <!-- 不使用注解的写法
      <bean name="/testController" class="com.springmvc.bean.TestController">
    -->
    <!--使用注解-->
    <context:component-scan base-package="com.springmvc.bean" /> <!-- 启动包扫描功能 -->
    <!-- 视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" />
</beans>

此处没有配置处理器适配器和处理器映射器,当用户没有配置这两项时,Spring会使用默认的处理器映射器和处理器适配器处理请求。

@Controller注解的学习就到这了!!!!

猜你喜欢

转载自blog.csdn.net/Kermit_father/article/details/82956155