SpringMvc搭建开发框架平台【基本使用说明】_第1页
SpringMvc搭建开发框架平台【基本使用说明】_第2页
SpringMvc搭建开发框架平台【基本使用说明】_第3页
SpringMvc搭建开发框架平台【基本使用说明】_第4页
SpringMvc搭建开发框架平台【基本使用说明】_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Spring3Mvc开发平台描述:由于公司现有开发框架使用过于复杂,机械性质的工作还需要人工来完成,每个对应的控制器及视图控制器都要进行手动配置XML文件,还需要在全局容器中进行依赖注入,而且对于业务层还需要人工手动进行事物处理等复杂和重复性质的工作,开发效率低下,所以Amundsen研发小组搭建了一套当前最主流的开发平台【Spring3MVC开发框架】。框架结构及开发规则使用说明如下:一 框架结构主要由以下几部份组成1. Spring + SpringMvc 解释:最底层核心框架1.1 依赖注入1.2 AOP横向切面技术 、ASPECT切面框架1.3 启用Annotation注解及MVC驱动

2、器2. MyBatis 解释:主要应用数据库持久层操作,并且所有相关SQL全部为XML文件方便管理与维护3. SpringSecurity :安全认证框架解释:主要应用于框架的全安性(注:暂时未启用)3.1 用户身份的认证过程3.2 用户的请求进行拦截并分析是否被授权等过程,3.3 会话连接的控制3.4 访问端口及地址转换的控制4. 视图层:支持任何前台交互视图语言4.1 主要交互框架以EXT5.0为主4.2 Flex Builder4.6 Actionscript3.0 语言,用于特殊模块处理应用二 框架目录结构说明1. /src/com/fcx/app/说明:此目录下为Flex管理部份应用

3、所有核心业务(注:非Flex开发人员禁止更改)2. /src/com/longhope/business/说明:此目录下为公司项目所有模块相关的业务文件,每个文件夹都是功能模块的拼音简写(注:文件夹的结构及目录层级是与菜单结构一置的,这样方便对应管理与维护),并且在有效功能模块对应的文件夹下必需要创建“action”、“mapper”、“model”、“service”、”service/impl”等如下文件夹,此结构必需遵循开发框架规则:action :控制器类mapper :Dao接口类及接口所对应的SQLMAP文件 (需要注意的是:所有SQL必需大写,除参数)model : 模型类(即:

4、实体对象)service: 业务接口 service.impl:业务接口的实现类 注意:如果是前后台分离,以远程接口方式开发,那么就是如下的结构,如图所示:前端需要的结构-后端需要的结构3. /i18n说明:国际化管理(注:此部份为系统预留功能,暂时没应用)4. /src/com/fcx/app/androic/src/com/fcx/app/ios说明:移动端开发业务在此目录下开发,因为由于业务的特殊性,web客户端所有请求是需要认证和授权的,而只有移动端是不需要认证授权的,并且所有移动端的请求必需是”.do”结束例如:移动端请求 user/login.do Web端请求 user/logi

5、n.action5. /framework说明:此目录下为框架核心配置文件及系统全局参数等文件;例如 端口等数据配置 /framework/com/fcx/core/ 说明:此目录下为框架所有通用类备注:此目录下所有配置文件禁止开发人员更改,如果需要变更或追加改修通用类等文件请与(谭亮:管理员)开发人员联系6. /lib 开发框架核心业务相关JAR包/lib/common/lib/flex/lib/mybatis/lib/mysql/lib/openCSV/lib/oracle/lib/poi/lib/security/lib/spring/lib/xml说明:所有框架及业务相关JAR包,主要

