SpringMVC项目模块浅析
本文为个人笔记,对于springmvc模块的规划,仁者见仁、智者见智,请不要生搬硬套。
一、基础模块-basic
主要内容是dao、spring-xml、domain、service等内容,模块内分层如下:
dao 持久层的实现主要有ibatis和mybatis,根据需要选择。
service
domain 实体类
rpc-api 接口层
web 服务发布层
dao层的注意事项:
<1> resource中除了配置各表的xml,还需要配置sqlmap-config。
<result property="enumCode" column="enum_code"/>
注意这条语句,它对数据库字段做了一个映射,前面是程序中实现的实体类,后面是数据库字段。
<2> 每个dao类都需要继承BaseDao。
<3> 顺便讲一数据库设计规范:见另一篇文章
二、服务层-service
<1> spring-mvc中需要进行注入,注入有两种方式:注解注入和set注入
a、注解注入方式
@Resource
private InsRiskRuleService insRiskRuleService;
b、set注入方式
public void setInsRiskRuleService(InsRiskRuleService insRiskRuleService) {
this.insRiskRuleService = insRiskRuleService;
}
<2>声明bean的两种方式: 注解和xml配置
a、注解的方式
@Service
public class InsRiskRuleService {......}
@Component
public final class PayClient {}
但是这个需要在spring-config.xml中进行配置注入,否则不起作用。
<context:component-scan base-package="com.jd.*">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
</context:component-scan>
这个注解是把com.jd包下所有的@Compontant 及它的子类注解的类,生命为bean的方式
b、xml配置bean的方式
<bean id="insRiskRuleDao" class="com.jd.ins.risk.basic.dao.InsRiskRuleDao"/>
<bean id="insRiskRuleService" class="com.jd.risk.basic.service.InsRiskRuleService"/>
三、实体类层-domain
有一个生成快捷键:Alt + Insert 键。
四、接口层rpc-api
rpc-api层有两块的主要内容:接口Interface和DTO实体类(Data Transfer Object 数据传输对象)。
接口比较好理解,这里就不详细介绍了,主要讲一下DTO实体类。
之前我做接口的时候,自己使用的实体类和暴露给使用的是同一个实体类,这样就会有以下问题:(1). 有不需要传递的对象会传递了,浪费了资源。(2). 别一个就是你把你的隐私也暴露给别人了。因此这个DTO里只给对方需要的字段。
接口做好了,但是还需要实现,否则接口不清楚你要干什么。实现是要放到service层的,最好要和service分开,这样清晰、便于管理。实现类一般以impl为结尾。
五、应用层web
模块做好了,需要发布到站点别人才可以调用,所以就需要一个web服务层。
web层主要是对项目进行spring-mvc配置,还有一些常规配置,如用户名密码等。
关于WEB层的开发:
我们的整个框架使用的是spring-mvc,持久层使用的是ibatis,表现层使用的是vm,前端使用的是H5,数据库使用的是MySQL、MongoDB、HBase等。
SpringMVC项目模块浅析的更多相关文章
- 零配置简单搭建SpringMVC 项目
SpringMVC是比较常用的JavaWeb框架,非常轻便强悍,能简化Web开发,大大提高开发效率,在各种Web程序中广泛应用.本文采用Java Config的方式搭建SpringMVC项目,并对Sp ...
- 利用Intellij+MAVEN搭建Spring+Mybatis+MySql+SpringMVC项目详解
http://blog.csdn.net/noaman_wgs/article/details/53893948 利用Intellij+MAVEN搭建Spring+Mybatis+MySql+Spri ...
- C#开发微信门户及应用(43)--微信各个项目模块的定义和相互关系
我们在开发微信相关的应用的时候,一般需要完善的基础模块支持,包括微信公众号,微信企业号,以及一些业务模块的支持,一般随着功能的增多,我们需要非常清晰的界定他们的关系.模块的分拆以及合并往往需要考虑的代 ...
- maven -- 学习笔记(四)实现在Eclipse用maven搭建springmvc项目(附构建步骤和详细实现代码)
Learn from:http://www.cnblogs.com/fangjins/archive/2012/05/06/2485459.html,感谢楼主的分享,才有下面的这篇学习小结 一.环境准 ...
- 项目搭建系列之一:使用Maven搭建SpringMVC项目
约定电脑都安装了eclipse,且已配置好Maven以及eclipse插件. 1.Eclipse 2.maven 3.Eclipse 需要安装maven插件.url:maven - http://do ...
- 044医疗项目-模块四:采购单模块—采购单保存(Dao,Service,Action三层)
我们上上一篇文章(042医疗项目-模块四:采购单模块-采购单明细添加查询,并且把数据添加到数据库中)做的工作是把数据插入到了数据库,我们这篇文章做的是042医疗项目-模块四:采购单模块-采购单明细添加 ...
- springmvc 项目完整示例06 日志–log4j 参数详细解析 log4j如何配置
Log4j由三个重要的组件构成: 日志信息的优先级 日志信息的输出目的地 日志信息的输出格式 日志信息的优先级从高到低有ERROR.WARN. INFO.DEBUG,分别用来指定这条日志信息的重要程度 ...
- 使用Eclipse构建Maven的SpringMVC项目
一.直接建立Maven项目方法1.建立Maven项目 接下来使用Eclipse的maven构建一个web项目,以构建SpringMVC项目为例: 1.1 选择建立Maven Project 选择Fil ...
- Eclipse的maven构建一个web项目,以构建SpringMVC项目为例
http://www.cnblogs.com/javaTest/archive/2012/04/28/2589574.html springmvc demo实例教程源代码下载:http://zuida ...
随机推荐
- php 逗号 explode分割字符串 或 implode组装成字符串
php 逗号 分割字符串 介绍两个函数给你 <?php //利用 explode 函数分割字符串到数组 $source = "hello1,hello2,hello3,hello4,h ...
- HDOJ HDU 1850 Being a Good Boy in Spring Festival
Description 一年在外 父母时刻牵挂 春节回家 你能做几天好孩子吗 寒假里尝试做做下面的事情吧 陪妈妈逛一次菜场 悄悄给爸爸买个小礼物 主动地 强烈地 要求洗一次碗 某一天早起 给爸妈用心地 ...
- TOP100summit【分享实录-网易】构建云直播分发网络
本篇文章内容来自2016年TOP100summit网易视频云.网易杭州研究院服务端技术专家邵峰的案例分享.编辑:Cynthia 邵峰:网易视频云.网易杭州研究院服务端技术专家浙江大学计算机专业博士毕业 ...
- *** FATAL ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED
*** FATAL ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED 在软件已经执行破解仍然出现,是因为工程是破解前建立的,要先执行 ...
- MS14-064 漏洞测试入侵——20145301
MS14-064 漏洞测试入侵 Microsoft Windows OLE远程代码执行漏洞,OLE(对象链接与嵌入)是一种允许应用程序共享数据和功能的技术 执行摘要 此安全更新可解决 Microsof ...
- [No0000B0]ReSharper操作指南1/16-入门与简介
安装指南 在安装之前,您可能需要检查系统要求. ReSharper是一个VisualStudio扩展.它支持VisualStudio2010,2012,2013,2015和2017.安装完成后,您将在 ...
- 1.7Oob成员变量和局部变量疑难区分
import java.util.Scanner; public class booleann { private float fWidth; private float fHeight; void ...
- 查询自己的apple购买历史
https://secure1.store.apple.com/cn/order/list
- ArcGIS API for JavaScript
以3.14版本为例: 1.部署环境: 下载:https://developers.arcgis.com/downloads/apis-and-sdks?product=javascript# 部署:h ...
- 双栈算术表达式求值算法 栈(Stack) - Java实现
https://mp.weixin.qq.com/s/dg8mgd6CIQ7Tui1_fQwSBA https://github.com/toywei/DataStructure/tree/maste ...