Sping系列第一講 請問各位大佬為何要學spring?

qwer1030274531發表於2020-10-27

為什麼需要學習spring?

  1. 最大程度的簡化了開發

spring是一個非常優秀的java框架,其目標是為了簡化java企業級開發,spring出來已經十幾年了,這期間也一直圍繞著這個目標在進行,像後面需要學習的springmvc、springboot、springcloud,這些技術也都是圍繞著簡化開發的目標在努力,到目前為止已經做的足夠好了,可以說spring除了不能幫助我們實現業務邏輯程式碼之外,其他的事情spring都儘量去幫我們簡化了,使用spring可以幫助我們節約大量開發時間。

不使用spring的情況下,開發一個專案可能需要2個月,用了spring可能1個月都不需要,你說這樣的技術你想學麼?

  1. 大量公司使用

目前99%的公司使用了spring,可以去各大招聘網站看一下,spring算是必備技能,所以一定要掌握。

  1. 頂尖的原始碼

spring框架原始碼設計非常優秀,在java開源專案中可以說是頂級的,目前為止還未發現比spring更優秀的開源專案,所以想提升程式碼能力的,強烈建議多看看spring的原始碼;關於提升程式碼能力的,還可以去看一下jdk的原始碼,也是非常棒的,裡面有很多大師的傑作。

什麼是spring?

spring是一個簡化java企業級開發的一個框架,內部包含了很多技術,比如:控制反轉&依賴注入、面向切面程式設計、spring事務管理、透過spring整合其他框架、springmvc、springboot、springcloud等等,這些都是圍繞簡化開發展開的技術,後面會對每個知識點詳細介紹。

感受一下spring的強大

先讓大家感受一下spring的強大,來激發大家學習的興趣。

我們需要為移動端提供api介面,介面資料以json格式輸出,使用java技術,實現過程大家應該比較熟悉,如下:

  1. 使用idea建立一個web專案

  2. 建立servlet,servlet中寫業務程式碼,組裝需要資料,將資料以json格式輸出

  3. 在web.xml中配置servlet資訊

將專案部署到tomcat中

原生的web專案開發過程都是上面這樣,和業務相關的其實只有第2步,而其他幾個步驟是每個web專案都需要的,像比較大的專案,會有很多web模組,每個模組都需要重複這些1/3/4操作步驟,還是相當繁瑣的,也會耗費大量時間。

如果使用springboot來實現,過程會簡化很多,來感受一下:

開啟idea,點選File->New->Project,如下: anhui/ 在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
輸入專案座標資訊,如下圖: 在這裡插入圖片描述
選擇Web->Spring Web->Spring Boot(2.24)->Next,如下圖:
在這裡插入圖片描述
點選Finish,完成專案的建立,如下圖: 在這裡插入圖片描述
專案結構如下圖: 在這裡插入圖片描述
目前為止我們還未寫一行程式碼,下面我們建立一個類HelloWorldController,程式碼如下:

package com.javacode2018;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/helloWorld")public class HelloWorldController {
    @RequestMapping("/index")
    public String index() {
        return "hello world!";
    }}12345678910111213

大家先不用關注專案中程式碼什麼意思,主要關注一下效果。

下面我們來啟動專案。 hebei/

注意專案中有一個自動生成的類:com.javacode2018.SpringDemo1Application,這個類包含了main方法,說明是可以執行的,我們執行一下,控制檯輸出:

  .   ____          _            __ _ _ /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.2.4.RELEASE)2020-02-03 17:42:52.965  INFO 985848 --- [           main] com.javacode2018.SpringDemo1Application  : Starting SpringDemo1Application on DESKTOP-3OB6NA3 with PID 985848 (E:\spring\spring-demo1\target\classes started by Think in E:\spring\spring-demo1)2020-02-03 17:42:52.968  INFO 985848 --- [           main] com.javacode2018.SpringDemo1Application  : No active profile set, falling back to default profiles: default2020-02-03 17:42:55.440  INFO 985848 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)2020-02-03 17:42:55.450  INFO 985848 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]2020-02-03 17:42:55.451  INFO 985848 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.30]2020-02-03 17:42:55.554  INFO 985848 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext2020-02-03 17:42:55.554  INFO 985848 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 2546 ms2020-02-03 17:42:55.691  INFO 985848 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'2020-02-03 17:42:55.800  INFO 985848 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''2020-02-03 17:42:55.802  INFO 985848 --- [           main] com.javacode2018.SpringDemo1Application  : Started SpringDemo1Application in 3.219 seconds (JVM running for 4.096)2020-02-03 17:43:17.691  INFO 985848 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'2020-02-03 17:43:17.691  INFO 985848 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'1234567891011121314151617181920

開啟瀏覽器,訪問下面地址: changchun/


效果如下圖:
在這裡插入圖片描述
此時我們需要的功能已經實現了,然而到目前為止,只有HelloWorldController程式碼是我們寫的,而我們沒有去建立servlet、將返回的結果以json格式輸出、配置web.xml,沒有將專案釋出到tomcat,沒有去啟動tomcat,而只啟動了一個main方法,是不是非常神奇。建立servlet、透過response將資料以json格式輸出、配置web.xml、釋出專案到tomcat、啟動tomcat等這些操作並不是說不需要,而是springboot內部已經幫我們實現了,對於開發者來說這些都被隱藏了,springboot讓我們更關注業務程式碼的實現,從而最大限度的幫我們提升開發效率,簡化專案的開發過程。

總結

這篇文章主要是讓大家瞭解一下spring是什麼,總的來說spring是一個非常優秀的java框架,這個框架的目標是為了簡化企業級開發中需要用到的各種技術而存在的,後面的文章我們將一一介紹spring是如何做到簡化專案開發的,如何讓我們的專案更容易維護和擴充套件的,敬請期待!


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30239065/viewspace-2730333/,如需轉載,請註明出處,否則將追究法律責任。

相關文章