1. 程式人生 > >【SpringMVC框架】註解的處理器對映器和介面卡配置

【SpringMVC框架】註解的處理器對映器和介面卡配置

下面我們來探討註解的處理器對映器和介面卡

1.註解的處理器對映器和介面卡

在spring3.1之前使用org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping註解對映器。

在spring3.1之後使用org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping註解對映器。

在spring3.1之前使用org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter註解介面卡。

在spring3.1之後使用org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter註解介面卡。

2.配置註解對映器和介面卡。
在springmvc.xml中寫:
<!-- 註解對映器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
<!-- 註解介面卡 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>

<!-- 使用mvc:annotation-driven代替上邊註解對映器和註解介面卡配置 
mvc:annotation-driven預設載入很多的引數繫結方法,
比如json轉換解析器就預設載入了,如果使用mvc:annotation-driven就不用配置上邊的
    RequestMappingHandlerMapping和RequestMappingHandlerAdapter
實際開發時使用mvc:annotation-driven-->
<!--  <mvc:annotation-driven></mvc:annotation-driven>-->

下面的開發可能就與非註解的產生了翻天覆地的變化了
3.開發註解Handler

使用註解的對映器和註解的介面卡。(註解的對映器和註解的介面卡必須配對使用)
ItemsController3:
package cn.edu.hpu.ssm.controller;

import java.util.ArrayList;
import java.util.List;


import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import cn.edu.hpu.ssn.po.Items;

//註解的Handler類
//使用@Controller來標識它是一個控制器
@Controller
public class ItemsController3 {
	
	//商品查詢列表
	//@RequestMapping實現 對queryItems方法和url進行對映,一個方法對應一個url
	//一般建議將url和方法寫成一樣
	@RequestMapping("/queryItems")
	public ModelAndView queryItems()throws Exception{
		
		//呼叫Service查詢資料庫,查詢商品列表,這裡使用靜態資料模擬
		List<Items> itemsList=new ArrayList<Items>();
		//向List中填充靜態資料
		Items items_1 = new Items();
		items_1.setName("聯想筆記本22222222");
		items_1.setPrice(6000f);
		items_1.setDetail("ThinkPad T430 聯想膝上型電腦!");
		
		Items items_2 = new Items();
		items_2.setName("蘋果手機22222222");
		items_2.setPrice(5000f);
		items_2.setDetail("iphone6蘋果手機!");
		
		itemsList.add(items_1);
		itemsList.add(items_2);
		
		//返回ModelAndView
		ModelAndView modelAndView=new ModelAndView();
		//相當於request的setAttribut,在jsp頁面中通過這個來取資料
		modelAndView.addObject("itemsList",itemsList);
		
		//指定檢視
		modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp");


		return modelAndView;
	}
	
	//定義其它方法
	//商品新增
	//商品刪除
}

這個註解的Handler的好處還有可以在類中在新增其他的方法,如商品新增、商品刪除等。

5.3在spring容器中載入Handler
<!-- 對於註解的Handler可以單個配置,
	實際開發中建議使用掃描元件,因為一個一個配bean太麻煩 -->
	<!--  <bean class="cn.edu.hpu.ssm.controller.ItemsController3"></bean>-->


	<!-- 可以掃描controller、service、... 
	這裡讓掃描controller,指定controller的包-->
	<context:component-scan base-package="cn.edu.hpu.ssm.controller"></context:component-scan>


看一下最終的springmvc.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:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
		http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
		http://www.springframework.org/schema/mvc 
		http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
		http://www.springframework.org/schema/context 
		http://www.springframework.org/schema/context/spring-context-3.2.xsd 
		http://www.springframework.org/schema/aop 
		http://www.springframework.org/schema/aop/spring-aop-3.2.xsd 
		http://www.springframework.org/schema/tx 
		http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">
	
	<!-- 對於註解的Handler可以單個配置,
	實際開發中建議使用掃描元件,因為一個一個配bean太麻煩 -->
	<!--  <bean class="cn.edu.hpu.ssm.controller.ItemsController3"></bean>-->


	<!-- 可以掃描controller、service、... 
	這裡讓掃描controller,指定controller的包-->
	<context:component-scan base-package="cn.edu.hpu.ssm.controller"></context:component-scan>
	
	<!-- 註解對映器 -->
	<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>	
	<!-- 註解介面卡 -->
	<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>	
	
	<!-- 使用mvc:annotation-driven代替上邊註解對映器和註解介面卡配置 
	mvc:annotation-driven預設載入很多的引數繫結方法,
	比如json轉換解析器就預設載入了,如果使用mvc:annotation-driven就不用配置上邊的
    RequestMappingHandlerMapping和RequestMappingHandlerAdapter
	實際開發時使用mvc:annotation-driven-->
	<!--  <mvc:annotation-driven></mvc:annotation-driven>-->
	
	<!-- 檢視解析器 
	解析jsp解析,預設使用jstl標籤,classpath下的得有jstl的包
	 -->
	<bean
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	</bean>
</beans>

5.4部署除錯
訪問:http://localhost:8080/springmvcfirst1208/queryItems.action

訪問結果如圖


下一篇總結我們來分析一下springmvc中一些原始碼的分析

相關推薦

SpringMVC框架註解處理器對映介面卡配置

下面我們來探討註解的處理器對映器和介面卡 1.註解的處理器對映器和介面卡 在spring3.1之前使用org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping註解對映器。 在

SpringMVC框架註解處理器對映介面卡

