ANNOTATION和XML兩種配置的差別,爲什麼更喜歡使用ANNOTAION來配置SPRING MVC?

大家好,我是IT修真院深圳分院第十三期學員,一枚正直純潔善良的JAVA程序員。 今天給大家分享一下,修真院官網JAVA任務二里面的知識點:
ANNOTATION和XML兩種配置的差別,爲什麼更喜歡使用ANNOTAION來配置SPRING MVC?

1 背景介紹
web項目的發展歷程:MODEL1,MVC,SPRINGMVC
model1:使用一個組件處理請求、業務、展現等操作。代碼耦合度高、冗餘等問題。

mvc:m:model,業務層,用來處理業務。v:view,視圖層,用來展現數據。c:Controller,控制層,用來進行調度,是業務層和視圖的橋樑,其目的是要將代碼解耦,便於團隊開發。

springmvc:是一種基於Java的實現了Web MVC設計模式的請求驅動類型的輕量級Web框架,它爲控制器和處理程序提供了大量與此模式相關的功能。並且當向 MVC 添加反轉控制,它使應用程序高度解耦,提供了通過簡單的配置更改即可動態更改組件的靈活性。Spring MVC 爲您提供了完全控制應用程序的各個方面的力量。

2.知識剖析
2.1SPRING MVC五大組件
DispatcherServlet:Spring的WebMVC模塊是圍繞DispatcherServlet而設計的。DispatcherServlet 給處理程序分派請求,執行視圖解析,並且處理語言環境和主題解析,此外還爲上傳文件提供支持。

hadlerMapping:包含了請求路徑與模型的對應關係。

Controller(控制器):調用相應的業務層處理業務邏輯

ModelAndView:Controller處理數據封裝在裏面,當然還可能有視圖名。

ViewResolver(視圖解析器):調用真正的視圖對象來生成相應的頁面。

2.2運行原理
Dispatcherservle主要負責接受請求,然後依據HandlerMapping調用相應的控制器,Controller(控制器)處理業務返回ModelAndView,Disparcherservlet又依據相應的視圖解析器(ViewResolver)調用相應的視圖響應。

3.常見問題
1)怎樣配置xml配置和註解配置?
2)xml配置和註解配置的優缺點?
3)爲什麼爲什麼更喜歡使用Annotaion來配置Spring MVC?

4.解決方案:
依據五大組件之間關係,然後xml或者註解配置相應的組件。
1)在web.xml文件下配置DispatcherServlet

注:上面裏面主要是配置DispatcherServlet,啓動tomcat後就會啓動DispatcherServlet,啓動了DispatcherServlet,相應的啓動裏面的Spring容器(注:裏面放的是spring配置文件的路勁,注意一定要放在resource文件夾裏面)。然後裏面是主要接受請求的,/(代表接受所有請求吧)。
2)如上配置文件寫好了就可寫自己的Controller

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

@Controller
public class HelloController  {
    @RequestMapping("/hello")
    public String hello(){
        System.out.println("hello()");
        return "hello";
    }
}

3)在spring文件下配置如下內容
在這裏插入圖片描述
注:<context:component-scan base-package=""/>這個是組件掃描,“ ”裏面是相應的包名(告訴spring容器到相應的包中掃面相應的註解,所以在建造相應servce,dao層的時候一定要在外面在套一層相應的包,這要的話掃描註解不會只相應的層)

相應xml配置:
1)web.xml文件和註解文件是一樣的。
2)編寫Controller:

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloController implements Controller {
    @Override
    public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
        System.out.println("handleRequest()");
        return new ModelAndView("hello");
    }
}

2)spring配置文件:
在這裏插入圖片描述

5.編碼實戰
6.擴展思考:
其實spring mvc是相對於web項目提出來的分層思想,而web項目分爲前端和後端,相對於後端自頂向下分爲controller層,service層,dao層,數據層或者叫持久層。有時候,爲了達到解耦的目的,會在上述基層中間加入響應的接口層,以使得接口與實現分離。在更加大型的網站中,會出現更加複雜的架構,比如dao層與數據層之間要有緩存層,或者訪問壓力增大後,需要使用集羣,負載均衡等高級技術
注:本人初學java者,如有不對敬請指出,謝謝!
7.參考文獻
CSDN、百度百科

8 更多討論
總結:
1)怎樣配置xml配置和註解配置?
xml:根據五大組件相應的配置xml文件裏面的內容。
註解:相應註解對應的組件替換調xml文件的內容,然後添加組件掃描,和mvc註解開啓。
2)xml配置和註解配置的優缺點?
xml配置主要是結構清晰,容易理解,但是配置內容過多,所以工程量大的時候不利於解讀和維護。
註解相對比較靈活,但對於初學者不利於理解,配置內容比較少,便於維護。
3)爲什麼爲什麼更喜歡使用Annotaion來配置Spring MVC?
(1)相對於xml配置配置文件比較少,省事。
(2)註解代碼比較簡單,便於維護。

溫馨提示:本人初學java者,如有不對敬請指出,謝謝!

技能樹.IT修真院

“我們相信人人都可以成爲一個工程師,現在開始,找個師兄,帶你入門,掌控自己學習的節奏,學習的路上不再迷茫”。

這裏是技能樹.IT修真院,成千上萬的師兄在這裏找到了自己的學習路線,學習透明化,成長可見化,師兄1對1免費指導。

快來與我一起學習吧~技能樹.IT修真院

“我們相信人人都可以成爲一個工程師,現在開始,找個師兄,帶你入門,掌控自己學習的節奏,學習的路上不再迷茫”。

這裏是技能樹.IT修真院,成千上萬的師兄在這裏找到了自己的學習路線,學習透明化,成長可見化,師兄1對1免費指導。

快來與我一起學習吧~ http://www.jnshu.com/login/1/28836439

騰訊視頻:https://v.qq.com/x/page/g0710rd7fa6.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章