版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Spring基課程介(了解(了解(掌握(掌握(掌握(掌握(掌握(掌握為什么需要publicclassEmployeeServiceImplpublicclassEmployeeServiceImplprivateIEmployeeDaoemployeeDao=new}EmployeeService對象除了完成業(yè)務(wù)邏輯功能的實(shí)現(xiàn),還需要把數(shù)據(jù)通過EmployeeDao進(jìn)行持久化,那么EmployeeService對象就依賴于EmployeeDaoEmployeeService離開了EmployeeDao就無法進(jìn)行工作了;IEmployeeDaonewemployeeDao=publicclasspublicstaticObjectgetObject(Stringname){//name=employeeDaoPropertiesps=newProperties();return}}publicclassAServiceImplprivateIEmployeeDaoemployeeDao=}publicclassBServiceImplprivateIEmployeeDaoemployeeDao=}publicclassEmpployeeAction{privatepublicclassEmpployeeAction{privateIEmployeeServiceservice;}publicclassEmpployeeService{privateIEmployeeDaodao;}實(shí)際開發(fā)中,某一個(gè)業(yè)務(wù)邏輯可能會(huì)牽涉多個(gè)操作(sql),service層,是極好publicvoidsave(...){}publicvoidupdate(...){}初識(shí)IOC(Inverseofcontrol):將創(chuàng)建對象的權(quán)利和依賴關(guān)系(字段賦值)交給Spring方便解耦,降低難度,提高開發(fā)效率(Spring相當(dāng)于是一個(gè)大的工廠,它提供的IOC思想,可以將對象的創(chuàng)建和依賴關(guān)系都交給spring管理);spring支持AOP編程(spring提供面向切面編程,可以很方便的實(shí)現(xiàn)對程序進(jìn)行權(quán)限和運(yùn)行SpringjavaEEAPI的使用難度(SpringjavaEEAPI,例如JDBC,javaMail,調(diào)用等,都提供了封裝,是這些API應(yīng)用難度大大降低);SpringCoreContainer(容器①Beans:負(fù)責(zé)Bean工廠中Bean的裝配,所謂Bean工廠即是創(chuàng)建對象的工廠,Bean的裝配也②CoreIOC(控制反轉(zhuǎn))③Context:SpringIOC容器,因大量調(diào)用SpringCore中的函數(shù),整合了Spring的大部分功能。Bean創(chuàng)建好對象后,由Context負(fù)責(zé)建立Bean與Bean之間的關(guān)系并。所以也ContextBean關(guān)系的集合;④SpElSpringExpressionLanguage(Spring表達(dá)式語言DataAccess/Integration(數(shù)據(jù)/集成①JDBCJDBC②ORM:支持?jǐn)?shù)據(jù)集成框架的封裝(③OXMObjectXMLMapperJavaXML④JMS⑤TransationsWeb與調(diào)用①WebSocketSocket通信,web②Servlet:SpringMVC③Web:包含web應(yīng)用開發(fā)用到Spring框架時(shí)所需的類,包括自動(dòng)載入Portlet(Port(PortletTest(測試):我們在做單元測試時(shí),Spring會(huì)幫我們初始化一些測試過程當(dāng)中需要用到的資源對Spring依賴關(guān)系:DI(DependencyInjection)依賴注入,后續(xù)再講第一Spring相關(guān)jar 導(dǎo)包的時(shí)候注意,現(xiàn)在使用Spring,要完成最小導(dǎo)包,即:需要什么jar包,我們就導(dǎo)入什么jar第二步:導(dǎo)入Springclasspath的根下新建一個(gè)applicactionContext.xml配置文件,文件名可以自定義,applicactionContext這個(gè)名字;添加文檔和約束(這個(gè)東西不需要①spring-framework-4.1.2.RELEASE\docs\spring-framework-可以spring的配置文件<?xmlversion="1.0"encoding="UTF-<beans""<beanid="..."<!--collaboratorsandconfigurationforthisbeangohere--第三步:編寫邏輯代publicpublicclassMyBeanpublic o}}第四步:將這個(gè)類交給Spring去管理即到Spring容器大家要記得,SpringSpringSpring幫我們把這個(gè)類的對象創(chuàng)建出來就算是成功了;JavaSpring管理。在applicationContext.xml<beans<beans<beanid="myBean" 問題問題 Spring容器的實(shí)例化(如何創(chuàng)容器對象_測試用1.BeanFactory是一個(gè)接口,可以通過其實(shí)現(xiàn)類XmlBeanFactor獲取其實(shí)例。接口中有一個(gè)publicvoidoSpring()throwsException*Spring*對象是BeanFactory:顧名思義,這是一個(gè)創(chuàng)建Bean*而Bean*配置文件,拿到BeanFactory//Resourceresource=new//對象BeanFactoryfactory=new}ApplicationContext的中文意思是"應(yīng)用程序上下文",它繼承自BeanFactory接口,除了包含BeanFactory的所有功能之外,在支持、資源(如URL和文件)、等方面進(jìn)行JavaEEJavaAPPJavaWeb中;spring-context-spring-context- Spring表達(dá)式語Stringconf"C:\applicationContext.xml";ApplicationContextApplicationContextfactory=new//加載工程classpathStringconf=ApplicationContextfactory=new方式一:通過id直接拿到相應(yīng)的Bean對////通過xml中配置的idMyBeanbean=(MyBean)factory.getBean("myBean");方式二:通過id與對象的Class對象拿到Bean對象(推薦使用////通過id與對象的classBeanMyBeanbean=factory.getBean("myBean",MyBean.class);ApplicationContextBeanFactory1.ApplicationContext是BeanFactory的子類,擁有的功能與方法;BeanFactory是在使用的時(shí)候才進(jìn)行對象的創(chuàng)建(懶加載/延遲加載)1.ApplicationContextBeanFactory一樣的懶加<beans<beans"<bean<beanid="myBean" <bean<beanid="myBean" o.MyBean"lazy-Spring配置細(xì)Bean<bean<beanid="scopeBean"class="cn.itsource._03_scope.MyScopeBean"Bean<<beans"""<bean<beanid="user"class="cn.itdemo.test.User"lazy-Bean①實(shí)例化實(shí)質(zhì)是SpringBeanBean②初始化實(shí)質(zhì)上是Spring③BeanFactory管理的Bean默認(rèn)是在使用的時(shí)候才創(chuàng)建Bean對象,即延遲加載,而AppliacationContext管理的Bean默認(rèn)是在容器創(chuàng)建的時(shí)候就會(huì)創(chuàng)建Bean對象,即迫BeanBean對象,因?yàn)橹挥蝎@取的時(shí)候才知道要獲Bean對象;①實(shí)質(zhì)上是Spring容器調(diào)用指定的銷毀方法(Bean對象②單例的Bean是在容器關(guān)閉的時(shí)候(ApplicationContextclose方法,其實(shí)現(xiàn)③多例的Beanbean可以通過bean元素的init-method和destroy-method屬性指定初始化方法和銷毀方法。但是一般我們自己不會(huì)來配置這個(gè)生命周期。而這個(gè)基本上Spring自身來使用,例如在Spring操作連DateSource銷毀的時(shí)候執(zhí)行;Spring測Spring而且目前基于Java的企業(yè)應(yīng)用軟件來說,Spring已經(jīng)成為了標(biāo)準(zhǔn)配置,那么如何在Spring框架Spring框架提供了對單元測試(junit4)的強(qiáng)大支持,我們不用在使用傳統(tǒng)的單元測試去測試Spring功能。通過SpringJunit測試,使用注解幫我們配置文件和賦值,簡化測試代碼,提高6.2Spring第一步:導(dǎo)入相應(yīng)的-spring-aop--AOP注意:測試包依賴AOP,所以需要導(dǎo)入AOPjar第二tCianlp:liontl")SpringJUnit4ClassRunner:代表是Junit4 配置文/cn/itsource/_02_test/applicationContextxml→從當(dāng)前類所在包找(不建議使用/itsource/_02_test/applicationContextxml→從classpath的 applicationContext.xml→注解后面不寫名稱→在當(dāng) 下來創(chuàng)建xml的名稱為:測試類名-Context@authorpublicclassSpringTestSpring環(huán)境自行啟動(dòng),所有 對象已經(jīng)處于Spring之中,都應(yīng)該由Spring自己來創(chuàng)@Autowired的意思是自動(dòng)注入,ApplcationContext這個(gè)類是Spring內(nèi)部存在的,它也是一個(gè) 后,再把創(chuàng)建的Bean注入進(jìn)privateprivateApplicationContext這個(gè)TestBean我們已經(jīng)在Spring中配置好。交給SpringprivateTestBeanpublicvoidtestGetBean()throwsException{}}Spring依賴注Spring中的對象都是由Spring進(jìn)行統(tǒng)一管理,但是在對象中還存在屬性,這些屬性實(shí)際上的Spring來管理的;在實(shí)際使用時(shí),我們需要給Spring中對象的屬性字段賦值,這稱為依賴注入DI(DependencypublicclassPhone{privateStringcpu;privateStringsim;privateStringsd;publicPhone()publicPhone(Stringcpu)this.cpu=}publicvoidsetSim(Stringsim)this.sim=}publicvoidsetSd(Stringsd)this.sd=}publicStringtoString()return"Phone[cpu="+cpu+",sim="+sim+",sd="+sd+}}<beanid="phone"<constructor-argindex="0"value="RAM11"></constructor-publicclassSpringTest{privatePhonephone;publicvoidtestCreateObj(){}}Phone[cpu=RAM11,sim=null,setterpublicclasspublicclassPhone{privateStringcpu;privateStringsim;privateStringsd;publicPhone(){}publicPhone(Stringcpu)this.cpu=}publicvoidsetSim(Stringsim)this.sim=}publicvoidsetSd(Stringsd)this.sd=}publicStringtoString()return"Phone[cpu="+cpu+",sim="+sim+",sd="+sd+}}<beanid="phone"<constructor-argindex="0"value="RAM11"></constructor-"value是注入基本值,如果注入是bean對象,要使用ref="其他beanidname值<propertyname="sd"publicclassSpringTest{privatePhonephone;publicvoidtestCreateObj(){}}Phone[cpu=RAM11sim=中國電信Springjarmons.dbcp-mons.pool- 數(shù)據(jù)源/連接池的jar mysql驅(qū)動(dòng)<?xml<?xmlversion="1.0"encoding="UTF-<beans"""<!--查找當(dāng)前src下查找perties文件 ceholder<beanid="dataSource"<prop
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026西藏昌都市洛隆縣人民醫(yī)院臨時(shí)招聘醫(yī)技人員2人參考題庫附答案
- 2026遼寧大連理工大學(xué)化工學(xué)院黨群辦公室職員(自聘)招聘1人備考題庫附答案
- 2026重慶市城投路橋管理有限公司食堂炊事員崗位2人參考題庫附答案
- 2026陜西省面向華南理工大學(xué)招錄選調(diào)生考試備考題庫附答案
- 興國縣2025年公開選調(diào)食品安全監(jiān)管人員的備考題庫附答案
- 招護(hù)理!西寧市城北區(qū)朝陽社區(qū)衛(wèi)生服務(wù)中心招聘備考題庫附答案
- 浙江國企招聘-2026年臺(tái)州市商貿(mào)核心區(qū)開發(fā)建設(shè)投資集團(tuán)有限公司招聘3人備考題庫附答案
- 輔警78名!2025年海南州公安局面向社會(huì)公開招聘警務(wù)輔助人員考試備考題庫附答案
- 2026貴州湄潭縣紀(jì)委縣監(jiān)委選調(diào)事業(yè)單位工作人員參考題庫附答案
- 2026年青海社區(qū)招聘考試題庫附答案
- 2026年內(nèi)蒙古北方職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試備考題庫帶答案解析
- 2025至2030數(shù)字PCR和實(shí)時(shí)PCR(qPCR)行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報(bào)告
- 2026屆廣東省廣州市高三上學(xué)期12月零模歷史試題含答案
- 2026年汽車租賃安全生產(chǎn)管理制度模版
- 2026貴州安順市平壩區(qū)糧油收儲(chǔ)經(jīng)營有限公司招聘5人筆試備考試題及答案解析
- 開工第一課安全培訓(xùn)課件
- 急診成人社區(qū)獲得性肺炎臨床實(shí)踐指南(2024年版)解讀課件
- 華東理工大學(xué)2026年公開招聘工作人員46名備考題庫及答案詳解(新)
- 智能機(jī)械與機(jī)器人全套課件
- 管道試壓專項(xiàng)施工方案
- 2025-2030中國固定電話行業(yè)市場深度調(diào)研及發(fā)展趨勢和投資前景預(yù)測研究報(bào)告
評(píng)論
0/150
提交評(píng)論