非註解的處理器對映器和介面卡 1.非註解的處理器對映器 之前的處理器對映器: org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping<!-- 配置Handler --> <bea

springmvc(4)--註解處理器對映介面卡

1.我們在springmvc.xml中配置的介面卡和對映器,如果不配置,那麼將會載入預設的對映器和介面卡。 如圖 但是上面兩種註解方式的介面卡和對映器,是已經過時的,是spring2.5的。 ps: 在spring3.1之前使用的註解對映器是:org

springmvc(三)註解處理器對映介面卡

在spring3.1之前使用org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping註解對映器。 在

JavaEE_Mybatis_SpringMVC_Spring_lesson3_註解處理器對映介面卡以及處理器(Controller)

註解的處理器對映器相比與非註解的處理器對映器的優勢 :可以在一個類中寫多個RequestMapping("url")的格式,不需要以實現介面的形式進行開發, 註解:可以在一個類中完成多個action, 非註解:實現介面,一個類中只能寫一個action 另外:註解的處理器

Spring MVC使用篇(三)—— 處理器對映介面卡

文章目錄 1、重溫請求流程 2、Spring MVC預設的註解配置 2.1 在Spring 3.1之前 2.2 在Spring 3.1之後 3、配置註解的處理器對映器和介面卡方式 3.1 第一種配置方式

第九章.處理器對映介面卡

  本次課程在 第八章 基礎上進行的!!!   非註解的處理器對映器和介面卡 一.SimpleUrlHandlerMapping 找到springmvc.xml檔案 找到下面的程式碼進行註釋 <!-- <bean name="/que

框架Springmvc註解對映介面卡

非註解的介面卡 1、簡單的url處理器對映器 <!-- 簡單的url處理器對映器 --> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

SpringMVC框架(1)之(1.2 入門程式—處理器對映處理器介面卡註解方式))

1.DispatcherServlet載入時會預設載入 DispatcherServlet.properties 檔案,目的是為了載入裡面的處理器對映器、處理器介面卡、檢視解析器等各個元件;(所以 springmvc.xml 中 兩種處理器介面卡、兩種處理器介面卡、檢視解析器都可以省略;)

SpringMVC框架(1)之(1.2 入門程式—常用的處理器對映處理器介面卡

1. 程式結構: 建立一個Web專案,匯入 Spring的 jar包: 使用 Spring3.2.0(帶SpringMVC模組) web.xml 檔案中配置 DispatcherServlet前端控制器 (DispatcherServlet作為 springmvc的中央排程

SpringMVC註解處理器對映介面卡配置

非註解的處理器的對映器和介面卡 對映器 1.     一個url的對映器:BeanNameUrlHandlerMapping  org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping 要求編寫的H

SpringMVC框架前端控制器原始碼分析

前端控制器原始碼分析 雖然前面講了一些springmvc的入門程式和配置檔案中對映器和介面卡的配置,但是我們作為程式設計人員,瞭解框架的部分原始碼還是有必要的,比如前端控制器,它是如何通過Servlet的web.xml配置檔案實現攔截並跳轉至DispatcherServle

SpringMVC第四篇——處理器對映處理器介面卡,檢視解析配置

這兩個註解的作用和來源: <mvc:annotation-driven/> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&

SpringMVC對映介面卡

處理器對映器 BeanNameUrlHandlerMapping 功能:尋找Controller            根據url請求去匹配bean的name屬性url,從而獲取Controller  

重溫基礎13.迭代生成器

本文是 重溫基礎 系列文章的第十三篇。 今日感受:每次自我年終總結,都會有各種情緒和收穫。 系列目錄: 【複習資料】ES6/ES7/ES8/ES9資料整理(個人整理) 【重溫基礎】1.語法和資料型別 【重溫基礎】2.流程控制和錯誤處理 【重溫基礎】3.迴圈和

SSM-SpringMVC框架註解處理器介面卡對映

1.非註解的處理器對映器:   1.處理器對映器:(HandlerMapping)    處理器對映器負責根據request請求找到對應Handler處理器及Intercepter攔截器,將他們封裝在

springmvc 的請求流程二:(springmvc 的三大元件之一)處理器對映配置通過處理器對映返回請求鏈的原始碼流程

總結 策略模式,每一種對映器方案都提供了對url 的解析的方案都是不同的 DispatcherServlet 拿著執行鏈去尋找對應的處理器介面卡(HandlerAdapter)為什麼要引入介面卡?因為處理器(Handler)有很多種,DispatcherServlet

SpringMVC筆記第三課 處理器映射+處理器適配器

property lec www 映射 style user err utf 只需要 第二課的例子中,在springmvc.xml中配置使用了第一種處理器映射器和處理器適配器,如下所示。 <!-- 配置第一種處理器映射器 BeanNameUrlH

web框架 Cloud-Admin學習筆記(三)ace-gate閘道

Cloud-Admin專案裡的api閘道器專案是ace-gate,採用的是Spring Cloud Gateway元件,對外提供一個統一的api入口,並實現了api鑑權的功能。 從前端專案的配置裡可以看到,所有的api請求首先都轉到localhost:8765閘道器伺服器  

持久化框架SpringMVC+Spring4+Mybatis3整合,開發簡單Web專案+原始碼下載

      上篇博文我們介紹了mybatis的基本概念與原理,這篇博文我們通過Spring與Mybatis整合,開發一個簡單使用者增刪改查的Web專案。 基本準備工作 1、安裝JDK1.6以上版本,安裝與配置 4、Spring-4.0.0的版本 5、tomacat6