1. 程式人生 > >@Controller及@RestController註解簡單分析及應用場景

@Controller及@RestController註解簡單分析及應用場景

一、@Controller

1.作用:控制器類,處理由DispatcherServlet分發的請求,它把使用者請求的資料經過業務處理層處理之後封裝成一個Model ,然後再把該Model返回給對應的View進行展示

2.相關:需要在spring的配置中指定controller的掃描路徑範圍

<context:component-scan base-package="com.jaychou.*.*"/>  //spring的自動掃描功能

圖片中程式碼的意思大致是,component-scan,掃描將被自動註冊為Spring beans的註釋元件對應的類路徑。

簡單的講,專案裡xml檔案使用了自動掃描配置,那麼java類中如果有使用如下註解:【@Component,@Repository,@Service,@Controller,@RestController,@ControllerAdvice,

@Configuration】將會被spring掃描檢測到,並把這些java類註冊為bean

3.使用方法:標記在類上即可,一般會和@RequestMapping組合使用,即給這個類訪問加入一個根路徑。

@Controller
@RequestMapping(value = "/user")    //根路徑
public class UserAction {
    
    
}

 常用的Controller層最終返回結果:

    2.返回字串路徑。走檢視解析器

二、@RestController 

1.作用:@RestController註解相當於@ResponseBody + @Controller合在一起的作用。

2.相關:

springMVC中檢視解析器相關配置

<!-- 配置檢視解析器 -->  
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
    <!-- 配置檢視解析器的字首和字尾 -->  
    <property name="prefix" value="/WEB-INF/jsp/"></property>  
    <property name="suffix" value=".jsp"></property>  
</bean>  

示例程式碼:【直接使用@RestController 導致返回jsp頁面失敗】

@RestController
@RequestMapping(value = "/user")
public class UserController {


    @RequestMapping(value = "/getUserInfo",method = RequestMethod.GET)
    public String getUserInfo(Map<String, Object> resultMap) {

        User user = new User();
        user.setName("JayChou");
        user.setSex(1);
        user.setAge(25);
        resultMap.put("user",user);
        return "userInfo";
    }

}

上述程式碼,原本是想通過檢視解析器返回到“userInfo.jsp”頁面。但是在Controller層使用此註解,那麼配置的檢視解析器InternalResourceViewResolver不起作用,返回的內容就是Return 裡的內容,即返回“userInfo”。

所以可以根據各自注解的特性,靈活搭配,滿足自己的業務需求。

示例程式碼:【使用@Controller + @RequestMapping註解成功返回jsp頁面】

@Controller
@RequestMapping(value = "/user")
public class UserController {


    @RequestMapping(value = "/getUserInfo",method = RequestMethod.GET)
    public String getUserInfo(Map<String, Object> resultMap) {

        User user = new User();
        user.setName("JayChou");
        user.setSex(1);
        user.setAge(25);
        resultMap.put("user",user);
        return "userInfo";
    }

}

相關推薦

@Controller@RestController註解簡單分析應用場景

一、@Controller 1.作用:控制器類,處理由DispatcherServlet分發的請求,它把使用者請求的資料經過業務處理層處理之後封裝成一個Model ,然後再把該Model返回給對應的View進行展示 2.相關:需要在spring的配置中指定controll

NAT-T技術原理簡單分析應用實驗解析

1.首先我們就IPSEC VPN的部署場景來做簡要分析: 場景1:如圖所示,企業的總部與分支機構分別架設了VPN裝置,分支機構的需求是同步企業內部的業務資料(屬企業內部的機密資訊),那麼就必須確保資料在公網上是安全包密傳遞的。這種情況下我們可以直接用IPSEC

我不想成為鹹魚系列之字串建立方式記憶體的簡單分析

前言:今天不學習,明天變鹹魚 我們都知道建立字串的方式有兩種(基本的建立方式,clone序列化...不考慮) a.String s1 = "asdf"; b.String s2 = new String("asdf"); 我們首先分析下他在記憶體中的分配情況: 對於s1來說他

HIVE 視窗分析函式 應用場景

Sql程式碼   select empno,ename,sum(sal),ntile(5) over (order by sum(sal) desc nulls last) til from emp group by empno,ename;   ROW_NUMBER ROW_NUMBER()從1開

@Controller和@RestController註解區別

