版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3第六章spring基礎項目需求背景知識項目介紹經(jīng)典問題強化本章小結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.新建用戶新用戶可以填寫相關信息進行注冊,并且可以在創(chuàng)建新用戶時設置激活狀態(tài),默認激活狀態(tài)為開啟,這樣用戶注冊后就可以直接登錄系統(tǒng)。3.用戶詳情可以點擊詳情按鈕查看用戶所具有的權限信息。在CRM系統(tǒng)中不同用戶具有不同的訪問權限,這樣就可以讓不同身份的用戶操作不同的資源。4.查詢用戶可以通過用戶名、用戶郵箱、激活狀態(tài)等多種方式對用戶信息進行查詢。功能描述1.1圖1用戶模塊功能結構圖圖2用戶查詢功能效果圖E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3背景知識02知識導圖2.1圖3第6章知識導圖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應用各層的解決方案:-View層(表現(xiàn)層)通過控制器(Controller)接收用戶請求并將處理結果通過用戶界面響應給用戶,一般通過SpringMVC框架來實現(xiàn)。-
Service層(業(yè)務邏輯層)主要負責應用程序的業(yè)務邏輯和事務處理,通常使用Spring框架來實現(xiàn)。-Dao層(數(shù)據(jù)訪問層),通常使用MyBatis框架來實現(xiàn),它允許開發(fā)人員通過SQL語句訪問數(shù)據(jù)庫,并提供數(shù)據(jù)庫結果的對象關系映射(ORM)功能。因此,Spring框架是企業(yè)級應用開發(fā)很好的"一站式"選擇,雖然它貫穿于表現(xiàn)層、業(yè)務邏輯層和數(shù)據(jù)訪問層,但Spring并不想取代那些已有的框架,而是以高度的開放性與它們進行整合。Spring優(yōu)點2.3Spring框架具有簡單、可測試和松耦合等特點,它不但可以用于服務端開發(fā),也可以用于其它任何一種Java應用的開發(fā)。其具有以下優(yōu)點:1.方便解耦,簡化開發(fā)Spring是一個大工廠,可以將所有對象的創(chuàng)建和依賴關系的維護都交給Spring進行管理。2.支持AOP編程Spring提供AOP(面向切面)編程,可以方便地實現(xiàn)權限攔截、運行監(jiān)控等操作。3.聲明式事務的支持只需要通過配置就可以完成對事務的管理而無需進行手動編程。4.方便程序的測試Spring默認提供了對Junit的集成,可以通過注解的方式進行程序測試。5.方便集成各種優(yōu)秀框架Spring的控制反轉(zhuǎn)(IOC)和依賴注入(DI)等特性也方便其集成其它優(yōu)秀框架,例如:JPA、Hibernate、MyBatis等。6.降低JavaEEAPI的使用難度Spring對JavaEE開發(fā)中使用復雜度比較高的一些API(例如:JDBC、JavaMail、RPC等)進行了二次封裝,使這些組件的應用難度大大降低。Spring體系結構2.4Spring采用了分層架構,主要分為核心容器、數(shù)據(jù)訪問/集成、Web、Test和其它等五層,共提供了大約20個組件模塊,用戶可以依據(jù)項目的需求進行使用。Spring體系結構——核心容器(CoreContainer)層2.4-Core模塊提供了框架的基本組成部分,包括控制反轉(zhuǎn)(IoC)和依賴注入(DI)等功能。-Beans模塊的核心是使用工廠模式實現(xiàn)的BeanFactory類,該類使用單例方式來創(chuàng)建實例,并可以把配置和依賴從業(yè)務邏輯中解耦。-Context模塊是以Core和
Beans
模塊為基礎建立起來的,它以一種類似于JNDI注冊的方式訪問對象。-SpEL(Spring-expression
)模塊提供了強大的表達式語言,用于在運行時查詢和操作對象圖(ObjectDiagram)。Spring體系結構——數(shù)據(jù)訪問/集成(DataAccess/Integration)層2.4-JDBC是Java提供的一種數(shù)據(jù)庫連接技術,它通過一個稱為JDBC抽象層的接口,為Java應用程序與數(shù)據(jù)庫之間提供了一種獨立性的解決方案。-ORM模塊提供了對象關系映射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的消息服務,包含了生產(chǎn)(produce)和消費(consume)消息的功能,它經(jīng)常用于在多個應用程序或分布式系統(tǒng)之間傳遞消息。-Transactions模塊提供了特殊接口類以及POJO對象的支持,可用于編程式和聲明式事務管理。Spring體系結構——web層2.4-Web模塊提供了面向web的應用上下文和基本功能,例如多文件上傳、初始化IoC容器等功能。-Web-MVC模塊為web應用提供了MVC模式和RESTWeb服務的實現(xiàn)。Web-MVC模塊可以使領域模型代碼與web表單完全分離,并且可以與Spring框架的其它功能進行集成。-Web-Socket模塊為WebSocket-based提供了支持,允許開發(fā)者開發(fā)基于WebSocket協(xié)議的Web應用程序。-Web-Portlet模塊為應用程序提供了用于Portlet環(huán)境下的mvc實現(xiàn)。Portlet是一種Web應用程序組件規(guī)范,它允許在Web頁面上嵌入獨立的、可重用的組件,與傳統(tǒng)的基于Servlet容器的Web應用程序不同,Portlet應用程序可以在Web頁面上同時呈現(xiàn)多個獨立的組件,而每個組件都有自己的狀態(tài)和生命周期。Spring體系結構——Test層2.4-SpringTest是Spring中用于測試的模塊,它除了支持與Junit、TestNG等測試框架的集成,還提供了一些基于Spring的額外測試功能,例如模擬Http請求等。Spring體系結構——其他2.4-AOP模塊提供了面向切面編程思想的實現(xiàn),它允許開發(fā)人員通過定義方法攔截器和切入點,來實現(xiàn)代碼解耦。這種解耦使得業(yè)務邏輯與橫向關注點的代碼徹底分離,提高了系統(tǒng)的可維護性和可擴展性。-Aspects模塊提供了與AspectJ框架的集成,這是一個功能強大且成熟的面向切面編程(AOP)框架。-Instrumentation模塊提供了一種在運行時監(jiān)控和修改Java應用程序的能力。它可以被應用服務器(如Tomcat、WebSphere等)用于動態(tài)加載和修改類,以實現(xiàn)應用程序的動態(tài)擴展和更新,從而提高其靈活性和可維護性。SpringIOC容器2.5Spring框架提供了兩種核心容器接口,分別為BeanFactory和ApplicationContext。1、BeanFactoryBeanFactory是SpringIOC容器的底層接口,主要負責各種Bean的定義、創(chuàng)建、加載和對象間的依賴管理,它是工廠模式的具體實現(xiàn),但BeanFactory實例化后并不會自動實例化Bean,只有當Bean被使用時,BeanFactory才會對該Bean進行實例化并對依賴關系進行配置。由于BeanFactory只是底層接口,并不是IOC容器的具體實現(xiàn),因此在使用時通常通過其實現(xiàn)類來完成對象的實例化,例如XmlBeanFactory就是其中之一,它可以通過XML方式加載對象與對象之間的依賴關系。例如:SpringIOC容器2.52、ApplicationContextApplicationContext是BeanFactory的子接口,也被稱為應用上下文,它不僅包含了BeanFactory的所有功能,還添加了對國際化、資源訪問、事件傳播等方面的支持。與BeanFactory不同的是,ApplicationContext實例化后會自動對所有的單例Bean進行實例化并配置它們之間的依賴關系。由于ApplicationContext接口功能更為強大,因此在絕大多數(shù)場景下,都會使用ApplicationContext作為SpringIOC容器。ApplicationContext接口可以通過以下兩種方式完成實例化:(1)通過ClassPathXmlApplicationContext類完成實例化(推薦使用)ClassPathXmlApplicationContext類會從類路徑classPath中尋找并加載指定的XML配置文件,以完成ApplicationContext的實例化。SpringIOC容器2.5(2)通過FileSystemXmlApplicationContext類完成實例化。FileSystemXmlApplicationContext類會從指定的文件系統(tǒng)路徑(絕對路徑)中尋找并加載對應的XML配置文件,以完成ApplicationContext的實例化如果不指定絕對路徑,F(xiàn)ileSystemXmlApplicationContext將嘗試在當前工作目錄中查找指定的配置文件。然而這種方式可能會導致程序的靈活性變差,因為當前工作目錄可能因環(huán)境變化而改變,從而導致無法正確找到配置文件。因此,推薦使用ClassPathXmlApplicationContext來從類路徑中加載配置文件,這樣可以確保配置文件始終可以被正確加載。Spring入門程序——項目結構2.6-com.spring目錄下存放spring入門程序的代碼。-resources目錄下存放Spring核心配置文件applicationContext.xml。-pom.xml:是Maven項目的核心配置文件,用于管理項目所需的依賴包和其他配置信息Spring入門程序——1.導入項目依賴包2.6Spring入門程序——2.創(chuàng)建TestHello類2.6Spring入門程序——3.創(chuàng)建Spring配置文件(applicationContext.xml)2.6Spring入門程序——4.創(chuàng)建測試類App2.6E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3項目實現(xiàn)——用戶查詢功能03項目整體結構3.1mapper:dao層,存放用戶模塊的接口文件(UserMapper.java)和映射文件(UserMapper.xml)。pojo:存放用戶實體類User。resources:存放Mybatis的配置文件mybatis-config.xml和spring的配置文件spring-dao.xmltest:單元測試目錄,存放測試類UserTest項目實現(xiàn)步驟3.2導入項目依賴包利用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)支持聲明式事務。(4)方便程序測試。(5)方便集成各種其他框架。缺點:(1)Spring組件的代碼是輕量級的,但是其配置卻相對比較復雜,這就需要開發(fā)人員在編寫應用程序邏輯的同時進行額外的思考和調(diào)整,從而帶來額外的開銷和負擔。(2)由于Spring框架使用反射技術來實現(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采取立即加載的方式,它在初始化應用上下文時就會實例化所有單例Bean,當配置文件中的Bean較多時,啟動會比較慢,同時占用內(nèi)存空間也會比較大,但在運行時由于所有的Bean都已經(jīng)加載到SpringIOC容器中,因此調(diào)用這些bean的時候速度會比較快。(3)注冊方式BeanFactory需要手動注冊,而ApplicationContext是自動注冊。經(jīng)典問題強化——結合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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新建加油站鋼筋施工方案及流程
- 招標貨物運輸服務招標信息
- 房屋買賣合同中的保證人角色解讀
- 建筑工地錨索分包勞務協(xié)議
- 愛的無條件諾言
- 砌筑分包工程勞務合作協(xié)議
- 月嫂服務合同簽訂要點
- 棉拖鞋生產(chǎn)協(xié)議
- 房屋預售合同買賣風險
- 綠色有機大米和食用油訂購合同
- DB62T 4872-2024 養(yǎng)老護理員培訓基地建設規(guī)范
- 2024年大學班主任工作總結經(jīng)典版(4篇)
- 冬季防凍防滑防火安全教育主題班會市公開課一等獎省賽課微課金獎課件
- 四川省綿陽市2023-2024學年高一上學期期末檢測英語試題(解析版)
- 《生活中的比》(教學設計)-2023-2024學年北師大版數(shù)學六年級上冊
- 中醫(yī)內(nèi)科學智慧樹知到答案2024年浙江中醫(yī)藥大學
- 都江堰衛(wèi)生系統(tǒng)考試真題
- DL∕T 2602-2023 電力直流電源系統(tǒng)保護電器選用與試驗導則
- 小學必背古詩練習題(一年級上冊)(含答案)
- (新版)調(diào)車長(技師)技能鑒定理論考試題庫(濃縮400題)
- 《中國糖尿病地圖》要點解讀
評論
0/150
提交評論