Spring Boot 是否很難用?為什麼?

時間 2021-05-11 22:31:29

1樓:ImKAIne

因為網上大部分教程是針對spring的大部分教程沒有對spring boot的前置知識和排查手段做說明。。。要不就是一大坨說明讓你自己去理解,然而大部分人太長不看。。。

事實上spring boot本身得從spring那個啟動註解出發,看附加在那個註解上的註解對應的直譯器是怎麼去做配置發現的,在了解下一些配置發現的約定,就能很快上手了,甚至你自己寫個starter都比各種看文章理解起來要快。。。

2樓:正怒月神

spring boot 比較靈活,約定大於配置。

之前我在專案中發生過真實的例子。而且幾乎和你遇到了一樣的問題。

就是由於我和另乙個同事採用了不同的redis儲存session的方式。

而當那個同事離職後,我找了半天,發覺他是直接在xml配置的redis儲存session。哈哈哈

但是相較spring mvc的xml配置。

我還是會使用spring boot

3樓:

對於只想簡單用個web框架的使用者有點難用,太多約定,網上查個東西各種版本。之前webflux寫個東西差點被同事改回tomcat

4樓:cannel jiang

個人認為乙個好的框架是易學難精,也就是新人很快能helloworld,但功能也足夠強大讓高手能做任何事

spring boot很好地平衡了這兩點

5樓:findone

Spring Boot用來簡化配置,讓使用者能夠專注業務開發。自動化配置帶來一定的黑盒性,在特定應用環境中需要使用者具備專業分析能力。

但整體來說,Spring Boot對於提公升業務開發效率,降低學習曲線,有很大幫助。

6樓:AWP996

springboot主要幫你解決了三件麻煩事,依賴管理,fat jar bootloader,autoconfiguration,可以有再深入學習一下。

7樓:Desmond

「剛開始學Spring Boot 最大的感受就是配置太靈活,以至於產生很多困惑給我一種用起來很不舒服的感覺

解決困惑的第一選擇是看Spring Boot的說明書https://docs.spring.

io/spring-boot/docs/2.2.x-SNAPSHOT/reference/html/

,不是抱怨。

8樓:我滴媽呀

題主在配置方面的疑問其實在原始碼中都能找到。

spring boot 最大的特點就是自動配置。

對於我來說spring boot的不可控是springboot對基礎元件的封裝無法滿足我們的業務需求,這樣我們就要自己寫配置。

spring boot 2.0把啥玩意都自動包進來了,對於初學者不是很友好

但是對於我來說剛用spring boot 2.0的時候還是有點小小的驚喜的

比如,kafka的factory可以不用自己寫,lombok已經有了,資料庫連線池可以直接使用。

autoconfigure這玩意把大部分服務用的元件全部配置好了,我要用什麼元件直接注進來就可以了。

當你理解了springboot的工作原理後,用起來還是挺爽的,就是感覺太笨重了。

就像肯德基全家桶一樣。

9樓:無所謂

spring boot這麼好用,不知道你們怎麼會說難用!!!用了spring boot,真的不想再去看原來的那種spring mvc xml的配置了

10樓:李延輝

因為jedis預設使用的是localhost:6379連線的redis,所以你不配置redis位址可以使用。

第三個配置是連線工廠類,用於i建立redis連線,不配置也會有預設的bean用來建立連線。

spring boot提供了一套預設配置,目的是簡化配置,但是在需要修改預設配置的情況下,可以自由的修改

之所以你會有這種想法,是因為只停留在了用的層面,多看看原始碼了解原理後就會明白,如果你明白spring的bean管理機制,那理解springboot是比較快的

11樓:

一群不怎麼會spring的人在這兒尬黑spring boot……在使用上,spring boot沒有限制任何spring原來的東西,只是搞了點自動配置。具體配置了哪些東西,官網或者jar包裡都寫的清清楚楚。

spring向來以自由著稱,幾乎所有功能都類似「介面+預設實現」,可以任由你繼承覆蓋或者自定義實現接,然後配置一下就可以。

spring甚至因為太自由配置太多而被詬病。

現在竟然被黑成不自由不可控,也是活久見!

順帶回答一下題主的問題:你不用Redis為什麼要在pom上配置上去?用到時自然知道需要配置哪些項。

12樓:取巧者

所有的框架只是跑example都是很難用的。我看過很多的團隊,僅僅是把官方的demo拿過來就是乙個框架了。Spring也是、SpringCloud也是,Grpc也是。

簡單的封裝甚至說個性化的定製是非常有必要的,能夠有效的提高編碼的幸福感。

推薦乙個自己封裝的SpringBoot框架,有興趣可以了解下。

FasterFramework

13樓:

你的感覺和顧慮是對的,spring boot對於簡單業務很適合,複雜的變化就很容易出現神奇的問題

但是工程領域就是這樣的,求的不是最優解,而是最適合當前場景的解

對於簡單業務,盡可能的簡化了啟動成本

而對於複雜業務,當你發展到那個階段的時候,自然也就有能力去自己寫springboot的autoconfig了

springboot遮蔽了很多實現細節,導致啟用簡單但是要真正吃透的學習曲線非常陡峭,主要解決的場景是那種新手階段不需要搞懂,搞懂了的人又不想每次都重複折騰一次