@Controller處理Http請求和@RestController處理Http請求 @Controller public class HelloController { @RequestMapping("/index") public String getInde

SQL server安裝連線時出錯分析解決方案……

    在安裝資料庫時提示:“你的系統中沒有要更新的Sql Server軟體……”點選下一步,此時會出現滾動條回滾的現象。這是因為你之前安裝過資料庫,但又將它下載了。(自以為下載的很乾淨。如果你這樣想那就太低估微軟的實力了。不知你是否注意到當你在剛開始安裝的時候,雖然貌似可以更改Sql 的安裝路徑,比如說你安

log buffer日誌管理深入分析效能調整(一)

1. log buffer的概念 1.1 log buffer概述 資料庫在執行過程中,不可避免的要遇到各種能夠導致資料塊庫損壞的情況。比如突然斷電、oracle或者作業系統的程式bug導致資料庫內部邏輯結構損壞、磁碟介質損壞等,都有可能造成資料庫崩潰,從而導致資料丟失的現

傳輸層TCP和UDP的區別分析應用場景

郵件 建立連接 模型 傳遞數據 網絡通訊 num 進行 send 個數 轉載:http://blog.csdn.net/u013777351/article/details/49226101 基本概念: 1: 面向報文 面向報文的傳輸方式是應用層交給UDP多長的報文,U

大資料文字分析應用場景有哪些?

https://www.pmcaff.com/discuss/index/480966354177088?from=related&pmc_param%5Bentry_id%5D=1000000000167873 自問自答一發。之前寫過2篇相關的文章: 【資料運營】在運營中,為什麼文字分析遠比數值

Linux 高精度定時器hrtimers簡單介紹和應用場景

hrtimer:high-resolution kernel timers:   hrtimers的誕生是由於核心開發者在使用過程中發現,原始的定時器kernel/timers.c,已經可以滿足所有場景的,但是在實際的大量測試中發現還是無法滿足所有場景,所以hrtime

簡單排序演算法時間空間複雜度分析應用(7)-希爾排序

希爾排序,屬於插入排序的一種,是直接插入排序的加強版。在希爾排序中引入了步長(gap)的概念,然而在插入排序中,步長預設為1。正如我們直接堆插入排序的分析,資料集合的排列順序對插入排序的效率會由很大的

SAPUI5拓展標準應用Controller原理分析應用實踐

前言 鑑於SAP S/4 HANA的世界性普及,外加中國區雲服務的正式落地,作為SAP 移動端使用者體驗的自有H5框架,也愈加備受關注, 目前SAP大部分產品都是基於SAP Fiori進行定製開發,因此SAP Fiori也提供給客戶大量的標準應用,只需

Spring3 MVC 註解(一)---註解基本配置@controller和 @RequestMapping 常用解釋(轉)

nal context pac 配置 註解 com inf 如何 文件中 一:配置web.xml 1)問題:spring項目中有多個配置文件mvc.xml dao.xml 2)解決:在web.xml中 <init-par

[轉]SpringMVC Controller介紹常用註解

印象 頭信息 out tex ade 縮小 打印 註解 gre 一、簡介 在SpringMVC 中,控制器Controller 負責處理由DispatcherServlet 分發的請求,它把用戶請求的數據經過業務處理層處理之後封裝成一個Model ,然後

bash腳本之函數簡單介紹、應用函數的簡單遞歸調用

bash腳本bash腳本編程--函數 在bash中,函數是由命令和語句結構構成的能夠實現特定功能的集合; 為什麽要在bash中引入函數? 在bash腳本編寫過程中有可能會出現重復且不做任何改變的代碼內容,如果這類內容全靠原始代碼書寫的話不易於排錯和優化;因此我們可以選擇將此類代碼封裝在函數中,在適當的場景中可

(轉)Http狀態碼301和302概念簡單區別企業應用案例

ash BE light div www oldboy dex -i 地址 Http狀態碼301和302的區別及企業應用案例 原文:http://blog.51cto.com/oldboy/1774260 1、什麽是301重定向?   301重定向/跳轉一般,表示本網頁永

java 註解分析自定義註解

var AC IE 原始類型 length JD email 文檔 生成 註解概念:   java提供了一種原程序中的元素關聯任何信息和任何元數據的途徑與方法。 註解分類: 運行機制分類:源碼註解,編譯時註解,運行時註解。  來源分類:JDK的註解,第三方註解,自

iptables 簡單介紹應用 Linux防火墻

報文 防火 哪裏 慢慢 and 假設 命令 class dna iptables 即 Linux防火墻 的簡單介紹及使用 iptables生效位置如下圖:   其中, 網絡防火墻也可以使用一臺啟用了iptables的Linux主機代替; 路由器或集線器等設施在拓撲中省略

【Spring框架】 ? WebApplicationInitializer源碼分析應用

web項目 方法 spring app 應用 加載 大於 filter ext 1、背景   在約定大於配置的大環境下,xml配置文件越來越多的被零配置所取代。還有大部分將原xml中的配置轉為在java類中定義。   而WebApplicationInitializer就可

NFS簡單應用場景簡單的環境搭建

技術 共享 創建 oss -o mage utils ces 防火 一丶基礎環境搭建:關閉防火墻,配置yum源,掛載,更改主機名。(服務端和客戶端都要做)二丶服務端安裝NFS服務,並啟動服務,查看狀態和端口號(我將用戶名不小心寫成了客戶端的意思,請大家註意)三丶服務端創建共