下面是一个典型的WEB应用工程的内容结构,左(或上)图为代码,右(或下)图为部署资源:
(该工程为非直连数据库,数据接口都由数据服务平台提供)
(1)aop用于记录Controller、Service等组件的函数的调用日志,可用于评测接口的调用频次和效能
(2)controller为控制层,其内容还可以细化:
红色部分为代理Controller,web页面可通过AJAX方式调用这些Controller获取内容,代理分为3部分:图表代理、数据集代理和视图代理 crud为数据维护用Controller JMS为消息队列用Controller,例如向队列推送消息 |
(3)dao为数据访问层,由于该工程使用的是非直连数据库方式,所以本块有些弱化
(4)entities为POJO定义,其中定义了一个接口,供所有POJO去实现:
public interface IFsPojo { /** * 从JSON对象实例化 * @param obj */ //public static <T> fromJson(JSONObject obj); /** * 保存POJO到数据库 * @param proxyDatamanService * @return */ public boolean save(ProxyDatamanService proxyDatamanService); };(5)integration为应用集成,主要为消息队列处理接口
(6)interceptor,拦截器,用于拦截并统一处理请求相关的事务,例如:参数判断、会话检查
(7)quartz,定时任务
(8)services,服务层,基本与Controller对应
红色部分为代理Services,为Controller层提供内容接口,服务代理分为4部分:图表代理、数据维护、数据集代理和视图代理 其中Realm是为系统的安全框架Shiro提供授权认证的特殊数据服务,继承于AuthorizingRealm |
(10)IDef.java, 工程全局定义
(1)content为内容资源,存放样式表、字体、系统级图片等
(2)fsjs为福斯数据服务平台提供的js工具包
(3)images,图片资源
(4)js,应用自定义的js库
(5)META-INF,存放的是资源定义信息
(6)scripts,存放的是系统脚本资源
(7)WEB-INF/contents,存放的是映射的jsp
(8)mq.xml 消息队列资源定义;quartz.xml为定时任务定义;secure.xml为Shiro安全框架定义;
(9)build.properties和build.xml为编译设置和ANT编译脚本,用于编译并部署WEB应用