所以最優解是先學會用springboot把業務跑起來,不用專注於環境和依賴,等有了餘力,再慢慢吃透裡面的細節,把spring boot當工具就好,就像spring一樣,沒多少真正完全搞明白,但是能用並且知道特性和大致的原理就行了,我們是工程師,不是科學家

14樓:「已登出」

其實題主說的有道理,在大型專案裡使用Spring boot是有可能發生約定真的大於你想要的配置的情況。

所以一般用boot建議在小型project中使用,即以微服務的方式去組織整個系統的架構。

15樓:秋無跡

感覺沒幾個人回答到點上啊。請了解一下spring boot 的Actuator。它存在的意義之一就是為了解決因全自動裝配帶給人的困惑。

通過Actuator簡單的rest端點,你可以檢視spring boot 偷偷裝配了哪些bean,以及如何裝配的;配置屬性是如何注入到bean的。除此之外,它還能產生各種報告及度量資訊,用於監控應用的健康狀況。

16樓:Gcrawl

springboot有些時候確實覺得很難用,因為他主動幹的事情太多了,而很多時候並不想他幹那麼多事

他主動幹了太多事,而如果不是很了解的話,很容易掉坑里去,同時不想他幹那麼多事的時候,禁掉或者改變某些實現的時候很麻煩

我覺得spring4或者spring5用起來就很不錯了,該有的都有了,同時不會主動幹太多事,可以按需配置

springboot我覺得最好的一點是依賴處理起來比較方便?

17樓:

你需要好好去看看auto-config的配置,而且spring-boot提供了很好的debug去觀察專案啟動的狀態,這個是應該自己反省的,多去看debug日誌auto-config啟動了哪些內容一幕了然

18樓:海淀遊民

看你怎麼選擇了。

傳統的 Spring 容器中,你用 XML 指定什麼才會建立什麼 Bean,後來大家都說實在是太繁瑣了,做個 Hello World 都配禿了頭。於是 Spring 的團隊就讓容器自己搜尋 classpath 按照某個規則建立各種 Bean,做個 Hello World 是容易了,但是做各種定製就需要你去理解內部的 Spring 黑魔法規則。

19樓:王百逸

有個建議:學習spring boot之前先研究spring4。spring4的一些新寫法以及概念,對學習spring boot是非常有幫助的。

如:註解@Configuration在spring4當中就有提出。

強調:如spring-data-redis這個就是spring boot結合jedis/lettuce二次封裝方便我們進行使用。既然你pom匯入就說明你要使用它,spring boot預設就會建立例項,關於密碼埠等一些屬性值會採用預設的,除非使用者定義相關值。

再次說明:spring boot雖然很多配置都有預設的,但結合不同的業務我們都可以去修改這些預設的。如redis鍵值都要序列化,用什麼實現類去序列化我們可以高度diy。

所以就要有配置類(@Configuration),配置過後就會覆蓋預設的。

20樓:小寺川

可能你還沒搞清楚boot是幹嘛的吧。auto config已經說得很明白了。你可以禁用auto config。

否則它會自行新增依賴starter的能力。配置檔案和手動config都會覆蓋預設的自動配置,我認為這個機制正是boot最迷人的地方。

21樓:大清國的驕傲

或許真的只有你覺得難用吧....

可以考慮一下如果沒有他的話,你大部分時間都在做什麼?是否都是在配置或者在配置的路上?哈哈哈哈哈哈嗝

22樓:Andy

不建議看官方文件,除非你有什麼bug解決不了。自學的話,直接去github搜springboot,中中國人喜歡寫這種demo,方便學習。這個應該最好的之一。

自動配置的話,你可以試試用jdk提供的jdbc連線方式連線mysql等資料庫。你就知道自動配置相對配置類,寫配置資訊有多方便。

redis我也寫過用配置類,一般你做集群你需要配置類設定一下。

23樓:

沒明白「甚至是僅僅新增了依賴,並沒有實際使用依賴」到底是用了還是沒有用。而且你都配置了localhost的redis,為什麼說是框架「背地裡」做的事情呢?求解

為何我感覺visual studio很難用?

用慣了jb家的軟體,用vs2019是真難受。c 開發,常用的跳轉,搜尋,格式化,重新命名,git外掛程式,顯示函式所有呼叫要麼沒有,要麼難用的要死。除錯時檔案檢視還不見了。這個宇宙第一ide我不知道怎麼來的,在我體驗看來編碼體驗就比記事本好一點。天哪!居然有人認為VS不好用?先說一下,我會用vs來寫...

為什麼我覺得 Actor 很難用?

是可以完全不用鎖的,至少在使用者態。綁核全走非同步就行了,比如 seastar.io 非要說硬體鎖也是鎖。那就是鑽牛角尖了 Vincent Zhang 題主你說得對,Actor確實就是通過區域性序列解決併發的。併發是Actor必須要解決的問題,而Actor的存在並不僅是為了解決併發。而你說的FP,i...

為什麼很難用手打死蒼蠅?

科代表小哈尼 蒼蠅為什麼難打?反應速度是人的10倍,最快反應只需1 30000秒!談起打蒼蠅,相信大家一定會有相同的感受,那就是蒼蠅反應特別快,它常常能在蒼蠅拍即將落下的時候及時逃脫,為什麼蒼蠅的反應會這麼靈敏?蒼蠅的視覺系統極其發達,身上許多微小器官都與眼睛直接相連,甚至它們的大腦也幾乎全部參與了...