天天看點

學妹抱怨Spring入門太難了,我用一篇文章徹底征服了她(1)

你好呀,我是沉默王二,一個和黃家駒一樣身高,劉德華一樣顔值的程式員(管你信不信呢)。從兩位偶像的年紀上,你就可以斷定我的碼齡至少在 10 年以上,但實話實說,我一直堅信自己隻有 18 歲,因為我有一顆好學的心。本篇文章就打算通過我和三妹對話的形式來學一學“Spring 的基礎”。

教妹學 Java,沒見過這麼放肆的标題吧?“語不驚人死不休”,沒錯,本篇文章的标題就是這麼酷炫,不然你怎麼會點進來?

我有一個漂亮如花的妹妹(見上圖),她叫什麼呢?我想聰明的讀者能猜得出:沉默王三,沒錯,年方三六。父母正考慮讓她向我學習,做一名正兒八經的 Java 程式員。我期初是反對的,因為程式員這行業容易掉頭發。但家命難為啊,與其反對,不如做點更積極的事情,比如說寫點有趣的文章教教她。

“沒辦法啊,三妹,之前教妹學 Java 系列被噴的體無完膚,沒辦法就停滞了。今天決定走自己的路,讓别人也走自己的路去。”

“我就說嘛,Spring 在 Java 中占據那麼重要的位置,你竟然沒舍得教我,還以為你怕被我拍死在沙灘上呢?”

“嗯,你天真了。”

01、Spring 簡史

“二哥,據說 Spring 前後經曆了 3 個時代,你能給我說說嗎?”

“沒問題啊。”

1)石器時代

也就是 Spring 1.x 時代,一個項目看上去全都是 xml 檔案,裡面配置着各種各樣的 bean,項目越大,xml 檔案就越多,到最後人都感覺不好了,像回到了原始社會。

2)黑鐵時代

也就是 Spring 2.x 時代,終于可以使用注解配置 bean 了,這主要得益于 JDK 1.5 新增的注解功能。想一想,一個小小的注解,比如說 @Component 、@Service 就可以替代一大段的 xml 配置代碼,簡直爽歪歪啊。

使用 xml 檔案配置資料源,使用注解配置業務類,兩種方式相得益彰。

3)黃金時代

也就是 Spring 3.x 至今,可以使用 Java 配置的方式了。那什麼是 Java 配置呢?

其實從形式上看,Java 配置和注解配置沒什麼差別,因為 Java 配置也用的是注解,隻不過,以前用 application-context.xml 配置資料源等資訊,現在用 @Configuration 注解的類配置。

02、Spring 特性

“二哥,據說 Spring 的特性非常豐富,你能給我說說嗎?”

1)核心技術:依賴注入(DI)、面向切面程式設計(AOP)、國際化、資料綁定、類型轉換

2)測試:TestContext 架構、Spring MVC 測試

3)資料通路:事務、JDBC、對象關系映射(ORM)

4)Spring MVC(一個模型 - 視圖 - 控制器「MVC」的 Web 架構)、Spring WebFlux(一個典型非阻塞異步的架構)

5)Spring Integration(面向企業應用內建)

03、Spring 生态

“二哥,據說 Spring 的生态圈非常火熱,你能給我說說嗎?”

1)Spring Boot:當下最火的一個 Spring 項目了,使用它我們可以快速搭建好一個項目

2)Spring Cloud:為分布式開發提供了強大的工具集

3)Spring Security:通過認證和授權保護應用

4)Spring Web Flow:基于 Spring MVC 的流程式 Web 應用

5)等等等等

04、快速搭建 Spring 項目

“二哥,說了那麼多,能不能來個上手項目,讓我瞧瞧 Spring 項目到底長什麼樣子?”

“馬上就來,三妹。”

我推薦使用 Intellij IDEA 作為內建開發工具,因為它插件豐富、功能全面。就我們目前的開發任務來說,社群版足夠用了。

1)打開 IDEA,依次點選 File→New→Project→Maven。

學妹抱怨Spring入門太難了,我用一篇文章徹底征服了她(1)

2)點選 Next 後填寫項目的名稱,然後建立項目。打開 pom.xml 檔案,添加以下内容。

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.2.2.RELEASE</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.6.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>      

dependencies 節點下添加了 Spring 的核心依賴 spring-context,它為 Spring 提供了一個運作時的環境,用以儲存各個對象的狀态。它依賴于 Spring 的四個核心元件:spring-aop、spring-beans、spring-core、spring-expression,也就是說隻要引入 spring-context 的依賴,Maven 會自動引入這四個核心。

build 節點下添加了 Maven 的編譯插件,并且指定了 Java 的編譯版本為 1.8。

3)IDEA 下編輯檔案會自動儲存,是以與此同時,Maven 會将 Spring 的依賴包全部下載下傳到本地倉庫中。

4)稍稍眯一會眼睛,就可以看到 Spring 的依賴包了。

學妹抱怨Spring入門太難了,我用一篇文章徹底征服了她(1)

繼續閱讀