中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

什么是spring和springMVC

發布時間:2021-11-03 16:42:58 來源:億速云 閱讀:167 作者:iii 欄目:編程語言

本篇內容主要講解“什么是spring和springMVC”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“什么是spring和springMVC”吧!

什么是Spring,為什么你要學習spring?

你第一次接觸spring框架是在什么時候?相信很多人和我一樣,第一次了解spring都不是做項目的時候用到,而是在網上看到或者是聽到過一個叫做spring的框架,這個框架號稱完爆之前的structs和structs2,吸引了不少人的注意。

那么,spring到底有沒有神奇呢,據記載,spring框架出現的時間是在2002年,當時的人們對于繁瑣笨重的EJB框架詬病不已,而且對于structs這類框架也沒有什么好感,這個時候spring從天而,救一大批Java開發者于水火之中。

讓我們先看看百度百科對于spring的定義,Spring框架是由于軟件開發的復雜性而創建的。Spring使用的是基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅僅限于服務器端的開發。從簡單性、可測試性和松耦合性角度而言,絕大部分Java應用都可以從Spring中受益。

◆目的:解決企業應用開發的復雜性

◆功能:使用基本的JavaBean代替EJB,并提供了更多的企業應用功能

◆范圍:任何Java應用

Spring是一個輕量級控制反轉(IoC)和面向切面(AOP)的容器框架。

spring框架解決了程序員在Java開發中長期存在的兩個痛點,那就是bean管理和統一切面,而spring的IOC和AOP恰好解決了這兩個問題。

什么是spring和springMVCcdn.bcebos.com/pic/4610b912c8fcc3cea4c69f4f9245d688d43f2043?x-bce-process=image/watermark,g_7,image_d2F0ZXIvYmFpa2U4MA==,xp_5,yp_5">

其實,spring生態中的內容豐富多彩,除了上圖提到的這些模塊,如今spring已經發展到了springboot和springcloud,為微服務等后端技術棧提供非常優質的解決方案。

如今,spring框架已經成為Java程序員必知必會的內容了,那么如何開始學習spring框架,就成為了我們今天要討論的主題。

首先,先來看看spring基礎部分應該如何學習。

spring基礎

什么是spring和springMVC

spring的核心就是IOC和AOP了,把這兩點搞懂,你就可以說自己學會了spring(然而并不是)

首先來看看IOC,IOC的本質就是把bean的管理交給框架去做,spring自己維護一個bean容器,將所有bean進行統一管理,這樣一來,所有需要用到實例的場景都不需要寫繁瑣且重復的實例化代碼,而是簡單地完成bean聲明和注入依賴就可以了。

舉個簡單的例子。

假如沒有spring的IOC,我們管理實例時可能很不方便,比如下面這段代碼,我們必須要在構造方法里對userService和bookservice進行實例化,并且注入相應的依賴,否則它自己是沒有辦法完成初始化的。甚至,我們在使用controller的時候還要自己對它進行實例化。

class QueryController{
    UserService userService;
    BookService bookservice;
    QueryController() {
        userService = new UserService;
        userService.setUserDao(new UserDap());
        bookservice = new BookService;
        bookservice.setBookDao(new BookDao());
    }
    public static void main(Strings[] args) {
        QueryController queryController = new QueryController();
    }
}

一旦我們使用了spring框架,利用它的依賴注入功能,就可以省掉一大堆事情。如下面的代碼所示。

@Controller
class QueryController{
    @Autowired
    UserService userService;
    @Autowired
    BookService bookservice;
}

當然,我們這里還用了spring提供的注解功能,比如 @Controller這個注解,可以把一個類聲明成一個controller,spring的bean容器對它進行實例化,并且按照controller來進行特殊處理,而@
Autowired這個注解,則可以把userService和bookservice的實例都注入到QueryController里,而這一切,都是因為spring的IOC幫你實現了bean管理。

當然了,userService和bookservice本身也可以把自己對應的dao層依賴(持久層)通過IOC方式進行注入。

