Sping系列第一講 請問各位大佬為何要學spring?
為什麼需要學習spring?
- 最大程度的簡化了開發
spring是一個非常優秀的java框架,其目標是為了簡化java企業級開發,spring出來已經十幾年了,這期間也一直圍繞著這個目標在進行,像後面需要學習的springmvc、springboot、springcloud,這些技術也都是圍繞著簡化開發的目標在努力,到目前為止已經做的足夠好了,可以說spring除了不能幫助我們實現業務邏輯程式碼之外,其他的事情spring都儘量去幫我們簡化了,使用spring可以幫助我們節約大量開發時間。
不使用spring的情況下,開發一個專案可能需要2個月,用了spring可能1個月都不需要,你說這樣的技術你想學麼?
- 大量公司使用
目前99%的公司使用了spring,可以去各大招聘網站看一下,spring算是必備技能,所以一定要掌握。
- 頂尖的原始碼
spring框架原始碼設計非常優秀,在java開源專案中可以說是頂級的,目前為止還未發現比spring更優秀的開源專案,所以想提升程式碼能力的,強烈建議多看看spring的原始碼;關於提升程式碼能力的,還可以去看一下jdk的原始碼,也是非常棒的,裡面有很多大師的傑作。
什麼是spring?
spring是一個簡化java企業級開發的一個框架,內部包含了很多技術,比如:控制反轉&依賴注入、面向切面程式設計、spring事務管理、透過spring整合其他框架、springmvc、springboot、springcloud等等,這些都是圍繞簡化開發展開的技術,後面會對每個知識點詳細介紹。
感受一下spring的強大
先讓大家感受一下spring的強大,來激發大家學習的興趣。
我們需要為移動端提供api介面,介面資料以json格式輸出,使用java技術,實現過程大家應該比較熟悉,如下:
-
使用idea建立一個web專案
-
建立servlet,servlet中寫業務程式碼,組裝需要資料,將資料以json格式輸出
-
在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,程式碼如下:
大家先不用關注專案中程式碼什麼意思,主要關注一下效果。
下面我們來啟動專案。 hebei/
注意專案中有一個自動生成的類:com.javacode2018.SpringDemo1Application,這個類包含了main方法,說明是可以執行的,我們執行一下,控制檯輸出:
開啟瀏覽器,訪問下面地址: 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 有關theano配置問題想請教各位大佬
- 請教各位大佬一個問題,flutter APP 怎麼抓包呢?FlutterAPP
- 為何要學習心理學
- 請問各位大佬,vue如何實現點選按鈕切換圖片的效果?Vue
- 新人,請教一下各位大佬是怎麼找到自己的學習方向的?
- 請問各位大佬,pytest+allure 做引數化,用例名稱如何能不展示灰色部分
- 請教各位大佬,目前在成都,想掙錢,北上廣合適嗎?
- 各位大佬,小弟想學習一下大資料測試,請問有什麼課程可以推薦的麼?大資料
- 有Hive之後,為何還要學mapreduceHive
- 學PHP 為何要加入技術交流群PHP
- 為何要大力發展教學直播系統?
- 請各位大佬幫忙看看我的 Page Object 模式用的對不對Object模式
- 【求助各位大佬】【急】pytest 動態引數化遇到的問題
- 何為程式語言?為什麼要學C語言?C語言
- httprunner 和 pytest 為啥感覺很相似啊, 各位大佬求解惑HTTP
- XGBoost入門系列第一講
- 什麼是Spring Boot?為什麼要學習Spring Boot?Spring Boot
- 【講師系列】CSDN學院講師日常問題參考文件
- 為何要再封裝 AJAX?封裝
- 為何選擇Spring Boot?Spring Boot
- Swoole 系列之二(Websocket 要點講解)Web
- Spring框架系列(2) - Spring簡單例子引入Spring要點Spring框架單例
- 為何Python適合初學者 一般Python要學習多久Python
- 機器學習十講-第一講機器學習
- 求助,大佬請進!
- Spring系列第三講 Spring容器基本使用及原理Spring
- 何為Spring中的配置類?Spring
- 短連結生成專案,歡迎各位大佬PR
- 請求OpenFeign的GET請求時,請求為何失敗?
- 【譯】為何我們要寫super(props)?
- 老師說不懂就要問,我有個疑惑想請教各位
- 想請教一下各位一個介面寫法問題
- 原創:spring入門介紹第一講Spring
- Sping AOP
- 問下各位大佬,appium 的 automationName UIA1 和 UIA2 有什麼區別APPUI
- 開發轉測試想問一下各位在職大佬一些建議
- yapi: 請教各位在使用 YAPI 平臺的大佬, 多個用例的域名不同怎麼處理?API
- 請教各位大佬,Jmeter 怎麼連線 mongodb 資料庫啊,需要用到什麼外掛JMeterMongoDB資料庫