6、是进行了分类方便管理与维护备注:以上目录结构禁止变更或删除,如果需要追加请联系管理员7. /WebRoot/fileUpload:相关业务文件上传目录 /flex:Flash管理平台及前台调用功能模块等页面相关文件(例如:自定义汇总、报表制度定义) /page:所有管理系统交互页面,注此文件夹下的所有子文件夹都是相关模块拼音简写创建,以及层次结构与菜单一置,不允许随意追加或创建 (注:所有相关开发并互页面必需在此目下创建,并且与功能模块结构一置)/resources:所有相关资源文件(例如:JS,图片,样式等文件)并且都要有序的创建存储,不允许重复/target:存储全局的入口文件及认证成功或

7、失败等跳转文件,还有捕获系统全局性异常文件 /WEB-INF/config/applicationContext-webapp.xml:Spring全局配置文件,不允许开发人员变更perties:数据库连接配置文件perties:日志配置文件( 注:此文件已配置完成,自动按日期创建相关日志文件)/web.xml :项目初始化配置文件 三 开发框架核心配置文件1. applicationContext-jdbc.xml 数据连接池配置<!- 加载JDBC资源文件 -><context:property-placeholder location=

8、"/WEB-INF/config/perties" /><!- Mysql5.0 数据连接池配置 ><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提供的用于构建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><!- 配置事务管

16、理器 -><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean> <!- AOP切面技术,实现对Service的声明式事务管理 -><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切面技术 -><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="/"/>四 开发规则及使用说明 (实例说明:以数据编辑模块为例)1. 控制器:功能模块对应的业务入口1.1 控制器名称:基本都以功能模块名称拼音简写或有代表性的英文+Action;例如:SjbjAction1.2 控制器说明编写:当前控制器的主要功能及作者,创建日期版本等信息,如下:/* * Copyright(c)Consulting Longhope. All rights are reserved * * 数据编辑管理 Action * a

22、uthor TanLiang * version Ver 1.0 2015-08-02 初版 */1.3 控制器注解及名字空间定义:如下Controller /此注解标识为控制器 RequestMapping("Sjbj") /此注解标识为当前控制器的名字空间,而且此名称空间标识必需与菜单ID等数据一置,因为此部份是要与权限相关联的1.4 业务接口的注入:如下Autowired/必需追加此标签,这样业务接口就自动注入 private SjbjService sjbjService;备注:而且所有注入的对象不需要在实现GET、SET等方法1.5 控制器的方法配置:如下1.5.

23、1 对于视图(JSP/PHP/其它前端)层的请求 (备注:对于方法必需追加说明等标识)/* * 功能:数据保存 */RequestMapping("saveData")/标签为调用的方法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或移动端或返回结果为JSON数据)层的请求RequestM

24、apping("saveData") /标签为调用的方法ResponseBody /对于返回JSON类型数据必需追加此标签,然后返回相应的对象即可因为所有对象或集合数据都会被框架自动转换为标准的JSON数据结构2. 例如请求: Sjbj/saveData.action3. 实体类:业务相关实体对象,即:POJO类对象与数据表直接对应 如下: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;备注:以上实体类中对应的标签,主要应用自动拼组SQL时的业务逻辑而定义4. Dao接口及SqlMap4.1 文件名称规则同上,例如:数据编辑功能模块,需要注意义的是必需创建一对,其中一个是Dao接口,而另一个是接口所对应的SQL方法,而且接口名称与方法名称还有参数及返回值等参数必需对应,如下:-SjbjMapper.java/ public List queryForList(HashMap ma

26、p);-SjbjMapper.xml/ <select id="queryForList" parameterType="HashMap" resultType="HashMap">SELECT * FROM 数据表 WHERE S_CORP_UUID = #S_CORP_UUID</select>5. 业务接口及业务接口实现类 如下:4.1 接口文件必需放在 service/目录下 SjbjService.java4.2 接口实现类文件必需放在service/impl/目录下 SjbjServiceImpl.java备注:业务层接口的名称必需按照此规则创建,否则可能导至无法正常自动创建事物处理,还需要注意的是,在业务接口实现类中必需设置业务标签注解如下:Service("sjbjService") /此标签必需设置,而名称则还是按模块名称简拼在+Service即可;6. 业务生成器:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论