版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Spring3Mvc開發(fā)平臺描述:由于公司現(xiàn)有開發(fā)框架使用過于復(fù)雜,機械性質(zhì)的工作還需要人工來完成,每個對應(yīng)的控制器及視圖控制器都要進行手動配置XML文件,還需要在全局容器中進行依賴注入,而且對于業(yè)務(wù)層還需要人工手動進行事物處理等復(fù)雜和重復(fù)性質(zhì)的工作,開發(fā)效率低下,所以Amundsen研發(fā)小組搭建了一套當(dāng)前最主流的開發(fā)平臺【Spring3MVC開發(fā)框架】。框架結(jié)構(gòu)及開發(fā)規(guī)則使用說明如下:一 框架結(jié)構(gòu)主要由以下幾部份組成1. Spring + SpringMvc 解釋:最底層核心框架1.1 依賴注入1.2 AOP橫向切面技術(shù) 、ASPECT切面框架1.3 啟用Annotation注解及MVC驅(qū)動
2、器2. MyBatis 解釋:主要應(yīng)用數(shù)據(jù)庫持久層操作,并且所有相關(guān)SQL全部為XML文件方便管理與維護3. SpringSecurity :安全認證框架解釋:主要應(yīng)用于框架的全安性(注:暫時未啟用)3.1 用戶身份的認證過程3.2 用戶的請求進行攔截并分析是否被授權(quán)等過程,3.3 會話連接的控制3.4 訪問端口及地址轉(zhuǎn)換的控制4. 視圖層:支持任何前臺交互視圖語言4.1 主要交互框架以EXT5.0為主4.2 Flex Builder4.6 Actionscript3.0 語言,用于特殊模塊處理應(yīng)用二 框架目錄結(jié)構(gòu)說明1. /src/com/fcx/app/說明:此目錄下為Flex管理部份應(yīng)用
3、所有核心業(yè)務(wù)(注:非Flex開發(fā)人員禁止更改)2. /src/com/longhope/business/說明:此目錄下為公司項目所有模塊相關(guān)的業(yè)務(wù)文件,每個文件夾都是功能模塊的拼音簡寫(注:文件夾的結(jié)構(gòu)及目錄層級是與菜單結(jié)構(gòu)一置的,這樣方便對應(yīng)管理與維護),并且在有效功能模塊對應(yīng)的文件夾下必需要創(chuàng)建“action”、“mapper”、“model”、“service”、”service/impl”等如下文件夾,此結(jié)構(gòu)必需遵循開發(fā)框架規(guī)則:action :控制器類mapper :Dao接口類及接口所對應(yīng)的SQLMAP文件 (需要注意的是:所有SQL必需大寫,除參數(shù))model : 模型類(即:
4、實體對象)service: 業(yè)務(wù)接口 service.impl:業(yè)務(wù)接口的實現(xiàn)類 注意:如果是前后臺分離,以遠程接口方式開發(fā),那么就是如下的結(jié)構(gòu),如圖所示:前端需要的結(jié)構(gòu)-后端需要的結(jié)構(gòu)3. /i18n說明:國際化管理(注:此部份為系統(tǒng)預(yù)留功能,暫時沒應(yīng)用)4. /src/com/fcx/app/androic/src/com/fcx/app/ios說明:移動端開發(fā)業(yè)務(wù)在此目錄下開發(fā),因為由于業(yè)務(wù)的特殊性,web客戶端所有請求是需要認證和授權(quán)的,而只有移動端是不需要認證授權(quán)的,并且所有移動端的請求必需是”.do”結(jié)束例如:移動端請求 user/login.do Web端請求 user/logi
5、n.action5. /framework說明:此目錄下為框架核心配置文件及系統(tǒng)全局參數(shù)等文件;例如 端口等數(shù)據(jù)配置 /framework/com/fcx/core/ 說明:此目錄下為框架所有通用類備注:此目錄下所有配置文件禁止開發(fā)人員更改,如果需要變更或追加改修通用類等文件請與(譚亮:管理員)開發(fā)人員聯(lián)系6. /lib 開發(fā)框架核心業(yè)務(wù)相關(guān)JAR包/lib/common/lib/flex/lib/mybatis/lib/mysql/lib/openCSV/lib/oracle/lib/poi/lib/security/lib/spring/lib/xml說明:所有框架及業(yè)務(wù)相關(guān)JAR包,主要
6、是進行了分類方便管理與維護備注:以上目錄結(jié)構(gòu)禁止變更或刪除,如果需要追加請聯(lián)系管理員7. /WebRoot/fileUpload:相關(guān)業(yè)務(wù)文件上傳目錄 /flex:Flash管理平臺及前臺調(diào)用功能模塊等頁面相關(guān)文件(例如:自定義匯總、報表制度定義) /page:所有管理系統(tǒng)交互頁面,注此文件夾下的所有子文件夾都是相關(guān)模塊拼音簡寫創(chuàng)建,以及層次結(jié)構(gòu)與菜單一置,不允許隨意追加或創(chuàng)建 (注:所有相關(guān)開發(fā)并互頁面必需在此目下創(chuàng)建,并且與功能模塊結(jié)構(gòu)一置)/resources:所有相關(guān)資源文件(例如:JS,圖片,樣式等文件)并且都要有序的創(chuàng)建存儲,不允許重復(fù)/target:存儲全局的入口文件及認證成功或
7、失敗等跳轉(zhuǎn)文件,還有捕獲系統(tǒng)全局性異常文件 /WEB-INF/config/applicationContext-webapp.xml:Spring全局配置文件,不允許開發(fā)人員變更perties:數(shù)據(jù)庫連接配置文件perties:日志配置文件( 注:此文件已配置完成,自動按日期創(chuàng)建相關(guān)日志文件)/web.xml :項目初始化配置文件 三 開發(fā)框架核心配置文件1. applicationContext-jdbc.xml 數(shù)據(jù)連接池配置<!- 加載JDBC資源文件 -><context:property-placeholder location=
8、"/WEB-INF/config/perties" /><!- Mysql5.0 數(shù)據(jù)連接池配置 ><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"><property name="driverClassName" value="$jdbc.driverClassName" /><
9、property name="url" value="$jdbc.connectionURL" /><property name="username" value="$jdbc.username" /><property name="password" value="$jdbc.password" /><!- <property name="autoCommitOnClose" value="$autoC
10、ommitOnClose"/> <property name="checkoutTimeout" value="$checkoutTimeout"/> <property name="initialPoolSize" value="$initialPoolSize"/> <property name="minPoolSize" value="$minPoolSize"/> <property name="ma
11、xPoolSize" value="$maxPoolSize"/> <property name="maxIdleTime" value="$maxIdleTime"/> <property name="acquireIncrement" value="$acquireIncrement"/> <property name="maxIdleTimeExcessConnections" value="$maxIdleTim
12、eExcessConnections" -></bean>2. applicationContext-mybatis.xml 新版MyBatis配置<!- Spring提供的用于構(gòu)建MyBatis的客戶端sqlSessionFactory對象工廠 -><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref=&quo
13、t;dataSource" /> <property name="configLocation" value="classpath:mybatis-config.xml"></property><property name="mapperLocations" value="classpath*:com/longhope/business/*/mapper/*.xml" /></bean><!- 配置sqlSessionTemplate模板類 -&
14、gt; <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg ref="sqlSessionFactory" /> </bean> <!- JdbcTemplate -><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate&qu
15、ot;><property name="dataSource" ref="dataSource" /></bean><!- JdbcDaoInterface -><bean id="jdbcDao" class="com.fcx.core.jdbc.DaoImple"><property name="dataSource" ref="dataSource" /></bean><!- 配置事務(wù)管
16、理器 -><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean> <!- AOP切面技術(shù),實現(xiàn)對Service的聲明式事務(wù)管理 -><tx:advice id="txAdvice"
17、 transaction-manager="transactionManager"> <tx:attributes> <tx:method name="set*" propagation="NOT_SUPPORTED" /> <tx:method name="get*" propagation="REQUIRED" read-only="true"/> <tx:method name="*" propagat
18、ion="REQUIRED" rollback-for="java.lang.RuntimeException,java.lang.Exception"/> </tx:attributes></tx:advice>3. applicationContext-springmvc-servlet.xml<!- 啟用基于注解(Annotation-based)的配置 -><context:annotation-config /><!- 自動描述路徑 -><context:component
19、-scan base-package="com.longhope.business.*.action" /><context:component-scan base-package="com.longhope.business.*.service.*" /><!Aop切面技術(shù) -><aop:config> <aop:pointcut id="serviceMethods" expression="execution(* com.fcx.*.service.*Service.*(
20、.) | execution(* com.longhope.business.service.*Service.*(.) | execution(* com.longhope.business.*.service.*Service.*(.)"/> <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethods"/></aop:config><!視圖解析器 -><bean class="org.springframework.
21、web.servlet.view.InternalResourceViewResolver" p:prefix="/"/>四 開發(fā)規(guī)則及使用說明 (實例說明:以數(shù)據(jù)編輯模塊為例)1. 控制器:功能模塊對應(yīng)的業(yè)務(wù)入口1.1 控制器名稱:基本都以功能模塊名稱拼音簡寫或有代表性的英文+Action;例如:SjbjAction1.2 控制器說明編寫:當(dāng)前控制器的主要功能及作者,創(chuàng)建日期版本等信息,如下:/* * Copyright(c)Consulting Longhope. All rights are reserved * * 數(shù)據(jù)編輯管理 Action * a
22、uthor TanLiang * version Ver 1.0 2015-08-02 初版 */1.3 控制器注解及名字空間定義:如下Controller /此注解標(biāo)識為控制器 RequestMapping("Sjbj") /此注解標(biāo)識為當(dāng)前控制器的名字空間,而且此名稱空間標(biāo)識必需與菜單ID等數(shù)據(jù)一置,因為此部份是要與權(quán)限相關(guān)聯(lián)的1.4 業(yè)務(wù)接口的注入:如下Autowired/必需追加此標(biāo)簽,這樣業(yè)務(wù)接口就自動注入 private SjbjService sjbjService;備注:而且所有注入的對象不需要在實現(xiàn)GET、SET等方法1.5 控制器的方法配置:如下1.5.
23、1 對于視圖(JSP/PHP/其它前端)層的請求 (備注:對于方法必需追加說明等標(biāo)識)/* * 功能:數(shù)據(jù)保存 */RequestMapping("saveData")/標(biāo)簽為調(diào)用的方法public String saveData(S_BS_CORP s_bs_corp,String JsonArray) s_bs_corp = sjbjService.saveData(s_bs_corp,JsonArray);return /page/sjbj/xxx.jsp; /返回到指定視圖層路徑1.5.2 對于視圖(Flex或移動端或返回結(jié)果為JSON數(shù)據(jù))層的請求RequestM
24、apping("saveData") /標(biāo)簽為調(diào)用的方法ResponseBody /對于返回JSON類型數(shù)據(jù)必需追加此標(biāo)簽,然后返回相應(yīng)的對象即可因為所有對象或集合數(shù)據(jù)都會被框架自動轉(zhuǎn)換為標(biāo)準(zhǔn)的JSON數(shù)據(jù)結(jié)構(gòu)2. 例如請求: Sjbj/saveData.action3. 實體類:業(yè)務(wù)相關(guān)實體對象,即:POJO類對象與數(shù)據(jù)表直接對應(yīng) 如下:Table("S_BS_CORP") public class S_BS_CORP implements SerializablePrimaryKeyColumn(mappedName="S_CORP_UUI
25、D")private String S_CORP_UUID;Column(mappedName="S_CORP_CD")private String S_CORP_CD;備注:以上實體類中對應(yīng)的標(biāo)簽,主要應(yīng)用自動拼組SQL時的業(yè)務(wù)邏輯而定義4. Dao接口及SqlMap4.1 文件名稱規(guī)則同上,例如:數(shù)據(jù)編輯功能模塊,需要注意義的是必需創(chuàng)建一對,其中一個是Dao接口,而另一個是接口所對應(yīng)的SQL方法,而且接口名稱與方法名稱還有參數(shù)及返回值等參數(shù)必需對應(yīng),如下:-SjbjMapper.java/ public List queryForList(HashMap ma
26、p);-SjbjMapper.xml/ <select id="queryForList" parameterType="HashMap" resultType="HashMap">SELECT * FROM 數(shù)據(jù)表 WHERE S_CORP_UUID = #S_CORP_UUID</select>5. 業(yè)務(wù)接口及業(yè)務(wù)接口實現(xiàn)類 如下:4.1 接口文件必需放在 service/目錄下 SjbjService.java4.2 接口實現(xiàn)類文件必需放在service/impl/目錄下 SjbjServiceImpl.java備注:業(yè)務(wù)層接口的名稱必需按照此規(guī)則創(chuàng)建,否則可能導(dǎo)至無法正常自動創(chuàng)建事物處理,還需要注意的是,在業(yè)務(wù)接口實現(xiàn)類中必需設(shè)置業(yè)務(wù)標(biāo)簽注解如下:Service("sjbjService") /此標(biāo)簽必需設(shè)置,而名稱則還是按模塊名稱簡拼在+Service即可;6. 業(yè)務(wù)生成器:
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商場室外環(huán)境凈化工程方案
- 鍍鋅鋼管電力設(shè)施安裝方案
- 2024-2025學(xué)年高二物理上學(xué)期期中考點大串講(教科版2019)專題02 電場能的性質(zhì)【考點清單】(含答案及解析)
- 青少年思想政治教育活動實施方案
- 大型活動消防保障實施方案
- 商業(yè)空間油漆工程實施方案
- 工人砌墻合同范本(2篇)
- 揚州2024年03版小學(xué)六年級上冊英語第四單元真題試卷
- 生活化教學(xué)在初中數(shù)學(xué)教學(xué)中的應(yīng)用
- HR部門商務(wù)禮儀制度培訓(xùn)方案
- 通用BIQS培訓(xùn)資料課件
- 性健康教育課件
- 影響世界的工業(yè)革命 2023屆高三統(tǒng)編版歷史一輪復(fù)習(xí)
- 職業(yè)學(xué)院教師教學(xué)創(chuàng)新團隊建設(shè)管理辦法
- 微型計算機原理與應(yīng)用習(xí)題集及答案
- 河北省唐山市藥品零售藥店企業(yè)藥房名單目錄
- 喵喵老師制作 電子百拼的黑白電路圖
- DB34-T 4010-2021 水利工程外觀質(zhì)量評定規(guī)程-高清現(xiàn)行
- 《整改報告》模板
- 送達地址確認書(樣本)
- 江蘇省歷屆中學(xué)生與社會作文大賽決賽試題及獲獎范文(完整版)資料
評論
0/150
提交評論