說完了IOC,再來看看AOP是如何實現的吧。

AOP的本質是利用動態代理完成統一切面的功能,利用AOP,我們可以把一些橫向的同一類型代碼進行復用,比如登錄攔截,身份校驗,安全管理等等,這些不需要內嵌到業務代碼中,但卻經常要用到的東西,就可以利用AOP來做成一個切面,然后指定需要攔截的方法,AOP通過動態代理會將切面代碼加入到代理對象中,于是你執行業務代碼時,相當于在執行代理對象,就會相應地調用切面方法。

一個最簡單的動態代理實現如下:

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class Main {
    public static void main(String[] args) {
        InvocationHandler handler = new InvocationHandler() {
            @Override
            public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
                System.out.println(method);
                if (method.getName().equals("morning")) {
                    System.out.println("Good morning, " + args[0]);
                }
                return null;
            }
        };
        Hello hello = (Hello) Proxy.newProxyInstance(
            Hello.class.getClassLoader(), // 傳入ClassLoader
            new Class[] { Hello.class }, // 傳入要實現的接口
            handler); // 傳入處理調用方法的InvocationHandler
        hello.morning("Bob");
    }
}
interface Hello {
    void morning(String name);
}

結果將會輸出

public abstract void test.Hello.morning(java.lang.String)
Good morning, Bob

其中InvocationHandler就是代理類的代碼,而AOP就是機遇動態代理來實現的,你可以自由發揮,在代理類里使用你自己想要的代碼。

其實,除了IOC和AOP之外,spring里還有很多我們經常在用的組件和模塊,比如事務,比如JDBC,再比如JMS(消息服務)等等,這些常用的技術組件都被整合到了spring框架中,非常便于我們的使用。

springmvc

講完了spring,接下來就該聊聊springmvc了,

據百度百科介紹,Spring MVC屬于SpringFrameWork的后續產品,已經融合在Spring Web Flow里面。Spring 框架提供了構建 Web 應用程序的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構,從而在使用Spring進行WEB開發時,可以選擇使用Spring的Spring MVC框架或集成其他MVC開發框架,如Struts1(現在一般不用),Struts 2(一般老項目使用)等。

什么是spring和springMVC

作為一個web開發者,光有spring的AOP和IOC恐怕還無法支持你開發出一個頁面,springmvc的作用就是為了幫你實現最高效的web開發,告別structs框架。

簡單來說,springmvc提供了一套典型的mvc開發模式,m也就是model層,負責提供數據模型,以及和數據庫進行交互,而C代表的是controller,負責分發和處理web請求,這里指的是HTTP請求,一般的controller會處理對應url的web請求,并且返回相應的內容,而在返回內容的這部分功能,則需要v也就是view層來提供了,畢竟頁面的渲染是很麻煩的一件事情,返回對象可能是文本,可能是json,也可能是一個html頁面,view層就用于處理這些工作。

MVC的開發模式確實解決了web工程師的很多問題,springmvc作為mvc框架的先行者也很自然地成為了Java中的霸主。

隨著Java技術的發展和更迭,如今Java能做的事情已經遠不止web開發了,現在流行的微服務、中間件很多都是用Java來實現的,而spring生態自然也會隨之發展,由此出現的springboot、springcloud也已經成為了業界的開源框架的標桿。

到此,相信大家對“什么是spring和springMVC”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平舆县| 朔州市| 綦江县| 常山县| 双牌县| 水富县| 巧家县| 老河口市| 禹城市| 临沭县| 呼和浩特市| 安义县| 太仆寺旗| 林甸县| 木兰县| 岫岩| 宜川县| 阳春市| 清水河县| 上高县| 白水县| 景东| 阿合奇县| 南康市| 泰和县| 分宜县| 明光市| 奉贤区| 桦南县| 日土县| 加查县| 炉霍县| 新丰县| 富裕县| 铜川市| 来凤县| 麻城市| 普陀区| 资中县| 定远县| 定日县|