学习SSM框架做仿照大众点评的web项目所需考虑细节记录

一、SSM(Spriing springMVC Mybatis)框架搭建常见web应用时所需注意的细节问题及相关思考:

1、项目设计中要注意其直接间接可能涉及的问题,思考边缘性相关内容,思考可扩展性。比如在通用的网站项目中,广告是个很重要的盈利部分。所以在设计广告的数据库时,根据页面显示状况,判断每页显示的信息数量,以及商业运营过程中,广告位的排序问题,比如竞价排名,如何表现呢?比如为每条广告信息增加一个权重字段,比如权重参考值为充值金额,所以设计数据库时,不能仅仅看到当前界面,更要考虑到可扩展性;

2、如上,数据库的字段长度在设计时,要考虑其可能最大长度。图片资源考虑到现实部署中,图片、文件等io静态资源,会存放到单独的静态服务器,而非web前端接口服务器上。所以存放的是图片的文件名,而不是真实路径。因为万一随着数量扩充,静态资源服务器需要扩充,直接写静态服务器绝对地址也是不方便的。真实状态下,通常是将静态资源存放路径作为一个配置文件,给外界,进行灵活部署。

3、项目通常会先做增加数据的功能,之后是查询功能,然后是删除功能,最后是修改功能,因为先开发增加数据的页面,好先往数据库中添加数据,之后可查询,而删除功能再做时即比较方便,修改,更像先删除再增加数据。

4、页面中,能共用的部分,可抽取时,适当考虑共通化。比如,界面上到处都需要共用项目部署时真实的环境上下文路径,可以

抽取出如下用于定位的jsp中用的共通变量,然后再各个页面引入,而为了不在每个页面中写引入语句,可以在配置文件中搞定。

根据提示找到该文件,确定文件所在路径,发现路径级别错误,更正为如下:

5、DTO的使用。实际开发中,鉴于减少宽带流量和数据安全性考虑(防止数据泄露,或者被有心人去分析网站等),后台只向前台传输必需的数据,当数据库中单个表所对应的实体类,无法直接满足界面上相应数据显示时,一般做法是,新创建一个DTO业务类,继承和数据库完全匹配的基础类,然后在其中增加相应的界面显示属性。

6、SSM常见web项目部署架构图如下,通过该图,可以反映出大致的业务访问路径,和各部分之间的关系。比如由此图可便于理解,为何访问静态资源如图片时的路径不直接通过request获取,因为经过Nginx、CDN等,加上各个部分的扩充,路由可能会一直在变化,所以存放图片的数据库字段只是存放了图片的名称,而不是完全的路径。同时图片等文件内容存放的地址通过读取配置文件的方式(配置文件由运维人员部署时根据真实环境按照所需信息进行填写配置)

 

二、商户管理考究:

1、实体和数据库表设计:

 注意实体设计时,画着实线的属性表示直接可源于商户的属性,而虚线的属性表示冗余,或者来源有特殊考究的属性。比如距离,应该是浏览者到商户的位置经过计算得来的。已售数量和星级应该来源于订单。如此等等。

 

 

2、接口注意问题:SpringMVC 使用RESTful风格接口的解决方案是,在表单提交请求时,在其中埋入一个隐藏的input,命名一个

_method 的name,value对应到后端实质性的接口。当然,这里依赖于spring MVC进行的特殊处理,即通过过滤器的方式,将http

映射到RESTful API 风格的接口上。

其中映射对应关系为:

 

 spring mvc的配置为:

此处以根据一个商户id删除某个商户为例说明:

 表单提交时的使用方法为:注意,这里传统的http请求方法是将id作为hidden元素藏到表单里,因为我们希望通过restful api的方式进行,故这里的表单提交隐藏元素是如下_method  value 为delete。然后通过js的方式进行处理。

js 对应为:

后台接口为:

 如上,basepath 为上下文,比较常见,不赘述。如果能打印出id值,即说明删除数据成功。

3、关于商家的搜索相关问题:

   正常大项目,搜索 应该是会考虑全文搜索,而不是简单的通过sql的like 模糊匹配进行搜索;

   其次,在搜索时,一般比如城市、类别等项目比较多时,一般会考虑code  和 名称进行匹配,单独创建一张表这样的方式进行

处理,简化后期可能的代码维护工作。

4、补充一个对数据进行修改的操作示例:

该示例将一方面介绍如何做修改功能和需要注意的事项,同时说明一个问题,即在如上所说的http请求转restful api接口请求过程

中会出现的一个问题,就是普通数据和上传图片、文件等multipart类型数据在处理时,需要spring mvc做的一个特殊处理。否则

会出现不识别的问题,如下为原理探究:

一个mvc工作流程:

 

 如下为需要在spring mvc配置文件中增加的过滤器,且,spring mvc配置文件中的过滤器在配置时是有顺序规范的,是从上往下依次进行执行和处理的。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值