天天看點

什麼是Spring?Spring是什麼?

Spring是一個開源架構,是為了解決企業應用程式開發複雜性而開發的。 從簡單性、可測試性和松耦合的角度而言,不論什麼java應用都能夠從Spring中受益。 簡而言之,Spring就是一個輕量級的控制反轉(IOC)和面向切面(AOP)的容器架構。
從大小和開銷雙方面而言Spring都是輕量的。此外,Spring是非侵入式的,使用Spring,我們的類還是pojo類, 全然不用繼承和實作Spring的類和接口等。也就是說, Spring的應用中不依賴于實作Spirng的特定類。 Spring之中最重要的概念之中的一個。Spring通過控制反轉技術促進了松耦合。當應用了IOC, 一個對象依賴的其它對象會通過被動的方式傳遞進來,而不是這個對象自己建立或者查找對象。能夠覺得IOC與JNDI相反, 不是我們自己控制對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動将依賴傳遞給它,這就是注入依賴,也是控制反轉。 基本上就是對象不用自己手動管理和建立,全然由容器管理,我們僅僅管用就OK了。 Spring提供了面向切面的程式設計支援,AOP将與程式業務無關的内容分離提取出來,而應用對象僅僅實作他們應該做的-即完畢業務邏輯-僅此而已。 應用對象并不負責其它的系統級關注點,比如日志或者事務支援。AOP将與業務無關的邏輯橫切入真正的邏輯中。 Spring包括并管理應用對象的配置和生命周期,在這個意義上它是一個容器,你能夠單獨配置你的每一個bean怎樣被建立,可能基于一個可配置原型(prototype),你的bean能夠建立一個單獨的執行個體或者每次須要時都生成一個新的執行個體,以及它們是怎樣關聯的,同一時候Spring的容器也是輕量級的。 Spring能夠将簡單的元件配置,組合成複雜的應用。在Spring中,應用對象被聲明式的組合。Spring也提供了非常多基礎功能(事務管理、持久化架構內建等等),而使用者就有很多其它的時間和精力去開發應用邏輯。
借助Spring,通過依賴注入、AOP,來減少業務邏輯之間的耦合,增強系統的可擴充性。 整合其它架構,讓已有的技術和架構更加easy使用。比如,利用其對hibernate、SessionFactory、事務管理的封裝,更簡潔的應用架構Hibernate。 使用Spring而并不全然依賴Spring,開發人員能夠自由選用Spring架構的部分或者所有。 利用AOP思想,集中處理業務邏輯,降低反複代碼,建構優雅的解決方式。 低侵入式設計,代碼污染極低。
Spring緻力于J2EE應用的各層的解決方式,而不隻專注于某一層的方案。能夠說Spring是企業應用開發的“一站式”選擇,并貫穿表現層、業務層、持久層。 盡管Spring能夠一站式的解決整個項目問題,可是Spring并不想代替那些已有的架構,而是與他們無縫的整合。Spring能夠減少各種架構的使用難度,它提供了對各種優秀架構-Struts2、HiernateQuartz等,的直接支援。 使用Spring的主要目的是使J2EE易用和促進好的程式設計習慣,Spring的目标就是讓已有的技術更加易用。 是以,Spring的重要思想就是整合和相容。