SpringMVC之@Controller注解

2023-05-16

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注解的学习就到这了!!!!

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringMVC之@Controller注解 的相关文章

随机推荐

  • Android lottie java.lang.IllegalStateException: Missing values for keyframe. 问题解决

    对接lottie时 xff0c 根据Lottie用法 xff0c 加载json xff0c 效果显示不出来 xff0c lottie官网上预览json显示正常 xff0c 大量搜索后 xff0c 发现lottie低版本 xff0c 不适用现
  • 网络编程(四)UDP通信

    UDP 以数据为中心 xff0c 非面向连接 xff0c 不安全数据可能丢失但是效率高 xff0c 例如短信 涉及到的类 DatagramSocket 和 DatagramPacket DatagramSocket 此类表示用来发送和接收数
  • 网络编程(五)Socket通信

    在网络编程 xff08 四 xff09 中学习了udp通信 udp通信是非面向连接的 效率高但不安全的通信 而socket通信是基于tcp协议 xff0c 建立稳定连接的点对点的通信 比如打电话 实时 快速 安全性高 占用系统资源高 效率低
  • 网络编程(六)聊天室代码实现

    先写一个客户端输入数据 xff0c 服务器端处理数据后返回给客户端 客户端 xff1a public static void main String args throws UnknownHostException IOException
  • 设计模式——单例模式

    设计模式包括三大类 创建型模式 xff08 主要用来建立对象 xff09 单例模式 工厂模式 抽象工厂模式 建造者模式 原型模式 结构型模式 适配器模式 桥接模式 装饰模式 组合模式 外观模式 享元模式 代理模式 行为型模式 模板方法模式
  • 破解单例模式

    通过反射和反序列化的手段可以破解几种单例模式 xff08 不包含枚举式 xff09 防止反射破解的方法 xff08 在私有构造方法中手动抛出异常 xff09 防止反序列化的方法 xff08 在所在类定义readreadResolve方法 x
  • 设计模式——工厂模式

    工厂模式 xff1a 实现了创建者和调用者的分离 详细分类 xff1a 简单工厂模式 工厂方法模式 抽象工厂模式 面向对象设计的基本原则 xff1a OCP xff08 开闭原则 xff0c Open Closed Principle xf
  • Spring框架jar包的下载方法

    1 登录 xff1a http repo springsource org libs release local org springframework spring 4 2 0 RELEASE 选择自己需要的版本 打开 2 进入上图中选中
  • list添加一个对象的时候抛出NullPointerException

    出现这个问题的原因在于 当你定义了一个List时 xff0c 但是没有new该list xff0c 也没有在无参构造方法中去new该list xff0c 就会抛出空指针异常 例如 xff1a private static List lt U
  • sql语句注意事项

    例子 xff1a select deptno avg sal count from emp where deptno 61 20 group by deptno having count gt 3 having 进行二次筛选 order b
  • Vue指令之V-if篇

    v if见名知意 xff0c 就和我们在java中的if功能类似 java中if xff08 条件成立 xff09 执行语句 只不过Vue中将java中的执行语句换成了标签快中的内容 在v if中 xff0c 也是类似的 v if 61 3
  • 安装SFTP/FTP插件快速编辑远程服务器文件

    默认的Sublime Text 3 是没有sftp ftp功能的 xff0c 如果编辑器自带ftp势必会提高开发效率 xff0c 虽然Sublime Text 3 默认是没有ftp功能 xff0c 但是安装sftp插件很容易 下面是我安装步
  • Vue指令之v-else篇

    讲完v if篇 xff0c 那么接下里我们就说说v else喽 对比java中的if 条件 条件成立执行的语句 else 条件不成立执行的语句 我相信你的脑瓜子已经转了90度 xff0c 已经完全搞明白Vue的v else该怎么用了 没错
  • Vue指令之v-for篇

    现在接着来扯v for指令 v for顾名思义 xff0c 和java中的for指令一个用法 xff0c 该指令用来循环遍历一个数组 v for 指令需要以 site in sites 形式的特殊语法 xff0c sites 是源数据数组并
  • Vue指令之v-on篇

    说到v on就立马事件 xff0c 最典型的的例子就是按钮的事件我们可以用v on监听事件 xff0c 并对用户的输入进行响应 先举个例子 xff0c 上代码 xff1a lt html gt lt head gt lt meta char
  • Vue指令之v-bind篇

    v bind指令 xff0c bind中文意思是捆绑的意思 xff0c 额 xff0c 捆绑 其绑定的参数在v bind 指令中的maohao xff08 冒号 xff09 后指明 xff0c 没错就是我标红的那个冒号 v bind指令被用
  • 5分钟认识JSON

    JSON JavaScript Object Notation JavaScript 对象表示法 什么是Json Json是java script 对象表示式 json是轻量级的文本数据交换格式 json对立于语言 xff1a json使用
  • JS中的const、var和let的区别

    看项目的时候遇到了const和let不知道什么意思 xff0c 特写此博客给记忆力不好的我 1 const定义的变量不可以修改 xff0c 而且补习初始化 xff08 相当于java中的常量 xff09 const a 61 2 正确 a
  • SpringMVC执行的流程

    先通过一个流程图来介绍请求 响应的完整流程 该图是SpringMVC请求响应的完整流程 工作流程如下 xff1a 1 用户向服务器发送请求 xff0c 请求被前端控制器DispatcherServlet截获 2 DispatcherServ
  • SpringMVC之@Controller注解

    Spring从2 5版开始引入注解 xff0c 本文说的是SpringMVC 4版 64 Controller注解 Controller注解用于指示Spring类的实例是一个控制器 xff0c 相对于实现Controller接口变得更加简单