MIS系统架构

用到的技术和框架:
ExtJS     MVVM模式  一个页面就是一个模块。(这个可选,看需求)
SpringMVC
Spring
MyBatis
Mysql
Redis  缓存
mongoDB no sql数据库
BoneCP  连接池、据说比C3P0快很多
FastJson 快速处理json数据
Diamond  自动更改配置
javamelody monitoring  性能监控
spring+shirocas+cas 单点登录
generator自动生成工具,这个工具写好了,单表操作的增删改查模块,几秒钟就出来了。
Maven +Nexus  打包、管理jar
logbak  日志。据说log4j要快很多

设计:
1. 泛型+抽象接口思想。 controller层 service层 dao层 将常见的CRUD操作全部在基类实现,Model类型通过泛型由子类指定。这样子类如没有特殊业务,基本不用再写代码。

2. EXT MVVM模式。将单表、关联表、分页等常见的页面定义到基类中,子类如无特殊要求,继承父类即可形成页面。只需指定Model和请求后台的url即可。

3.. EXT 和 SrpingMVC.Controller的交互用json格式。springMVC的注解@ResponseBody可以直接将返回值转换成json格式

4. Controller  Service  Dao  注解加扫描模式零配置@Controller @Service @Repository @Resource 等

5. 如果项目足够庞大,可以按模块来分子项目(Maven模块化).每个模块打一个包,最好模块间足够独立,即便交互,也只有以服务的形式请求和相应的数据交互。 这样划分可以实现每个模块独立的部署在不同的机器,每个模块链接不同的数据库。提升性能而且开发过程很容易分工,你根本不必知道其他模块是干嘛的。

6. Maven架构项目时 可以分 parent  common  子模块项目1  子模块项目2 等等
  
  • 6.1 parent
  只用来引入全局的jar 如 spring、BeanUtil、 log、 Mybatis的 等
   
  • 6.2 common
继承parent,同时这里可以放整个项目的基类。包括BaseController、    BaseService、BaseDao  和工具类如DateUtils、StringUtils
和其他一些项目中需要用到的公共服务
   
  • 6.3 子模块
  子模块项目还可以分3个子项目,dao一个项目、Service一个项目  web一个项目,上层依赖下层。同时引入common项目的依赖。
       dao、Service打jar包;web打war包。最后的产出物就是每个模块一个war包。



猜你喜欢

转载自xuxl.iteye.com/blog/2206391