JAVA開發Spring框架還流行嗎?
我從事java開發已經多年了,有幸回答你的問題!
就我的經驗來看,學習JAVA不一定要學spring,你可以開發小應用,你可以做圖形界面,你可以做android開發!但如果你是做服務器開發,那么spring是你必須的選擇!
我JAVA從業經驗中,經歷了SSH,SSM,SpringMVC+M,Spring boot和Spring cloud,等等框架,核心都是Spring,都離不開spring!
spring的妙用有哪些呢?從spring設計伊始就是為了解決對象的創建和管理!后來功能愈發的完善,變成了壟斷性的框架!
1,控制反轉(IOC)的思想,運用依賴注入(DI)的技術,讓我們管理對象的時候再也不用new new new了!防止大量對象的創建!防止組件之間的強依賴!
2,運用了大量的反射,代理,工廠方法,是我們學習編碼技巧的最好模范!
3,AOP(面向切面編程)技術,能夠使用少量代碼搭建完美的的日志管理,權限管理,運行期監控!
4,低侵入性!讓我們可以輕松耦合諸如struts,hibernate,mybatis,redis,memcache,amoeba,actibemq等包括數據層,控制層,緩存,數據中間件,消息中間件的中間件!
5,低耦合特性:通過依賴注入特性,可以借助spring容器創建,管理對象,防止在代碼中硬性注入對象,防止對象混亂!
6,通過@transaction注解,可以實現聲明式事務,在注解中的代碼都可以在一個事務當中,實現最簡單的事務控制,異常回滾!
7,spring源碼使用了諸如工廠,單例,代理,構造者,策略,模板等多種設計模式,是JAVA程序員寫出優良代碼的不二范例!
8,提供大量諸如beanUtils,qstringUtils等優秀工具類!
.....
但是spring 4之前,用spring開發web配置過于繁雜,笨重!讓程序員不用專注于業務代碼開發,spring boot ,spring cloud由此誕生,將spring再次推向輝煌神壇!
spring cloud家族:
1,web開發:使用web-starter將web開發精煉到極其簡單的地步,只需簡單的幾行代碼就可以實現一個服務!
2,服務發現和治理:使用eureka-starter將服務注冊到指定服務器上,對于健康,宕機的服務進行自動管理!
3,熔斷器:Hystrix用于諸如遇到雪崩效應,不斷大量重試等自動服務熔斷!
4,網關:使用zuul實現網關路由!
5,配置集中化管理:使用config實現配置文件的統一管理和熱部署!
.......
可以說spring是JAVA程序員的《葵花寶典》,其中提供的各種大招,能簡化我們的開發,大大提升開發效率!
作為JAVA工程師,你用spring嗎?