版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3第六章spring基礎(chǔ)項目需求背景知識項目介紹經(jīng)典問題強化本章小結(jié)0102030405-了解Spring的發(fā)展歷程-掌握Spring的優(yōu)點-理解SSM框架的基本概念和特點-掌握Spring核心容器的功能-掌握Spring整合MyBatis的方法0102030405E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3項目需求01功能描述1.1根據(jù)用戶提出的要求,我們需要為CRM系統(tǒng)開發(fā)一個用戶管理模塊。該模塊主要有以下功能:1.用戶信息列表顯示用戶ID、用戶名、郵箱、聯(lián)系電話、狀態(tài),其中狀態(tài)表示用戶是否被激活,只有激活的用戶可以使用系統(tǒng)。2.新建用戶新用戶可以填寫相關(guān)信息進行注冊,并且可以在創(chuàng)建新用戶時設(shè)置激活狀態(tài),默認(rèn)激活狀態(tài)為開啟,這樣用戶注冊后就可以直接登錄系統(tǒng)。3.用戶詳情可以點擊詳情按鈕查看用戶所具有的權(quán)限信息。在CRM系統(tǒng)中不同用戶具有不同的訪問權(quán)限,這樣就可以讓不同身份的用戶操作不同的資源。4.查詢用戶可以通過用戶名、用戶郵箱、激活狀態(tài)等多種方式對用戶信息進行查詢。功能描述1.1圖1用戶模塊功能結(jié)構(gòu)圖圖2用戶查詢功能效果圖E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3背景知識02知識導(dǎo)圖2.1圖3第6章知識導(dǎo)圖Spring概念2.2Spring是由RodJohnson組織和開發(fā)的一個分層的JavaSE/EEfull-stack(一站式)輕量級開源框架。它以IOC(InversionofControl控制反轉(zhuǎn))和AOP(AspectOrientedProgramming面向切面編程)為核心,使用JavaBean完成以前只能由EJB(EnterpriseJavaBeans,Java企業(yè)Bean)完成的工作,同時取代了EJB臃腫、低效的開發(fā)模式。Spring概念2.2Spring還致力于提供JavaEE應(yīng)用各層的解決方案:-View層(表現(xiàn)層)通過控制器(Controller)接收用戶請求并將處理結(jié)果通過用戶界面響應(yīng)給用戶,一般通過SpringMVC框架來實現(xiàn)。-
Service層(業(yè)務(wù)邏輯層)主要負(fù)責(zé)應(yīng)用程序的業(yè)務(wù)邏輯和事務(wù)處理,通常使用Spring框架來實現(xiàn)。-Dao層(數(shù)據(jù)訪問層),通常使用MyBatis框架來實現(xiàn),它允許開發(fā)人員通過SQL語句訪問數(shù)據(jù)庫,并提供數(shù)據(jù)庫結(jié)果的對象關(guān)系映射(ORM)功能。因此,Spring框架是企業(yè)級應(yīng)用開發(fā)很好的"一站式"選擇,雖然它貫穿于表現(xiàn)層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層,但Spring并不想取代那些已有的框架,而是以高度的開放性與它們進行整合。Spring優(yōu)點2.3Spring框架具有簡單、可測試和松耦合等特點,它不但可以用于服務(wù)端開發(fā),也可以用于其它任何一種Java應(yīng)用的開發(fā)。其具有以下優(yōu)點:1.方便解耦,簡化開發(fā)Spring是一個大工廠,可以將所有對象的創(chuàng)建和依賴關(guān)系的維護都交給Spring進行管理。2.支持AOP編程Spring提供AOP(面向切面)編程,可以方便地實現(xiàn)權(quán)限攔截、運行監(jiān)控等操作。3.聲明式事務(wù)的支持只需要通過配置就可以完成對事務(wù)的管理而無需進行手動編程。4.方便程序的測試Spring默認(rèn)提供了對Junit的集成,可以通過注解的方式進行程序測試。5.方便集成各種優(yōu)秀框架Spring的控制反轉(zhuǎn)(IOC)和依賴注入(DI)等特性也方便其集成其它優(yōu)秀框架,例如:JPA、Hibernate、MyBatis等。6.降低JavaEEAPI的使用難度Spring對JavaEE開發(fā)中使用復(fù)雜度比較高的一些API(例如:JDBC、JavaMail、RPC等)進行了二次封裝,使這些組件的應(yīng)用難度大大降低。Spring體系結(jié)構(gòu)2.4Spring采用了分層架構(gòu),主要分為核心容器、數(shù)據(jù)訪問/集成、Web、Test和其它等五層,共提供了大約20個組件模塊,用戶可以依據(jù)項目的需求進行使用。Spring體系結(jié)構(gòu)——核心容器(CoreContainer)層2.4-Core模塊提供了框架的基本組成部分,包括控制反轉(zhuǎn)(IoC)和依賴注入(DI)等功能。-Beans模塊的核心是使用工廠模式實現(xiàn)的BeanFactory類,該類使用單例方式來創(chuàng)建實例,并可以把配置和依賴從業(yè)務(wù)邏輯中解耦。-Context模塊是以Core和
Beans
模塊為基礎(chǔ)建立起來的,它以一種類似于JNDI注冊的方式訪問對象。-SpEL(Spring-expression
)模塊提供了強大的表達(dá)式語言,用于在運行時查詢和操作對象圖(ObjectDiagram)。Spring體系結(jié)構(gòu)——數(shù)據(jù)訪問/集成(DataAccess/Integration)層2.4-JDBC是Java提供的一種數(shù)據(jù)庫連接技術(shù),它通過一個稱為JDBC抽象層的接口,為Java應(yīng)用程序與數(shù)據(jù)庫之間提供了一種獨立性的解決方案。-ORM模塊提供了對象關(guān)系映射API的集成,包括JPA、JDO和Hibernate等。通過此模塊,ORM框架可以很容易與Spring框架進行整合。-OXM模塊提供了對OXM實現(xiàn)的支持,例如JAXB、XML
Beans、XStream等,該模塊用于將Java對象映射成XML數(shù)據(jù),或?qū)ML數(shù)據(jù)映射成Java對象。-JMS模塊用于提供面向Java的消息服務(wù),包含了生產(chǎn)(produce)和消費(consume)消息的功能,它經(jīng)常用于在多個應(yīng)用程序或分布式系統(tǒng)之間傳遞消息。-Transactions模塊提供了特殊接口類以及POJO對象的支持,可用于編程式和聲明式事務(wù)管理。Spring體系結(jié)構(gòu)——web層2.4-Web模塊提供了面向web的應(yīng)用上下文和基本功能,例如多文件上傳、初始化IoC容器等功能。-Web-MVC模塊為web應(yīng)用提供了MVC模式和RESTWeb服務(wù)的實現(xiàn)。Web-MVC模塊可以使領(lǐng)域模型代碼與web表單完全分離,并且可以與Spring框架的其它功能進行集成。-Web-Socket模塊為WebSocket-based提供了支持,允許開發(fā)者開發(fā)基于WebSocket協(xié)議的Web應(yīng)用程序。-Web-Portlet模塊為應(yīng)用程序提供了用于Portlet環(huán)境下的mvc實現(xiàn)。Portlet是一種Web應(yīng)用程序組件規(guī)范,它允許在Web頁面上嵌入獨立的、可重用的組件,與傳統(tǒng)的基于Servlet容器的Web應(yīng)用程序不同,Portlet應(yīng)用程序可以在Web頁面上同時呈現(xiàn)多個獨立的組件,而每個組件都有自己的狀態(tài)和生命周期。Spring體系結(jié)構(gòu)——Test層2.4-SpringTest是Spring中用于測試的模塊,它除了支持與Junit、TestNG等測試框架的集成,還提供了一些基于Spring的額外測試功能,例如模擬Http請求等。Spring體系結(jié)構(gòu)——其他2.4-AOP模塊提供了面向切面編程思想的實現(xiàn),它允許開發(fā)人員通過定義方法攔截器和切入點,來實現(xiàn)代碼解耦。這種解耦使得業(yè)務(wù)邏輯與橫向關(guān)注點的代碼徹底分離,提高了系統(tǒng)的可維護性和可擴展性。-Aspects模塊提供了與AspectJ框架的集成,這是一個功能強大且成熟的面向切面編程(AOP)框架。-Instrumentation模塊提供了一種在運行時監(jiān)控和修改Java應(yīng)用程序的能力。它可以被應(yīng)用服務(wù)器(如Tomcat、WebSphere等)用于動態(tài)加載和修改類,以實現(xiàn)應(yīng)用程序的動態(tài)擴展和更新,從而提高其靈活性和可維護性。SpringIOC容器2.5Spring框架提供了兩種核心容器接口,分別為BeanFactory和ApplicationContext。1、BeanFactoryBeanFactory是SpringIOC容器的底層接口,主要負(fù)責(zé)各種Bean的定義、創(chuàng)建、加載和對象間的依賴管理,它是工廠模式的具體實現(xiàn),但BeanFactory實例化后并不會自動實例化Bean,只有當(dāng)Bean被使用時,BeanFactory才會對該Bean進行實例化并對依賴關(guān)系進行配置。由于BeanFactory只是底層接口,并不是IOC容器的具體實現(xiàn),因此在使用時通常通過其實現(xiàn)類來完成對象的實例化,例如XmlBeanFactory就是其中之一,它可以通過XML方式加載對象與對象之間的依賴關(guān)系。例如:SpringIOC容器2.52、ApplicationContextApplicationContext是BeanFactory的子接口,也被稱為應(yīng)用上下文,它不僅包含了BeanFactory的所有功能,還添加了對國際化、資源訪問、事件傳播等方面的支持。與BeanFactory不同的是,ApplicationContext實例化后會自動對所有的單例Bean進行實例化并配置它們之間的依賴關(guān)系。由于ApplicationContext接口功能更為強大,因此在絕大多數(shù)場景下,都會使用ApplicationContext作為SpringIOC容器。ApplicationContext接口可以通過以下兩種方式完成實例化:(1)通過ClassPathXmlApplicationContext類完成實例化(推薦使用)ClassPathXmlApplicationContext類會從類路徑classPath中尋找并加載指定的XML配置文件,以完成ApplicationContext的實例化。SpringIOC容器2.5(2)通過FileSystemXmlApplicationContext類完成實例化。FileSystemXmlApplicationContext類會從指定的文件系統(tǒng)路徑(絕對路徑)中尋找并加載對應(yīng)的XML配置文件,以完成ApplicationContext的實例化如果不指定絕對路徑,F(xiàn)ileSystemXmlApplicationContext將嘗試在當(dāng)前工作目錄中查找指定的配置文件。然而這種方式可能會導(dǎo)致程序的靈活性變差,因為當(dāng)前工作目錄可能因環(huán)境變化而改變,從而導(dǎo)致無法正確找到配置文件。因此,推薦使用ClassPathXmlApplicationContext來從類路徑中加載配置文件,這樣可以確保配置文件始終可以被正確加載。Spring入門程序——項目結(jié)構(gòu)2.6-com.spring目錄下存放spring入門程序的代碼。-resources目錄下存放Spring核心配置文件applicationContext.xml。-pom.xml:是Maven項目的核心配置文件,用于管理項目所需的依賴包和其他配置信息Spring入門程序——1.導(dǎo)入項目依賴包2.6Spring入門程序——2.創(chuàng)建TestHello類2.6Spring入門程序——3.創(chuàng)建Spring配置文件(applicationContext.xml)2.6Spring入門程序——4.創(chuàng)建測試類App2.6E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3項目實現(xiàn)——用戶查詢功能03項目整體結(jié)構(gòu)3.1mapper:dao層,存放用戶模塊的接口文件(UserMapper.java)和映射文件(UserMapper.xml)。pojo:存放用戶實體類User。resources:存放Mybatis的配置文件mybatis-config.xml和spring的配置文件spring-dao.xmltest:單元測試目錄,存放測試類UserTest項目實現(xiàn)步驟3.2導(dǎo)入項目依賴包利用Spring整合Mybatis刪除mybatis數(shù)據(jù)源配置創(chuàng)建用戶實體類創(chuàng)建UserMapper接口創(chuàng)建UserMapper.xml創(chuàng)建UserMapper接口實現(xiàn)類測試類編寫E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3經(jīng)典問題強化04經(jīng)典問題強化——Spring框架的優(yōu)缺點4.1優(yōu)點:(1)方便解耦,簡化開發(fā)。(2)支持AOP編程。(3)支持聲明式事務(wù)。(4)方便程序測試。(5)方便集成各種其他框架。缺點:(1)Spring組件的代碼是輕量級的,但是其配置卻相對比較復(fù)雜,這就需要開發(fā)人員在編寫應(yīng)用程序邏輯的同時進行額外的思考和調(diào)整,從而帶來額外的開銷和負(fù)擔(dān)。(2)由于Spring框架使用反射技術(shù)來實現(xiàn)某些功能,這可能會對性能產(chǎn)生一定的影響。經(jīng)典問題強化——BeanFactory與ApplicationContext的區(qū)別是什么4.2(1)功能上的區(qū)別BeanFactory是Spring框架最底層的接口之一,它定義了SpringIOC容器的基本功能,包括Bean的定義、加載、實例化、依賴注入以及生命周期管理等。ApplicationContext是BeanFactory的子接口,它除了繼承BeanFactory接口的基本功能外還做了許多有用的擴展,例如,它繼承了MessageSource接口,因此支持國際化。另外它還支持資源文件的訪問和在監(jiān)聽器中注冊bean的事件等功能。(2)加載形式的的區(qū)別BeanFactory采取延遲加載的方式,它在初始化容器時并未實例化Bean,直到代碼需要使用某個Bean(調(diào)用getBean()方法)時才會實例化該Bean。ApplicationContext采取立即加載的方式,它在初始化應(yīng)用上下文時就會實例化所有單例Bean,當(dāng)配置文件中的Bean較多時,啟動會比較慢,同時占用內(nèi)存空間也會比較大,但在運行時由于所有的Bean都已經(jīng)加載到SpringIOC容器中,因此調(diào)用這些bean的時候速度會比較快。(3)注冊方式BeanFactory需要手動注冊,而ApplicationContext是自動注冊。經(jīng)典問題強化——結(jié)合CRM系統(tǒng)描述Spring與Mybatis整合的過程?4.3(1)首先在Spring配置文件中加入對數(shù)據(jù)源的管理,并且要注冊UserMapper接口。(2)利用Spring創(chuàng)建sqlSessionFactory,并為sqlSessionFactory指定數(shù)據(jù)源dataSource。(3)編寫da
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安裝工程分包合同范例
- 典當(dāng)行借款合同范例
- 面包原料采購合同模板
- 保健品供應(yīng)商分銷合同
- 展會服務(wù)合同中的展會承諾
- 干果選購合同解讀
- 域名解析服務(wù)合同案例分析
- 招標(biāo)文件合同重要內(nèi)容
- 理發(fā)室承包合同示范文本
- 企業(yè)內(nèi)訓(xùn)服務(wù)合同樣本
- 事業(yè)單位考試大綱題庫考點《人文歷史》(2023年版)-1
- 軟件項目開發(fā)投標(biāo)文件技術(shù)方案
- 《設(shè)計質(zhì)量保證措施》
- Python試題庫(附參考答案)
- 有關(guān)于企業(yè)的調(diào)研報告范文(10篇)
- 君樂寶在線測評題答案
- 2024年秋季新人教PEP版英語三年級上冊全冊教案
- 2024年重慶市高考地理試卷(含答案與解析)
- 教育機構(gòu)合作伙伴招募方案
- 高校實驗室安全基礎(chǔ)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 大學(xué)生心理健康教育學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
評論
0/150
提交評論