學(xué)Java是一定會(huì)學(xué)spring么?
答案:是的,學(xué)習(xí)Java一定要學(xué)習(xí)Spring框架。
我從2005年開始學(xué)習(xí)并在開發(fā)中使用Spring框架,見證了Spring框架的成長。下面從我的工作體會(huì)說一說 “必須要學(xué)”的原因吧。
Spring框架已經(jīng)成為Java企業(yè)級(jí)開發(fā)的事實(shí)標(biāo)準(zhǔn)

目前在Java企業(yè)級(jí)開發(fā)領(lǐng)域,Spring框架已經(jīng)成為事實(shí)標(biāo)準(zhǔn)了。
Spring已經(jīng)不是單一的框架,而是一個(gè)生態(tài)系統(tǒng)了。包括了以下組件:
- Spring Framework (例如:依賴注入DI、AOP ...)
- Spring Boot
- Spring Cloud
- Spring Data
- Spring Security
- Spring Batch
- Spring Social
從上面可以看出,Spring生態(tài)中已經(jīng)提供了企業(yè)級(jí)開發(fā)中大部分應(yīng)用場(chǎng)景的解決方案。
其中Spring Boot可以幫助我們簡化Spring開發(fā),提高開發(fā)效率;Spring Cloud用于分布式微服務(wù)開發(fā);Spring Security則幫助解決了系統(tǒng)中安全部分的設(shè)計(jì)。
Spring框架本身包含了:
- Dependency Injection依賴注入
- AOP編程(聲明式事務(wù)處理)
- Spring MVC 和 RESTful web服務(wù)框架
- 對(duì)于JDBC, JPA, JMS的基礎(chǔ)支持
學(xué)習(xí)Spring框架不僅能夠?qū)W習(xí)新的思想(IOC,AOP),而且更重要的是能夠解決在企業(yè)開發(fā)中的一些“頭疼”問題,大大簡化開發(fā)。例如:使用AOP簡化事務(wù)處理、使用注解簡化配置等。
學(xué)習(xí)Spring建議的過程是:Spring框架 -> Spring Boot -> Spring Data
學(xué)習(xí)和研究Spring框架是提升開發(fā)能力的重要途徑

學(xué)習(xí)Spring框架過程中,閱讀和研究Spring框架源碼是必經(jīng)之路。
對(duì)于程序員而言,如何提高代碼的開發(fā)能力?其中最重要的方法就是:閱讀框架源代碼,學(xué)習(xí)代碼在設(shè)計(jì)上的優(yōu)雅之處。
框架在設(shè)計(jì)上是體現(xiàn)了“最大限度的重用性、擴(kuò)展性”的。為了達(dá)到這一點(diǎn),代碼設(shè)計(jì)上應(yīng)用了大量設(shè)計(jì)模式、接口化抽象設(shè)計(jì)等。
研究框架代碼能夠幫助程序員提高代碼設(shè)計(jì)能力、提高抽象化分析能力、提高代碼調(diào)試能力等。
Spring框架作為目前Java業(yè)界應(yīng)用最廣泛的框架之一,非常有必要細(xì)心品位。

