在java实现的嗨购网上商城电子网站和python是实现的blog系统中,主要学习两个方面的内容:
- web框架
- 关键技术
总结如下:
一、系统框架:
嗨购网上商城:
- 表示层:struts框架、spring
struts定义action,通过引入业务逻辑实现的接口来调用业务逻辑层的方法;另外通过返回的字符串,来配置struts定义的页面。
controller的路由功能通过在strcts的ActionMapping实现,由struts.xml指定。 - 业务逻辑层:各种service的具体实现,通过XXX.service.impl实现
- 数据访问层:myBatis框架+oracle数据库
spring管理所有的bean,包括dao、service、action等,相当于一个粘合剂,把各层粘合起来。
廖雪峰blog:
- 提供了一个web框架实现:
coroweb.py:封装post、get,处理请求、路由等 - 请求处理中间件:app.py:提供部分处理请求的中间件实现
在此基础上,具体架构为:
- 展示层:
view前端模板:jinja2框架;
http框架:aiohttp;
web框架(主要是controller):coroweb.py - 业务逻辑层:
- 数据访问层:mysql数据库:引入aiomysql支撑mysql异步处理,提供数据访问层的映射关系
二、关键技术:
- 异步处理:主要是blog项目中,框架部分的异步支撑处理,在商城项目中,应该是框架支持的,业务实现时没有考虑。
- 分页处理:两个项目中都提出来要单独实现,总体思路都是实现一个page类,处理当前页面的数据
- ORM:对象映射模型,通过映射实现数据库sql的生成,两个项目都用到。
- 装饰符的定义:在blog的web框架和中间件实现中用到,定义了具体装饰符的实现,在商城中是直接使用。在springboot restful的url路由等处理中,都用到装饰符。
- 实体类:两个项目都用到,实现从数据库表到类的对应实现。
- 路由映射:
网上商城项目由struts通过action映射提供,通过struts.xml指定;
blog项目中通过web框架定义了@get等各种装饰符来实现;
springboot等框架,支撑restful请求的路由,也是采用装饰符的方式进行路由,类似blog的方式。