A. 談談spring是如何實現的
Spring 是一個開源框架,是為了解決企業應用程序開發復雜性而創建的。框架的主要優勢之一就是其分層架構,分層架構允許您選擇使用哪一個組件,同時為 J2EE 應用程序開發提供集成的框架。
在這篇由三部分組成的 Spring 系列 的第 1 部分中,我將介紹 Spring 框架。我先從框架底層模型的角度描述該框架的功能,然後將討論兩個最有趣的模塊:Spring 面向方面編程(AOP)和控制反轉 (IOC) 容器。接著將使用幾個示例演示 IOC 容器在典型應用程序用例場景中的應用情況。這些示例還將成為本系列後面部分進行的展開式討論的基礎,在本文的後面部分,將介紹 Spring 框架通過 Spring AOP 實現 AOP 構造的方式。
請參閱 下載,下載 Spring 框架和 Apache Ant,運行本系列的示例應用程序需要它們。
Spring 框架
Spring 框架是一個分層架構,由 7 個定義良好的模塊組成。Spring 模塊構建在核心容器之上,核心容器定義了創建、配置和管理 bean 的方式,如圖 1 所示。
圖 1. Spring 框架的 7 個模塊
Spring 框架圖示
組成 Spring 框架的每個模塊(或組件)都可以單獨存在,或者與其他一個或多個模塊聯合實現。每個模塊的功能如下:
* 核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要組件是 BeanFactory,它是工廠模式的實現。BeanFactory 使用控制反轉 (IOC) 模式將應用程序的配置和依賴性規范與實際的應用程序代碼分開。
* Spring 上下文:Spring 上下文是一個配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企業服務,例如 JNDI、EJB、電子郵件、國際化、校驗和調度功能。
* Spring AOP:通過配置管理特性,Spring AOP 模塊直接將面向方面的編程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何對象支持 AOP。Spring AOP 模塊為基於 Spring 的應用程序中的對象提供了事務管理服務。通過使用 Spring AOP,不用依賴 EJB 組件,就可以將聲明性事務管理集成到應用程序中。
* Spring DAO:JDBC DAO 抽象層提供了有意義的異常層次結構,可用該結構來管理異常處理和不同資料庫供應商拋出的錯誤消息。異常層次結構簡化了錯誤處理,並且極大地降低了需要編寫的異常代碼數量(例如打開和關閉連接)。Spring DAO 的面向 JDBC 的異常遵從通用的 DAO 異常層次結構。
* Spring ORM:Spring 框架插入了若干個 ORM 框架,從而提供了 ORM 的對象關系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有這些都遵從 Spring 的通用事務和 DAO 異常層次結構。
* Spring Web 模塊:Web 上下文模塊建立在應用程序上下文模塊之上,為基於 Web 的應用程序提供了上下文。所以,Spring 框架支持與 Jakarta Struts 的集成。Web 模塊還簡化了處理多部分請求以及將請求參數綁定到域對象的工作。
* Spring MVC 框架:MVC 框架是一個全功能的構建 Web 應用程序的 MVC 實現。通過策略介面,MVC 框架變成為高度可配置的,MVC 容納了大量視圖技術,其中包括 JSP、Velocity、Tiles、iText 和 POI。
Spring 框架的功能可以用在任何 J2EE 伺服器中,大多數功能也適用於不受管理的環境。Spring 的核心要點是:支持不綁定到特定 J2EE 服務的可重用業務和數據訪問對象。毫無疑問,這樣的對象可以在不同 J2EE 環境 (Web 或 EJB)、獨立應用程序、測試環境之間重用。
回頁首
IOC 和 AOP
控制反轉模式(也稱作依賴性介入)的基本概念是:不創建對象,但是描述創建它們的方式。在代碼中不直接與對象和服務連接,但在配置文件中描述哪一個組件需要哪一項服務。容器 (在 Spring 框架中是 IOC 容器) 負責將這些聯系在一起。
在典型的 IOC 場景中,容器創建了所有對象,並設置必要的屬性將它們連接在一起,決定什麼時間調用方法。下表列出了 IOC 的一個實現模式。
類型 1 服務需要實現專門的介面,通過介面,由對象提供這些服務,可以從對象查詢依賴性(例如,需要的附加服務)
類型 2 通過 JavaBean 的屬性(例如 setter 方法)分配依賴性
類型 3 依賴性以構造函數的形式提供,不以 JavaBean 屬性的形式公開
Spring 框架的 IOC 容器採用類型 2 和類型3 實現。
面向方面的編程
面向方面的編程,即 AOP,是一種編程技術,它允許程序員對橫切關注點或橫切典型的職責分界線的行為(例如日誌和事務管理)進行模塊化。AOP 的核心構造是方面,它將那些影響多個類的行為封裝到可重用的模塊中。
AOP 和 IOC 是補充性的技術,它們都運用模塊化方式解決企業應用程序開發中的復雜問題。在典型的面向對象開發方式中,可能要將日誌記錄語句放在所有方法和 Java 類中才能實現日誌功能。在 AOP 方式中,可以反過來將日誌服務模塊化,並以聲明的方式將它們應用到需要日誌的組件上。當然,優勢就是 Java 類不需要知道日誌服務的存在,也不需要考慮相關的代碼。所以,用 Spring AOP 編寫的應用程序代碼是鬆散耦合的。
AOP 的功能完全集成到了 Spring 事務管理、日誌和其他各種特性的上下文中。
回頁首
IOC 容器
Spring 設計的核心是 org.springframework.beans 包,它的設計目標是與 JavaBean 組件一起使用。這個包通常不是由用戶直接使用,而是由伺服器將其用作其他多數功能的底層中介。下一個最高級抽象是 BeanFactory 介面,它是工廠設計模式的實現,允許通過名稱創建和檢索對象。BeanFactory 也可以管理對象之間的關系。
BeanFactory 支持兩個對象模型。
* 單態 模型提供了具有特定名稱的對象的共享實例,可以在查詢時對其進行檢索。Singleton 是默認的也是最常用的對象模型。對於無狀態服務對象很理想。
* 原型 模型確保每次檢索都會創建單獨的對象。在每個用戶都需要自己的對象時,原型模型最適合。
bean 工廠的概念是 Spring 作為 IOC 容器的基礎。IOC 將處理事情的責任從應用程序代碼轉移到框架。正如我將在下一個示例中演示的那樣,Spring 框架使用 JavaBean 屬性和配置數據來指出必須設置的依賴關系。
BeanFactory 介面
因為 org.springframework.beans.factory.BeanFactory 是一個簡單介面,所以可以針對各種底層存儲方法實現。最常用的 BeanFactory 定義是 XmlBeanFactory,它根據 XML 文件中的定義裝入 bean,如清單 1 所示。
清單 1. XmlBeanFactory
BeanFactory factory = new XMLBeanFactory(new FileInputSteam("mybean.xml"));
在 XML 文件中定義的 Bean 是被消極載入的,這意味在需要 bean 之前,bean 本身不會被初始化。要從 BeanFactory 檢索 bean,只需調用 getBean() 方法,傳入將要檢索的 bean 的名稱即可,如清單 2 所示。
清單 2. getBean()
MyBean mybean = (MyBean) factory.getBean("mybean");
每個 bean 的定義都可以是 POJO (用類名和 JavaBean 初始化屬性定義) 或 FactoryBean。FactoryBean 介面為使用 Spring 框架構建的應用程序添加了一個間接的級別。
回頁首
IOC 示例
理解控制反轉最簡單的方式就是看它的實際應用。在對由三部分組成的 Spring 系列 的第 1 部分進行總結時,我使用了一個示例,演示了如何通過 Spring IOC 容器注入應用程序的依賴關系(而不是將它們構建進來)。
我用開啟在線信用帳戶的用例作為起點。對於該實現,開啟信用帳戶要求用戶與以下服務進行交互:
* 信用級別評定服務,查詢用戶的信用歷史信息。
* 遠程信息鏈接服務,插入客戶信息,將客戶信息與信用卡和銀行信息連接起來,以進行自動借記(如果需要的話)。
* 電子郵件服務,向用戶發送有關信用卡狀態的電子郵件。
回頁首
三個介面
對於這個示例,我假設服務已經存在,理想的情況是用鬆散耦合的方式把它們集成在一起。以下清單顯示了三個服務的應用程序介面。
清單 3. CreditRatingInterface
public interface CreditRatingInterface {
public boolean (ICustomer iCustomer);
}
清單 3 所示的信用級別評定介面提供了信用歷史信息。它需要一個包含客戶信息的 Customer 對象。該介面的實現是由 CreditRating 類提供的。
清單 4. CreditLinkingInterface
public interface CreditLinkingInterface {
public String getUrl();
public void setUrl(String url);
public void linkCreditBankAccount() throws Exception ;
}
信用鏈接介面將信用歷史信息與銀行信息(如果需要的話)連接在一起,並插入用戶的信用卡信息。信用鏈接介面是一個遠程服務,它的查詢是通過 getUrl() 方法進行的。URL 由 Spring 框架的 bean 配置機制設置,我稍後會討論它。該介面的實現是由 CreditLinking 類提供的。
清單 5. EmailInterface
public interface EmailInterface {
public void sendEmail(ICustomer iCustomer);
public String getFromEmail();
public void setFromEmail(String fromEmail) ;
public String getPassword();
public void setPassword(String password) ;
public String getSmtpHost() ;
public void setSmtpHost(String smtpHost);
public String getUserId() ;
public void setUserId(String userId);
}
EmailInterface 負責向客戶發送關於客戶信用卡狀態的電子郵件。郵件配置參數(例如 SMPT 主機、用戶名、口令)由前面提到的 bean 配置機制設置。Email 類提供了該介面的實現。
回頁首
Spring 使其保持鬆散
這些介面就位之後,接下來要考慮的就是如何用鬆散耦合方式將它們集成在一起。在 清單 6 中可以看到信用卡帳戶用例的實現。
注意,所有的 setter 方法都是由 Spring 的配置 bean 實現的。所有的依賴關系 (也就是三個介面)都可以由 Spring 框架用這些 bean 注入。createCreditCardAccount() 方法會用服務去執行其餘實現。在 清單 7 中可以看到 Spring 的配置文件。我用箭頭突出了這些定義。
回頁首
運行應用程序
要運行示例應用程序,首先必須 下載 Spring 框架 及其所有依賴文件。接下來,將框架釋放到(比如說)磁碟 c:\,這會創建 C:\spring-framework-1.2-rc2 (適用於當前發行版本) 這樣的文件夾。在繼續後面的操作之前,還必須下載和釋放 Apache Ant。
接下來,將源代碼釋放到文件夾,例如 c:\ 盤,然後創建 SpringProject。將 Spring 庫(即 C:\spring-framework-1.2-rc2\dist 下的 spring.jar 和 C:\spring-framework-1.2-rc2\lib\jakarta-commons 下的 commons-logging.jar)復制到 SpringProject\lib 文件夾中。完成這些工作之後,就有了必需的構建依賴關系集。
打開命令提示符,將當前目錄切換到 SpringProject,在命令提示符中輸入以下命令:build。
這會構建並運行 CreateCreditAccountClient 類,類的運行將創建 Customer 類對象並填充它,還會調用 CreateCreditCardAccount 類創建並鏈接信用卡帳戶。CreateCreditAccountClient 還會通過 裝入 Spring 配置文件。裝入 bean 之後,就可以通過 getBean() 方法訪問它們了,如清單 8 所示。
清單 8. 裝入 Spring 配置文件
appContext =
new (new String[] {
"springexample-creditaccount.xml"
});
creditCardAccount =
()
appContext.getBean("createCreditCard");
回頁首
結束語
在這篇由三部分組成的 Spring 系列 的第一篇文章中,我介紹了 Spring 框架的基礎。我從討論組成 Spring 分層架構的 7 個模塊開始,然後深入介紹了其中兩個模塊:Spring AOP 和 IOC 容器。
由於學習的最佳方法是實踐,所以我用一個工作示例介紹了 IOC 模式 (像 Spring 的 IOC 容器實現的那樣)如何用鬆散耦合的方式將分散的系統集成在一起。在這個示例中可以看到,將依賴關系或服務注入工作中的信用卡帳戶應用程序,要比從頭開始構建它們容易得多。
B. SPA的歷史
關於SPA一詞起源的探討中有一個詞始終貫穿其中,那就是「水療」,它反映了水在古時的治療領域和早期歐洲SPA文化中的重要作用。多數人認為SPA一詞是一些拉丁短語的首字母組合,如「sanitas per aquam」,「solus per aquam 」,「sanus per aquam」。這些短語都有「用水治療」的意思。另一種說法是SPA源於在羅馬浴室中發現的塗鴉「salut per aquam」。
SPA也可能源於瓦龍語的「espa」,意思是噴泉,或源於拉丁語「spagere」,意思是潑水。有些專家認為該詞源於比利時一個以溫泉著稱的叫spa的小鎮。後來,spa一詞就被用於溫泉和提供水療的療養勝地。在19、20世紀,飲用礦泉水或在礦泉中洗浴成為時尚的休閑方式。
在歐洲的許多地區,spa一詞仍保持著其強烈的歷史聯系,並嚴格地被用於與水療有關的機構。在歐洲的英語地區和世界上一些其他地區,spa一詞的意義變得更加廣泛,包括身心的健康和放鬆。
水是spa療法中的關鍵因素,除此之外,還因側重自然健康療法、運動、健身、飲食營養和保持身心的協調。
早在公元前1500年,印度人就以這種「神水」療傷鎮痛,古希臘人也將其作為一劑治病強身的靈丹妙葯,而在奢華的古羅馬,人們更是利用水溫的天然不同,將公共浴室分為很熱、微熱、冷池。這里成為勇士們洗凈身體污垢的公共交流場所。 15世紀中,SPA的名字來源於靠近比利時的列日市的一個叫作Spau 的小山谷,這是一個非常豐富礦物質的熱溫區,當地的居民通過泡溫泉浴治療各種疾病與疼痛。由此當地的溫泉浴遠近聞名。
1677年4月11日,法國國王路易十四與其弟弟奧爾良公爵菲利普一世帶領軍隊與荷蘭(佛蘭德)開戰,菲利普一世在卡塞爾大敗後來的英國國王威廉三世 。返回巴黎的過程中,路過列日並享受了Spau的水療,感覺不錯,於是把水療的技巧帶回巴黎宮廷,此時水療僅在法國宮廷中的高級貴族中可以得到享用。
此時國王路易十四一生中擁有過很多情人,接二連三不斷的更換,每個女人都如走馬觀花一樣在他的生命中進了又出,停了又留,他們有的溫柔順從、有的善於權術、有的冰雪聰明、有的風華正茂,總之種類繁多,其中最著名的有瑪麗 曼奇尼,拉瓦莉小姐,蒙特斯夫人,曼特農夫人等。由於路易十四更換情人頻率很高,讓這些女人們充滿了被拋棄的恐懼,她們會認為是因為自己容顏老去導致國王不喜歡她們了,於是他們會找到王室最受歡迎的女人也是路易十四弟弟菲利普一世的夫人莉茲女爵去傾訴,希望能夠永葆青春。莉茲女爵也擁有同樣的困擾,作為一個女人,怎樣才能永葆青春呢?在莉茲女爵接手王室的葡萄酒產業後,便發現葡萄園里的僕人因為使用園中殘剩的葡萄酒保養皮膚,年輕而有光澤,深受啟發。紅衣主教布雍在了解到王室這些女人的需求後,結合了比利時Spa小山谷盛行的水療養生,莉茲女爵的葡萄酒,為王室的女人們設計了宗教儀式,受洗禮並飲用葡萄酒後,可以永葆青春,這個儀式由於是在聖克盧宮所進行,被稱為聖克盧榮耀,由於來自於莉茲女爵,也被稱為莉茲榮耀,法國王室不老傳奇。
當時的儀式要在大理石材質的浴缸中先進行宗教祈禱儀式,然後飲用葡萄酒,並把葡萄酒置於溫泉水中用於王公貴族洗浴使用。上帝會聽到祈禱,會讓祈禱者永葆青春。由於此儀式比較昂貴,只在最高等級的貴族中流行。
1870年7月28日,拿破崙三世在聖克盧宮發動了對普魯士人的戰爭,巴黎這座被高度獨裁統治的城市在巴黎包圍戰中被普魯士人攻破。1870年10月13日,聖克盧宮被普魯士人燒毀,幸運的是,大部分的收藏、財寶被歐也妮王後於戰爭發起時轉移。但波旁王朝奧爾良家族珍藏的部分收藏品被普魯士人帶回了普魯士,神秘的宗教儀式「聖克盧榮耀」也在普法戰爭後流傳到了普魯士,改良了普魯士人文森特 普利斯尼茨和塞巴斯蒂安 柯乃普發明的水療,並為現代水療養生奠定了基礎。
除了SPA這個地方外,古羅馬人在歐洲其它地區也利用天然的礦泉作為療傷治病。後來,世界各地出現了越來越多的溫泉療養勝地。美國的加利福尼亞、法國、英國、義大利、奧地利、日本、台灣等地都有很知名的溫泉療養中心,而SPA這種休閑美容方式在這些地方也很流行。
隨著時代的發展,人們不斷賦予SPA更新的方式和更豐富的內涵。如今SPA這種融合了古老傳統和現代高科技的水療方法已不再是貴族們的專寵,而逐漸成為現代都市人回歸自然、消除身心疲憊,集休閑、美容、解壓於一體的時尚健康概念,配合著五感療法,不論是舒緩按摩、美容還是溫泉水療。凡此種種與舒緩壓力、舒緩身、心靈有關的活動,都可以稱之為SPA。 SPA早期僅是以具療效的溫泉和礦泉區為主,至今演變成一種人人都可享受,並且集休閑、美容、減壓於一體的休閑健康新概念。這樣的演變是隨著時代潮流的推進以及現代人對休閑生活的日益重視而形成的。SPA (源於拉丁文 Solus Par Agula),意為「健康之水」,與英式休閑文化的SPA(Spring pute air)意為「在礦泉區里享受純凈的空氣」。SPA的美妙氣息蔓延了幾百年——希臘的文獻舊時就有記載,在水中加上礦物及香薰、草葯、鮮花,可以預防疾病及延緩衰老。
國際SPA協會對SPA的定義是:SPA致力於通過提供鼓勵更新觀念,身體和精神的各種專業服務,提高人們的整體健康水平。從狹義上講SPA指的就是水療美容與養生。形式各異的SPA,包括冷水浴、熱水浴、冷熱水交替浴、海水浴、溫泉浴、自來水浴,每一種浴都能在一定程度上鬆弛、緩和緊張、疲憊的肌肉和神經,排除體內毒素,預防和治療疾病,另外水療配合各種芳香精油按摩,會加速脂肪燃燒、具有瘦身的效果。 從廣義上講,SPA包括人們熟知的水療、芳香按摩、沐浴、去死角等等。現代SPA主要透過人體的五大感官功能,即聽覺(療效音樂)、味覺(花草茶、健康飲食)、觸覺(按摩、接觸)、嗅覺(天然芳香精油)、視覺(自然或仿自然景觀、人文環境)等達到全方位的放鬆,將精、氣、神三者合一,實現身、心、靈的放鬆,如今SPA逐漸演變成現代美麗補給的代名詞。
水療是SPA最普遍的形式。據考SPA的名字起源於羅馬帝國時期比利時的一個叫「SPA」的小鎮,因為那裡有一溫泉,可以美容甚至治療疾病而聞名。
到了近代,科學家才揭開溫泉的秘密,水中的精油成分來源於當地山上成千上萬種花卉草木在上游水源的浸積。人們模擬建造類似的環境及水質,使其對人體具有健康及健美作用,即為現代的「SPA」。
SPA有不同的主題訴求,有的偏重放鬆、舒緩、排毒的療程;有的以健美瘦身為重點;還有的重在芳香精油、海洋活水或純草本療法等。但無論是哪種類型的SPA,都不脫離滿足客人聽覺(療效音樂)、嗅覺(天然花草薰香)、視覺(自然景觀)、味覺(健康餐飲)、觸覺(按摩呵護)和感覺(內心放鬆)等6種愉悅感官的基本需求。 SPA的愉悅身心,為內心囤積的壓力、疲憊、惶惑找到一個出口,令人的身、心、靈達到和諧與平衡的享受。身、心、靈皆美是現代身處亞健康狀態的都市人的夢想。SPA吹來的怡人芳香,正是從身、心、靈上給人以關懷和撫慰,呵護的容顏、關愛你的心靈,讓你由內至外充滿生機、神采飛揚。
C. springbank從多少年開始喝
Springbank Whisky因campbeltown坎貝爾城,創造出舉世聞名的蘇格蘭威士忌,Campbeltown坎貝爾城也因雲頂酒廠(Springbank Disillers)而揚名國際;這個位於蘇格蘭西南半島的岬角地人口不過6000,卻醞釀出全世界頂級的單一麥芽蘇格蘭威士忌,其濃厚的人文藝術氣息,更是充斥於漫長的釀酒歷史里。…
D. 中國歷史朝代簡介(英文版)
一、秦朝
Qin Dynasty
The Qin Dynasty (221-207 BC) was the first unified dynasty in the history of China developed by the Qin State in the Warring States Period.
譯文:秦朝(前221—前207)是由戰國時期的秦國發展起來的中國歷史上第一個大一統王朝,秦人的祖先大費是黃帝之孫顓頊的後裔,舜賜其嬴姓。
二、漢朝
Han Dynasty
The Han Dynasty (202-8 years ago, 25-220 years ago) was a unified dynasty after the Qin Dynasty. It was mainly divided into the Western Han Dynasty and the Eastern Han Dynasty.
譯文:漢朝(前202年-8年,25年-220年)是繼秦朝之後的大一統王朝,主要分為西漢、東漢時期,共歷29帝,享國四百零五年。
三、晉朝
Jin Dynasty
Jin Dynasty (266-420 years), a dynasty in Chinese history, was divided into two periods: the Western Jin Dynasty and the Eastern Jin Dynasty.
譯文:晉朝(266年-420年),中國歷史上的朝代,上承三國下啟南北朝,分為西晉與東晉兩個時期,其中西晉為中國歷史上大一統王朝之一,東晉則屬於六朝之一,兩晉共傳十五帝,共一百五十五年。
四、隋朝
Sui Dynasty
The Sui Dynasty (581-618 or 619) was a unified dynasty in Chinese history, which inherited the Northern and Southern Dynasties and the Tang Dynasty.
譯文:隋朝(581年—618年或619年)是中國歷史上承南北朝下啟唐朝的大一統朝代。
五、唐朝
1、Tang Dynasty
The Tang Dynasty (618-907) was a unified Central Plains Dynasty after the Sui Dynasty. It had twenty-one emperors and enjoyed the country for 289 years.
譯文:唐朝(618年—907年),是繼隋朝之後的大一統中原王朝,共歷二十一帝,享國二百八十九年。
(4)spring發展歷史擴展閱讀:
中國歷史(中國區域范圍內的歷史)
中國歷史是指中國從中華文明產生到現在的歷史。中國歷史悠久,自黃帝部落的姬軒轅(也稱公孫軒轅)時期算起約有5000年;從三皇五帝算起約有4600年;自夏朝算起約有近4100年;從中國第一次大統一的中央集權制的秦朝算起約有2240年。
中國歷經多次政權演變和朝代更迭,也曾是世界上最強大的國家,經濟、文化、科技世界矚目。中國史前時期炎黃二帝被尊奉為中華民族的人文始祖。
約公元前2070年,中國最早的國家夏朝出現。東周推進了生產力發展和社會變革,思想上形成百家爭鳴的局面。公元前221年,秦始皇建立了中國歷史上第一個統一的專制主義中央集權帝國—秦朝,西漢進一步鞏固和發展了大一統的局面。
三國兩晉南北朝時,中國陷入分裂割據局面,五胡亂華期間,異族融於中國趨勢加強,諸多民族在分立政權的沖突中逐漸匯聚。隋唐時期,中央與邊疆少數民族聯系更為密切,經濟繁榮、科技文化高度發展。
宋元時期,多元文化碰撞交融,經濟、科技發展到新的高度。明朝鼎盛時期,社會經濟高度發展,明末在江南地區出現資本主義萌芽。
19世紀中期,鴉片戰爭後中國開始淪為半殖民地半封建社會。1911年辛亥革命,推翻了帝制,確立了共和政體。袁世凱死後,中國進入軍閥割據混亂時期。
後經國民大革命,土地革命,抗日戰爭以及解放戰爭,終於在1949年成立中華人民共和國。又經1966年到1976年的文化大革命。1978年後中國開始實行改革開放政策,中國經濟快速發展,2011年中國超越日本成為世界第二大經濟體。
E. 什麼是Spring
Spring是企業應用程序所需要的一站式解決方案, 但Spring仍然是模塊化的,允許你只使用你所需的哪些部分,而無需附加上其他部分。 你可以使用
IoC容器,在其上使用Struts,但是你也可以選擇使用 Hibernate 整合代碼或者 JDBC 抽象層。
我們將Spring設計為非侵入式的(並且以後也是如此),這意味著應用基本上不需要依賴框架本身 (或者肯定是最小的,取決於所使用的部分)。
F. SPA簡介歷史
起源
關於SPA一詞起源的探討中有一個詞始終貫穿其中,那就是「水療」,它反映了水在古時的治療領域和早期歐洲SPA文化中的重要作用。多數人認為SPA一詞是一些拉丁短語的首字母組合,如「sanitas per aquam」,「solus per aquam 」,「sanus per aquam」。這些短語都有「用水治療」的意思。另一種說法是SPA源於在羅馬浴室中發現的塗鴉「salut per aquam」。
SPA也可能源於瓦龍語的「espa」,意思是噴泉,或源於拉丁語「spagere」,意思是潑水。有些專家認為該詞源於比利時一個以溫泉著稱的叫spa的小鎮。後來,spa一詞就被用於溫泉和提供水療的療養勝地。在19、20世紀,飲用礦泉水或在礦泉中洗浴成為時尚的休閑方式。
在歐洲的許多地區,spa一詞仍保持著其強烈的歷史聯系,並嚴格地被用於與水療有關的機構。在歐洲的英語地區和世界上一些其他地區,spa一詞的意義變得更加廣泛,包括身心的健康和放鬆。
水是spa療法中的關鍵因素,除此之外,還因側重自然健康療法、運動、健身、飲食營養和保持身心的協調。
早在公元前1500年,印度人就以這種「神水」療傷鎮痛,古希臘人也將其作為一劑治病強身的靈丹妙葯,而在奢華的古羅馬,人們更是利用水溫的天然不同,將公共浴室分為很熱、微熱、冷池。這里成為勇士們洗凈身體污垢的公共交流場所。
G. 誰知道關於JAVA和J2EE的發展歷史年鑒
http://ke..com/view/29.htm
http://ke..com/view/1507.htm
-----------------------------------------
很全很詳細!
H. spring框架的起源
Spring是一個開源框架,Spring是於2003 年興起的一個輕量級的Java 開發框架,由OP)。簡單來說,Spring是一個分層的JavaSE/EEfull-stack(一站式) 輕量級開源框架。
背景:
Rod Johnson在2002年編著的《Expert one on one J2EE design and development》一書中,對Java EE 系統框架臃腫、低效、脫離現實的種種現狀提出了質疑,並積極尋求探索革新
Spring Logo
之道。以此書為指導思想,他編寫了interface21框架,這是一個力圖沖破Java EE傳統開發的困境,從實際需求出發,著眼於輕便、靈巧,易於開發、測試和部署的輕量級開發框架。Spring框架即以interface21框架為基礎,經過重新設計,並不斷豐富其內涵,於2004年3月24日,發布了1.0正式版。同年他又推出了一部堪稱經典的力作《Expert one-on-one J2EE Development without EJB》,該書在Java世界掀起了軒然大波,不斷改變著Java開發者程序設計和開發的思考方式。在該書中,作者根據自己多年豐富的實踐經驗,對EJB的各種笨重臃腫的結構進行了逐一的分析和否定,並分別以簡潔實用的方式替換之。至此一戰功成,Rod Johnson成為一個改變Java世界的大師級人物。
傳統J2EE應用的開發效率低,應用伺服器廠商對各種技術的支持並沒有真正統一,導致J2EE的應用沒有真正實現Write Once及Run Anywhere的承諾。Spring作為開源的中間件,獨立於各種應用伺服器,甚至無須應用伺服器的支持,也能提供應用伺服器的功能,如聲明式事務、事務處理等。
Spring致力於J2EE應用的各層的解決方案,而不是僅僅專注於某一層的方案。可以說Spring是企業應用開發的「一站式」選擇,並貫穿表現層、業務層及持久層。然而,Spring並不想取代那些已有的框架,而是與它們無縫地整合。
I. java語言的發展歷史
早期的Java
Duke,Java語言的吉祥物語言最開始只是太陽微系統( MicroSystems)公司在1990年12月開始研究的一個內部項目。太陽微系統公司的一個叫做帕特里克?諾頓的工程師被公司自己開發的C++和C語言編譯器搞得焦頭爛額,因為其中的API極其難用。帕特里克決定改用NeXT,同時他也獲得了研究公司的一個叫做「Stealth計劃」的項目的機會。
「Stealth計劃」後來改名為「Green計劃」,詹姆斯·高斯林和麥克?舍林丹也加入了帕特里克的工作小組。他們和其他幾個工程師一起在加利福尼亞州門羅帕克市沙丘路的一個小工作室裡面研究開發新技術,瞄準下一代智能家電(如微波爐)的程序設計,太陽公司預料未來科技將在家用電器領域大顯身手。團隊最初考慮使用C++語言,但是很多成員包括太陽的首席科學家比爾?喬伊,發現C++和可用的API在某些方面存在很大問題。
工作小組使用的是內嵌類型平台,可以用的資源極其有限。很多成員發現C++太復雜以至很多開發者經常錯誤使用。他們發現C++缺少垃圾回收系統,還有可移植的安全性、分布程序設計、和多運行續功能。最後,他們想要一種易於移植到各種設備上的平台。
根據可用的資金,比爾?喬伊決定開發一種集C語言和Mesa語言大成的新語言,在一份報告上,喬伊把它叫做「未來」,他提議太陽公司的工程師應該在C++的基礎上,開發一種面向對象的環境。最初,高斯林試圖修改和擴展C++的功能,他自己稱這種新語言為C++ ++ --,但是後來他放棄了。他將要創造出一種全新的語言,被他命名為「Oak」(橡樹),以他的辦公室外的橡樹命名。
就像很多開發新技術的秘密工程一樣,工作小組沒日沒夜地工作到了1992年的夏天,他們能夠演示新平台的一部分了,包括Green操作系統,Oak的程序設計語言,類庫及其硬體。最初的嘗試是面向一種類PDA設備,被命名為Star7,這種設備有鮮艷的圖形界面和被稱為「Duke」的智能代理來幫助用戶。1992年12月3日,這台設備進行了展示。
同年11月,Green計劃被轉化成了「FirstPerson有限公司」,一個太陽公司的全資子公司,團隊也被重新安排到了帕洛阿爾托。FirstPerson團隊對建造一種高度交互的設備感興趣,當時代華納發布了一個關於電視機頂盒的徵求提議書時(Request for proposal),FirstPerson改變了他們的目標,作為對徵求意見書的響應, 提出了一個機頂盒平台的提議。但是有線電視業界覺得FirstPerson的平台給予用戶過多的控制權,因此FirstPerson的投標敗給了SGI。與3DO公司的另外一筆關於機頂盒的交易也沒有成功,由於他們的平台不能在電視工業產生任何效益,公司被並回太陽公司。
1994年6月、7月間,在經歷了一場歷時三天的腦力激盪的討論後,約翰·蓋吉、詹姆斯·高斯林、比爾·喬伊、帕特里克·諾頓、韋恩·羅斯因和埃里克·斯庫米,團隊決定再一次改變了努力的目標,這次他們決定將該技術應用於萬維網。他們認為隨著Mosaic瀏覽器的到來,網際網路正在向同樣的高度互動的遠景演變,而這一遠景正是他們在有線電視網中看到的。作為原型,帕特里克·諾頓寫了一個小型萬維網瀏覽器,WebRunner,後來改名為HotJava。由於商標搜索顯示,Oak已被一家顯卡製造商注冊。於是同年,Oak被改名為Java。當使用十六進制編輯器打開由Java源代碼編譯出的二進制文件(.class文件)的話,最前面的32位將顯示為CA FE BA BE,即片語「CAFE BABE」(咖啡屋寶貝)。
1994年10月,HotJava和Java平台為公司高層進行演示。1994年,Java 1.0a版本已經可以提供下載,但是Java和HotJava瀏覽器的第一次公開發布卻是在1995年3月23日SunWorld大會上進行的。升陽公司的科學指導約翰·蓋吉聲明Java技術。這個發布是與網景公司的執行副總裁馬克·安德森的驚人發布一起進行的,宣布網景將在其瀏覽器中包含對Java的支持。1996年1月,升陽公司成立了Java業務集團,專門開發Java技術。Java近況在流行幾年之後,Java在瀏覽器中的地位被逐步侵蝕。它在簡單交互性動畫方面的用途已經完全被Adobe公司的Flash排擠,2005年Java傾向只被用於雅虎游戲那樣的更為復雜的應用程序。Java同時遭受到來自微軟的反對,他們決定在新版本的Internet Explorer和Windows中不再附帶Java平台。
與此相反。在萬維網的伺服器端和手持設備上,Java變得更加流行。很多網站在後端使用JSP和其他的Java技術。
在桌面系統上,獨立的Java程序還是相對少見,這是因為Java平台的運行開銷較大,而許多人的電腦上沒有安裝Java,由於網路帶寬在以前較小,下載Java曾經是個耗時的事情。但是隨著計算機計算能力、網路帶寬在10年中取得了很大的進步,同時虛擬機和編譯器的質量得到了提高,許多應用程序得到了廣泛的使用