# EscienceMetadataManage **Repository Path**: jon_qj/EscienceMetadataManage ## Basic Information - **Project Name**: EscienceMetadataManage - **Description**: Escience的元数据管理工具 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2020-05-27 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EscienceMetadataManage #### 项目介绍 新版共享网 #### 软件架构 > 项目采用Springboot、Mybatis、Shrio、Redis技术,前后端分离,领域模型驱动。 前后端分离有多种实现方式;目前市面上常见的是前端React、Vue、Angular做一个单页面应用,通过Ajax从后端Api调用数据。仔细想想 这种模式无法做到页面不泄露:举个例子就是普通用户可以看到Admin的页面。但是如果后端做了严格的权限限制,普通用户有虽然能看 到Admin的页面,但是无法操作。从这个意义上来说,用户看到Admin的页面也无所谓,因为他没法请求到数据。另外,可以在前端做一些 弥补性操作:判断用户角色并跳转的操作,使普通用户无法在浏览器中Admin的页面。 #### 安装教程 1. 使用开发软件导入maven项目并下载依赖,激活一个Spring环境,运行cn.org.escience.metadata.api.NsticApplication中的main方法即可。 2. 拷贝静态前端工程到静态资源目录下,在开发环境下默认在C:\ImportantFile下。 3. 完成安装。 #### 使用说明 1. asda 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本项目 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 代码规范 1. 项目包结构分模块放置。common、user是公共的基础模块,任何一个模块都可以引用该模块中的内容。 metadata是元数据模块;article是文章模块;topic是专题服务模块。如果开发者不需要某个非基础模块,可直接删除该包下所有内容, 不影响系统运行。 2. 非基础模块下包结构遵循以下结构: * cn.org.escience.metadata.api 根目录 * common 基础模块,该模块存放了很多util方法和架构性代码,请注意查看。 * user 基础模块,存放用户模块 * metadata 存放元数据模块 * controller 存放controller * service 存放服务 * repository 存放与数据库打交道的mapper * model 存放PO * pojo pojo存放VO和Form * validator 校验器 3. model包的类为持久化类,命名以PO结尾;该包中的对象由代码生成器生成,禁止修改;如有需要请重新生成。model包中生成的 Class,**必须去掉项目前缀缩写和ER模块名**。拿metadata模块下的Category对象命名举例;在ER中,Category的表名为es_metadata_category, 在生成PO的时候,先去掉项目前缀缩写es_,再去掉模块名metadata,最后加上PO结尾,就等于CategoryPO. 4. repository包中的为dao接口,命名以Mapper结尾;该包中的对象由代码生成器生成,禁止修改;如有需要请重新生成。 5. pojo中存放用户提交的表单,命名以Form结尾。另外还可以实现标志性接口以表明该实体类应有的Http操作;实现 cn.org.escience.metadata.api.common.util.action.Creatable接口表明该From是一个会新增。 6.项目是典型的controller、service、dao、model架构,不允许向service层传递Form、ModelMap、Request、Response;因为语义不明。 不知道你实际上需要的是什么参数。而应该传递具体消费的参数PO,int等 7. Controller必须返回ResponseEntity对象,后期会根据ResponseEntity返回统一的json体。 8.DAO代码生成参考https://github.com/zouzg/mybatis-generator-gui #### 前端规范 1. example.html是所有页的通用模板 2. style.css是所有页通用的CSS 3. 请勿使用bootstrap的col栅格,使用.span1 .span12等栅格类 4. 表单校验使用bootstrapValidator.js,使用时还需引入其CSS,之前一个项目的示例,用到了需要的所有方法,从16行开始是校验的参数与添加校验的规则。 [https://gitee.com/mipyao/sharecup_register_mobile/blob/master/js/register.js](https://gitee.com/mipyao/sharecup_register_mobile/blob/master/js/register.js) >注意:html中一开始本身不存在,之后使用JS添加的表单项目,不能用这种方法验证,需要在添加后用JS绑定新的校验规则,参照上述链接代码的415行开始。 5. 请求数据使用jQuery ajax [https://www.cnblogs.com/tylerdonet/p/3520862.html](https://www.cnblogs.com/tylerdonet/p/3520862.html) 6. html数据的模板引擎使用artTemplate.js,简单的示例网址 [https://blog.csdn.net/xutongbao/article/details/79075664](https://blog.csdn.net/xutongbao/article/details/79075664) #### 码云特效 共享网采用Oauth2.0分享用户信息;平台需在共享网登记回调地址、密钥并撰写Oatuh2-client,实现共享网用户访问本网站。