effective java英文版pdf_Java之Spring1:Spring简介、环境搭建、源码下载及导入MyEclipse...
框架學(xué)習(xí)前言
這個(gè)模塊是面向Spring的,Spring的學(xué)習(xí)我是這么想的:
1、簡(jiǎn)單介紹Spring,主要是從網(wǎng)上借鑒一些重點(diǎn)
2、盡量說(shuō)明清楚Spring的使用方法以及細(xì)節(jié)點(diǎn)
3、盡量以自己的理解講清楚Spring中的一些源代碼
Spring是什么
Spring是一款為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的輕量級(jí)Java框架。框架的主要優(yōu)勢(shì)之一就是其分層架構(gòu),分層架構(gòu)允許使用者選擇哪一個(gè)組件,同時(shí)為J2EE應(yīng)用程序開發(fā)提供集成的框架。從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益,Spring的核心是控制反轉(zhuǎn)IOC和面向切面AOP。
Spring的特征
1、輕量
從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個(gè)大小只有1M多的JAR文件里發(fā)布,并且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型的,Spring應(yīng)用中的對(duì)象不依賴于Spring的特定類。
2、控制反轉(zhuǎn)
Spring通過一種稱作控制反轉(zhuǎn)IOC的技術(shù)促進(jìn)了低耦合。當(dāng)應(yīng)用了IOC,一個(gè)對(duì)象依賴的其他對(duì)象會(huì)通過被動(dòng)的方式傳遞進(jìn)來(lái),而不是這個(gè)對(duì)象自己創(chuàng)建或者查找依賴對(duì)象。
3、面向切面
Spring提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級(jí)服務(wù)進(jìn)行內(nèi)聚性的開發(fā)。應(yīng)用程序只實(shí)現(xiàn)它們應(yīng)該做的----完成業(yè)務(wù)邏輯,僅此而已,它們并不負(fù)責(zé)(甚至意識(shí)不到)其它的系統(tǒng)級(jí)關(guān)注點(diǎn),例如日志或事物支持。
4、容器
Spring包含并管理應(yīng)用對(duì)象的配置和生命周期,在這個(gè)意義上它是一種容器,你可以配置你的每個(gè)bean如何被創(chuàng)建----基于一個(gè)可配置原型,你的bean可以創(chuàng)建一個(gè)單獨(dú)的實(shí)例或者每次需要時(shí)都生成一個(gè)新的實(shí)例----以及它們是如何相互關(guān)聯(lián)的。
5、框架
Spring可以將簡(jiǎn)單的組件配置、組合成為復(fù)雜的應(yīng)用。在Spring中,應(yīng)用對(duì)象被聲明式地組合,典型的是在一個(gè)XML文件里。Spring也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等),將應(yīng)用邏輯的開發(fā)留給開發(fā)者。
所有Spring的這些特征使得開發(fā)者能夠編寫更干凈、更可管理、更易于測(cè)試的代碼,它們也為Spring中的各種模塊提供了基礎(chǔ)支持。
Spring的特點(diǎn)
1、方便解耦,簡(jiǎn)化開發(fā)
通過Spring提供的IOC容器,我們可以將對(duì)象之間的依賴關(guān)系交由Spring進(jìn)行控制,避免硬編碼所造成的過度耦合。有了Spring,用戶不必再為單實(shí)例模式類、屬性文件解析等這些很底層的需求編寫代碼,可以更專注于上層的應(yīng)用。
2、AOP編程的支持
通過Spring提供的AOP功能,方便進(jìn)行面向切面的編程,許多不容易用傳統(tǒng)OOP實(shí)現(xiàn)的功能可以通過AOP輕松應(yīng)付。
3、聲明式事物的支持
在Spring中,我們可以從單調(diào)煩悶的事務(wù)管理代碼中解脫出來(lái),通過聲明式靈活地進(jìn)行事物的管理,提高開發(fā)效率和質(zhì)量。
4、方便集成各種優(yōu)秀框架
Spring不排斥各種優(yōu)秀的開源框架,相反,Spring可以降低各種框架的使用難度,Spring提供了對(duì)各種優(yōu)秀框架如Structs、Hibernate、Hessian、Quartz等的直接支持。
5、降低Java EE API的使用難度
Spring對(duì)很多難用的Java EE API(如JDBC、JavaMail、RMI等)提供了一個(gè)薄薄的封裝層,通過Spring的簡(jiǎn)易封裝,這些Java EE API的使用難度大為降低
6、Java源碼是經(jīng)典學(xué)習(xí)范例
Spring的源碼設(shè)計(jì)精妙、結(jié)構(gòu)清晰、獨(dú)具匠心,處處體現(xiàn)著對(duì)Java設(shè)計(jì)模式靈活運(yùn)用以及對(duì)Java技術(shù)的高深造詣。Spring框架源碼無(wú)疑是Java技術(shù)的最佳實(shí)踐范例,如果想在短時(shí)間內(nèi)迅速提高自己的Java技術(shù)水平和應(yīng)用開發(fā)水平,學(xué)習(xí)和研究Spring的源碼將使你獲益匪淺。
Spring下載
Spring相關(guān)信息可以去Spring官網(wǎng)查看,不過都是全英文版本的。
Spring目前的最新版本是4.2.2,點(diǎn)擊鏈接下載,解壓后應(yīng)該是這樣的:
介紹一下每個(gè)文件夾:
1、docs下是Spring相關(guān)資料,包括一個(gè)官方的英文版的資料《spring-framework-reference.pdf》以及網(wǎng)頁(yè)版本的Spring API,上面有所有的Spring類與方法相關(guān)信息,就和JDK API一樣
2、libs下包括了Spring所有jar包,注意一下"*.javadoc.jar"和"*.sources.jar"結(jié)尾的都是每個(gè)模塊Spring提供的一些輔助文檔而已,并不是真正要用的jar包的內(nèi)容
3、schema里面是Spring每個(gè)組件、每個(gè)版本的.xsd文件,用來(lái)設(shè)置.xml文件自動(dòng)提示用的
Spring環(huán)境搭建以及.xml文件自動(dòng)提示設(shè)置
為了后面的學(xué)習(xí),這里講解一下如何搭建一個(gè)Spring框架以及如何為.xml文件設(shè)置Spring標(biāo)簽及相應(yīng)屬性的自動(dòng)提示:
1、右鍵工程->Build Path->Configure Build Path...,選擇Add External JARs...,導(dǎo)入所有l(wèi)ibs下的jar包(如果只用bean工廠的功能其實(shí)不全部導(dǎo)入也行)
2、我們知道,Spring的使用是通過寫配置文件的,所以右鍵src->new->File,隨便命名,以xml結(jié)尾即可
3、xml文件里面寫入,這是最基礎(chǔ)的模板,往后所有功能都在這個(gè)模板上擴(kuò)展:
<?xml version="1.0" encoding="UTF-8"?>4、點(diǎn)擊Window->Preferences->MyEclipse->Files and Editors->XML->XML Catalog->Add->File System...,選擇解壓后的目錄Schema文件夾,beans目錄下的spring-beans-4.2.xsd,其實(shí)選任何一個(gè)版本的.xsd都可以,只要和你的Spring的.xml文件里面那個(gè)版本號(hào)對(duì)應(yīng)就可以了
5、Key Type選擇"Schema Location",key填"http://www.springframework.org/schema/beans/spring-beans-4.2.xsd",也就是.xml文件里面的那個(gè)路徑
6、點(diǎn)擊OK即可,之后配置Spring別的功能比如aop、context、jdbc什么的XML提示也可以用類似的方法,.xml里面配置一個(gè)地址,XML Catalog里面添加一個(gè)XML Catalog Entry
Spring日志系統(tǒng)搭建
Spring采用Apache common_logging,并結(jié)合Apache log4j作為日志輸出組件,為了在調(diào)試過程中可以觀察到Spring的日志輸出,請(qǐng)先下載common_logging和log4j兩個(gè)jar包,不知道最新的兩個(gè)jar包是什么版本的,我用的是比較老的,以前就下載的:
下載了之后請(qǐng)確保你的CLASSPATH下有這兩個(gè)jar包。有了這兩個(gè)jar包之后,右鍵src,新建一個(gè)"log4j.properties"文件,配置如下:
log4j.rootLogger=DEBUG, stdoutlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%c{1} - %m%n這樣,在使用Spring的過程中,你就可以看到Spring的日志輸出了。
Spring源碼下載及導(dǎo)入MyEclipse
既然我們的要學(xué)習(xí)源代碼,那勢(shì)必要獲取Spring的源碼。Spring的源碼是通過GitHub進(jìn)行管理的,下載Spring源碼并導(dǎo)入MyEclipse需要兩樣工具:
1、GitHub,點(diǎn)我
2、Gradle,點(diǎn)我,注意下載安裝完Gradle要?jiǎng)?chuàng)建GRADLE_HOME系統(tǒng)變量,并將這個(gè)系統(tǒng)變量加入到path中,就和JDK一樣,這個(gè)不會(huì)的可以上網(wǎng)查一下,安裝完進(jìn)入cmd,輸入命令"gradle -version",打印出gradle的版本信息就表示gradle可以用了
GitHub和Gradle都安裝完畢之后,分兩步:
1、使用GitHub下載源碼
首先下載安裝這兩個(gè)工具,OK之后,GitHub的bin目錄下雙擊"tclsh85.exe",就跟使用cmd一樣的,先隨便找一個(gè)想要下載到的目錄,使用"git clone git://github.com/SpringSource/Spring-framwwork.git"下載Spring源代碼,如圖:
下載完畢應(yīng)該是:
2、當(dāng)前下載的源碼并不能直接導(dǎo)入MyEclipse中,我們還需要將源碼轉(zhuǎn)換為MyEclipse認(rèn)識(shí)的形式,所以這時(shí)候就要用Gradle了。cmd進(jìn)入命令窗口,切換至下載Spring源碼所在的目錄,我們想要把哪個(gè)模塊的源碼轉(zhuǎn)成MyEclipse的就操作哪個(gè)文件夾,具體方式為:
轉(zhuǎn)換完畢應(yīng)該是:
此時(shí)我們看一下文件夾下的spring-beans目錄:
這就是MyEclipse認(rèn)識(shí)的形式,直接Import進(jìn)入MyEclipse,當(dāng)然這個(gè)時(shí)候項(xiàng)目上有紅色感嘆號(hào),表示工程有錯(cuò),錯(cuò)誤在:
用一樣的方式把spring-core轉(zhuǎn)一下導(dǎo)入源碼工程就好了。另外,spring-cglib-repack-3.1.jar和spring-objenesis-repack-2.2.jar報(bào)錯(cuò)的問題,上網(wǎng)找一下這兩個(gè)jar包下載并導(dǎo)入就好了,我是在CSDN上下載的。
總結(jié)
以上是生活随笔為你收集整理的effective java英文版pdf_Java之Spring1:Spring简介、环境搭建、源码下载及导入MyEclipse...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue解决线上跨域的问题_vue前后端分
- 下一篇: catia 如何提取cgr面_CATIA