一說專案就spring,你真的懂spring麼?
1、spring是什麼? 2、spring有什麼作用 3、spring、springMVC區別 4、spring框架的模組
1、spring是什麼?
spring是什麼?
按照網上說的是個容器框架,是什麼開發框架,是個..。。
當我們沒有真正去理解spring之前,這些所謂的理論可能都向天書一樣枯燥難懂。
那現在我們來舉個栗子吧
全自主研發工廠A中車間接到任務,要生產一輛奧迪A6,那在程式設計中就得
1A6 a6=newA6();
但是A6有很多零部件組成,比如他需要四個輪胎,所以要
1LunTai t1=newLunTail(); 2LunTai t2=newLunTail(); 3LunTai t3=newLunTail(); 4LunTai t4=newLunTail();
那輪胎由橡膠製作而成,所以要
1Xiangjiao xj=newXiangjiao();
….
因此,你會發現,造一輛車需要層層巢狀零部件的生產邏輯而成,使得這家工廠需要面面俱到,而且要級級緊扣,每一個步驟都需要等待前一個步驟完成,這就造成這個家工廠效率低下,而在Java程式設計思想中,這就叫做產生了高度耦合。
那工廠要提高效率呢?
這時候有了一家專門生產輪胎等零部件的工廠B向A工廠推銷零部件
兩個工廠一拍即合:
B工廠代理A工廠的零部件生產
這就變成了:
A工廠需要零部件的時候,就從B工廠直接進貨即可
1//進貨輪胎 2LunTai t1=B.getBean("LunTai"); 3//進貨玻璃 4BoLi b1=B.getBean("BoLi");
由此可見,A工廠就依賴於B工廠的零部件,在這spring的思想裡,就是所謂的依賴,也就是說spring是一個容器(B工廠),而我們的專案(A工廠)需要任何的物件,都是從容器中獲取,而不需要關心他是怎麼來的。
現在我們再回過頭來看看理論:
spring是一個容器框架,用來裝javabean(java物件),中間層框架(萬能膠)可以起一個連線作用,比如說把Struts和hibernate粘合在一起運用。簡單來說,Spring是一個輕量級的控制反轉(IoC)和麵向切面(AOP)的容器框架。
這時候就容易理解了:spring是一個Java開發框架,他的核心是spring容器,該容器負責管理spring中的java元件的管理
1ApplicationContext ctx =newClassPathXmlApplicationContext("spring-bean.xml")
上面的程式碼就是例項化一個容器並且裝載spring-bean.xml中的所有bean元件
當業務需要某個物件時,我們不在需要new一個物件
而是直接從容器中獲取,如
1A6 a=ctx.getBean("A6Bean");
2、spring有什麼作用?
根據配置檔案建立及組裝物件之間的依賴關係。
作為OOP(面向物件程式設計)的一個補充,spring的AOP(面向切面程式設計)能對業務程式碼起到解耦的作用。
事務管理不再需要在業務程式碼中實現,而是交給spring管理。
和其他框架的快速無縫整合。
3、spring、springMVC區別
Spring是一個容器,SpringMVC是一個web框架,是Spring的一個模組
4、spring框架的模組
1.Spring容器:提供 Spring 框架的基本功能。核心容器的主要元件是 BeanFactory,它是工廠模式的實現。BeanFactory 使用控制反轉 (IOC/">IOC)模式將應用程式的配置和依賴性規範與實際的應用程式程式碼分開。 2.Spring context:Spring的上下文是一個配置檔案,向 Spring 框架提供上下文資訊。Spring 上下文包括企業服務,例如 JNDI、EJB、電子郵件、國際化、校驗和排程功能。 3.Spring AOP:面向切面程式設計。 4.Spring DAO:JDBC DAO 抽象層提供了有意義的異常層次結構,可用該結構來管理異常處理和不同資料庫供應商丟擲的錯誤訊息。異常層次結構簡化了錯誤處理,並且極大地降低了需要編寫的異常程式碼數量(例如開啟和關閉連線)。Spring DAO 的面向 JDBC 的異常遵從通用的 DAO 異常層次結構。 5.Spring ORM:Spring 框架插入了若干個 ORM 框架,從而提供了 ORM 的物件關係工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有這些都遵從 Spring 的通用事務和 DAO 異常層次結構。 6.Spring Web:Web 上下文模組建立在應用程式上下文模組之上,為基於 Web 的應用程式提供了上下文。所以,Spring 框架支援與 Jakarta Struts 的整合。Web 模組還簡化了處理多部分請求以及將請求引數繫結到域物件的工作。 7.Spring MVC :spring提供的一個web框架。
歡迎工作一到五年的Java工程師朋友們加入Java架構開發:795632998
群內提供免費的Java架構學習資料(裡面有高可用、高併發、高效能及分散式、Jvm效能調優、Spring原始碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!