❶ Java核心技術:Spring是什麼
從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。 簡單來說,Spring就是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。 下面從整體上認識一下Spring的主要特徵: *輕量:從大小與開銷兩方面而言Spring都是輕量的。此外,Spring是非侵入式的:使用Spring,我們的類還是pojo類,完全不用繼承和實現Spring的類和介面等。 也就是說,使用Spring的應用中的對象不依賴於Spring的特定類。 *IoC:Spring通過控制反轉技術促進了松耦合。當應用了IoC,一個對象依賴的其它對象會通過被動的方式傳遞進來,而不是這個對象自己創建或者查找依賴對象。可以認為IoC與JNDI相反--不是我們自己控制對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它,這就是DI--依賴注入。 基本上就是對象不用自己動手管理和創建。完全由容器管理,我們只管用就行。 *AOP:Spring提供了面向切面的編程支持,AOP將與程序業務無關的內容分離提取,應用對象只實現它們應該做的--完成業務邏輯--僅此而已。它們並不負責其它的系統級關注點,例如日誌或事務支持。 AOP將與業務無關的邏輯橫切進真正的邏輯中。 *框架:Spring可以將簡單的組件配置、組合成為復雜的應用。在Spring中,應用對象被聲明式地組合,典型地是在一個XML文件里。Spring也提供了很多基礎功能(事務管理、持久化框架集成等等),而用戶就有更多的時間和精力去開發應用邏輯。 所有Spring的這些特徵都能幫助我們夠編寫更干凈、更可管理、並且更易於測試的代碼。它們也為Spring中的各種模塊提供了基礎支持。 *藉助Spring,榮國依賴注入,AOP應用,面向介面編程,來降低業務組件之間的耦合度,增強系統的擴展性。 * 讓已有的技術和框架更加易用。 *利用其對hibernate的SessionFactory、事務管理的封裝,更簡潔的應用hibernate. *Spring並不完全依賴於Spring,開發者可自由選用Spring框架的部分或全部 *利用AOP思想,集中處理業務邏輯,減少重復代碼,構建優雅的解決方案。 *低侵入式設計,代碼污染極低。 Spring致力於J2EE應用的各層的解決方案,而不是僅僅專注於某一層的方案。可以說Spring是企業應用開發的"一站式"選擇,並貫穿表現層、業務層及持久層。 雖然Spring可以一站式解決整個項目問題,但是Spring並不想取代那些已有的框架,而是與它們無縫地整合。Spring可以降低各種框架的使用難度,他提供了對各種優秀框架(如Struts、Hibernate、Hessian、Quartz等)的直接支持。 使用Spring的主要目的是使J2EE易用和促進好的編程習慣,Spring的目標就是讓已有的技術更加易用。 所以Spring的一個重要思想就是整合和兼容。