




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
..持久層:DAO層(mapper)DAO層:DAO層主要是做數據持久層的工作,負責與數據庫進行聯絡的一些任務都封裝在此,
DAO層的設計首先是設計DAO的接口,然后在Spring的配置文件中定義此接口的實現類,然后就可在模塊中調用此接口來進行數據業務的處理,而不用關心此接口的具體實現類是哪個類,顯得結構非常清晰,DAO層的數據源配置,以及有關數據庫連接的參數都在Spring的配置文件中進行配置。業務層:Service層Service層:Service層主要負責業務模塊的邏輯應用設計。
首先設計接口,再設計其實現的類接著再在Spring的配置文件中配置其實現的關聯。這樣我們就可以在應用中調用Service接口來進行業務處理。Service層的業務實現,具體要調用到已定義的DAO層的接口,封裝Service層的業務邏輯有利于通用的業務邏輯的獨立性和重復利用性,程序顯得非常簡潔。表現層:Controller層(Handler層)Controller層:Controller層負責具體的業務模塊流程的控制,
在此層里面要調用Service層的接口來控制業務流程,控制的配置也同樣是在Spring的配置文件里面進行,針對具體的業務流程,會有不同的控制器,我們具體的設計過程中可以將流程進行抽象歸納,設計出可以重復利用的子單元流程模塊,這樣不僅使程序結構變得清晰,也大大減少了代碼量。View層View層此層與控制層結合比較緊密,需要二者結合起來協同工發。View層主要負責前臺jsp頁面的表示.各層聯系DAO層,Service層這兩個層次都可以單獨開發,互相的耦合度很低,完全可以獨立進行,這樣的一種模式在開發大項目的過程中尤其有優勢Controller,View層因為耦合度比較高,因而要結合在一起開發,但是也可以看作一個整體獨立于前兩個層進行開發。這樣,在層與層之前我們只需要知道接口的定義,調用接口即可完成所需要的邏輯單元應用,一切顯得非常清晰簡單。Service邏輯層設計Service層是建立在DAO層之上的,建立了DAO層后才可以建立Service層,而Service層又是在Controller層之下的,因而Service層應該既調用DAO層的接口,又要提供接口給Controller層的類來進行調用,它剛好處于一個中間層的位置。每個模型都有一個Service接口,每個接口分別封裝各自的業務處理方法。SSM框架整合說明整合Dao層MyBatis配置文件
sqlMapConfig.xml配置別名:用于批量掃描Pojo包不需要配置mappers標簽,但一定要保證mapper.java文件與mapper.xml文件同名。<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-////DTDConfig3.0//EN""/dtd/mybatis-3-config.dtd"><configuration><!--配置別名--><typeAliases><!--批量掃描別名--><packagename="cn.itcast.ssm.po"/></typeAliases></configuration>123456789Spring配置文件
applicationContext-dao.xml主要配置容
數據源SqlSessionFactorymapper掃描器
這里使用sqlSessionFactoryBeanName屬性是因為如果配置的是sqlSessionFactory屬性,將不會先加載數據庫配置文件及數據源配置<beansxmlns="./schema/beans"xmlns:xsi="./2001/XMLSchema-instance"xmlns:mvc="./schema/mvc"xmlns:context="./schema/context"xmlns:aop="./schema/aop"xmlns:tx="./schema/tx"xsi:schemaLocation="./schema/beans./schema/beans/spring-beans-3.2.xsd./schema/mvc./schema/mvc/spring-mvc-3.2.xsd./schema/context./schema/context/spring-context-3.2.xsd./schema/aop./schema/aop/spring-aop-3.2.xsd./schema/tx./schema/tx/spring-tx-3.2.xsd"><!--加載perties文件中的容,perties文件中key命名要有一定的特殊規則--><context:property-placeholderlocation="classpath:perties"/><!--配置數據源,dbcp--><beanid="dataSource"class="mons.dbcp.BasicDataSource"destroy-method="close"><propertyname="driverClassName"value="${jdbc.driver}"/><propertyname="url"value="${jdbc.url}"/><propertyname="username"value="${jdbc.username}"/><propertyname="password"value="${jdbc.password}"/><propertyname="maxActive"value="30"/><propertyname="maxIdle"value="5"/></bean><!--sqlSessionFactory--><beanid="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean"><!--數據庫連接池--><propertyname="dataSource"ref="dataSource"/><!--加載mybatis的全局配置文件--><propertyname="configLocation"value="classpath:mybatis/sqlMapConfig.xml"/></bean><!--mapper掃描器--><beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer"><!--掃描包路徑,如果需要掃描多個包,中間使用半角逗號隔開--><propertyname="basePackage"value="cn.itcast.ssm.mapper"></property><propertyname="sqlSessionFactoryBeanName"value="sqlSessionFactory"/></bean></beans>1234567891011121314151617181920212223242526272829303132333435363738394041424344創建所需的Mapper.java一般不動原始生成的po類,而是將原始類進行集成vo類publicinterfaceItemsMappperCustom{publicList<ItemsCustom>findItemsList(ItemsQueryVoitemsQueryVo)throwsException;}123創建POJO類對應的mapper.xml<mappernamespace="test.ssm.mapper.ItemsMappperCustom"><selectid="findItemsList"parameterTyep="test.ssm.po.ItemsQueryVo"resultType="test.ssm.po.ItemsCustom">selectitems.*fromitemswherelike'%${itemsC}%'1234整合service層目標:讓spring管理service接口。定義service接口一般在ssm.service包下定義接口eg:ItemsServicepublicinterfaeItemsService{publicList<ItemsCustom>findItemsList(ItemsQueryVoitemsQueryVo)throwsException;}123定義ServiceImpl實現類因為在applicationContext-dao.xml中已經使用了mapper掃描器,這里可以直接通過注解的方式將itemsMapperCustom自動注入。publicclassItemsServiceImplimplementsItemsService{AutowiredprivateItemsMapperCustomitemsMapperCustom;OverridepublicList<ItemsCustom>findItemsList(ItemsQueryVoitemsQueryVo)throwsException{returnitemsMapperCustom.findItemsList(itemsQueryVo);}}12345678910在spring容器配置serviceapplicationContext-service.xml在此文件中配置service。<beanid="itemsService"class="test.ssm.service.impl.ItemsSrviceImpl"/>1事物控制(不夠熟悉)在applicationContext-transaction.xml中使用spring聲明式事務控制方法對mybatis操作數據庫事物控制,spring使用jdbc的事物控制類是DataSourceTransactionManager因為操作了數據庫需要事物控制,所以需要配置數據源定義了切面<beansxmlns="./schema/beans"xmlns:xsi="./2001/XMLSchema-instance"xmlns:mvc="./schema/mvc"xmlns:context="./schema/context"xmlns:aop="./schema/aop"xmlns:tx="./schema/tx"xsi:schemaLocation="./schema/beans./schema/beans/spring-beans-3.2.xsd./schema/mvc./schema/mvc/spring-mvc-3.2.xsd./schema/context./schema/context/spring-context-3.2.xsd./schema/aop./schema/aop/spring-aop-3.2.xsd./schema/tx./schema/tx/spring-tx-3.2.xsd"><!--事務管理器對mybatis操作數據庫事務控制,spring使用jdbc的事務控制類--><beanid="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><!--數據源在dataSource在applicationContext-dao.xml中已經配置--><propertyname="dataSource"ref="dataSource"/></bean><!--通知--><tx:adviceid="txAdvice"transaction-manager="transactionManager"><tx:attributes><!--傳播行為--><tx:methodname="save*"propagation="REQUIRED"/><tx:methodname="delete*"propagation="REQUIRED"/><tx:methodname="insert*"propagation="REQUIRED"/><tx:methodname="update*"propagation="REQUIRED"/><tx:methodname="find*"propagation="SUPPORTS"read-only="true"/><tx:methodname="get*"propagation="SUPPORTS"read-only="true"/><tx:methodname="select*"propagation="SUPPORTS"read-only="true"/></tx:attributes></tx:advice><!--aop--><aop:config><aop:advisoradvice-ref="txAdvice"pointcut="execution(*.itcast.ssm.service.impl.*.*(..))"/></aop:config></beans>12345678910111213141516171819202122232425262728293031323334353637383940整合springmvc創建springmvc.xml文件,配置處理器映射器、適配器、視圖解析器<context:component-scanbase-package="cn.itcast.ssm.controller"></context:component-scan><!--使用mvc:annotation-driven加載注解映射器和注解適配器配置--><mvc:annotation-driven></mvc:annotation-driven><!--視圖解析器解析jsp解析,默認使用jstl標簽,classpath下的得有jstl的包--><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><!--配置jsp路徑的前綴--><propertyname="prefix"value="/WEB-INF/jsp/"/><!--配置jsp路徑的后綴--><propertyname="suffix"value=".jsp"/></bean>12345678910111213配置前端控制器在web.xml中加入如下容contextConfigLocation配置springmvc加載的配置文件(配置處理器映射器、適配器等等)
如果不配置contextConfigLocation,默認加載的是/WEB-INF/servlet名稱-serlvet.xml(springmvc-servlet.xml)在url-pattern中
填入*.action,表示訪問以.action結尾由DispatcherServlet進行解析填入/,所有訪問的地址都由DispatcherServlet進行解析,對于靜態文件的解析需要配置不讓DispatcherServlet進行解析,使用此種方式可以實現RESTful風格的url<!--springmvc前端控制器--><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>*.action</url-pattern></servlet-mapping>123456789101112131415編寫Controller(Handler)CongtrollerRequestMapping("/items")//窄化路徑publicclassItemsController{AutowiredprivateItemsServiceitemsSer
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 氣候變化環境影響評估表
- 汽車電子控制技術原理與運用試題及答案
- 合同私車租賃合同
- 地理地質地貌學題庫概覽
- 高新技術產業專利申請數量統計表
- 旅游業市場份額分布統計表
- Python大數據分析與挖掘實戰:微課版(第2版)課件 第3章 數據處理包Pandas
- 農業生物科技實踐練習題
- 那次難忘的校園活動記事類作文13篇范文
- 縣域教育資源分布與基礎設施現狀分析
- 《現代齒軌交通設計標準》
- 南京信息工程大學《數據庫原理與應用Ⅱ》2022-2023學年期末試卷
- 雨水回收系統技術規格書
- 船舶敬港與港口作業考核試卷
- 禁毒情報學習通超星期末考試答案章節答案2024年
- DB11T 1946-2021 智慧工地評價標準
- 門窗更換承包合同
- 污水管道工程施工組織設計
- 職業教育專業教學資源庫建設工作方案和技術要求
- DB14T-苜蓿草顆粒生產技術規程
- 2024至2030年中國番茄行業研究及市場投資決策報告
評論
0/150
提交評論