人人快速開發平台開發文檔


  最近換了一家公司,項目要求必須用人人快速開發平台寫代碼,這個平台是可以前后端分離的,剛開始不懂,整個過程痛苦的感覺頭發稀少了一大半,后來不停的在網上找關於這方面的資料,下來我就把我最近找的資料分享一下;

  這塊有一個官方能給的具體一點的開發文檔:https://www.renren.io/guide/#func

1、配置

1) 從pom.xml 開始 parent 依賴包(包括springboot的所有依賴及Spring-Mybatis 的整合包,常用工具包);
2)Java環境依賴   Java-version
3) 數據庫驅動包 MySQL包;
4) 任務調度依賴 quartz 
5) 系統權限框架依賴   shiro 框架集成  
6) 配置文件  
(1)xml 文件 
MySQL 數據庫和實體的駝峰映射配置
日志文件輸出   Dev(開發環境) test(測試環境) pro(生產環境:俗稱正式環境)
(2)yml 文件(SpringBoot 開始引入的一種json格式的配置文件 功能類似於properties)
以生產環境為例(DEV)
首先配置數據庫驅動DataSource 分布式數據庫設計(這里只使用一個)
整體yml 文件開始
配置內置Tomcat 項目名,端口號,最大連接數等;
激活dev.yml 配置文件;
格式化輸出 jackson
指定靜態資源路徑(只針對靜態資源,不針對請求)
配置Mybatis *.xml 文件掃描(可稱之為指定路徑)

2、項目開發
1)創建數據庫 -->MySQL 數據庫 指定主鍵ID
2)modules 文件下創建包名(一般為業務名 如 business )
(1) 包括entity(實體)  對應MySQL 數據庫 和 resource 文件夾下 mapper 下的.xml 文件
(2) Service (接口類)  對外暴露接口
(3) implements (接口實現類) 實現接口的方法
(4) dao (dao層接口) 映射mapper 文件  接口實現接口的形式  去實現Service的 接口在實現類中調用
3) 控制器(拿出來另說)
(1) 請求處理、權限管理、業務數據處理
(2) 基於注解形式 
@Autowired 注入Service
@RestController 指定為控制器
@RequestMapping 或 @PostMapping 或 @GetMapping  指定數據接口路徑
@RequiresPermissions 指定 shiro 權限   根據頁面配置的 權限標識
(3) 返回實體基於 R (實體) 實現了Map接口  這里的 HashMap也是實現了Map 接口  所以整體是實現了Map 接口
可以擴展  重寫  error 方法  或者  OK 方法
(4) 請求參數封裝
Query  將所有的param 在接受的時候 全部封裝在map 集合中  再整體封裝在Query中 (期間計算一些分頁所需數據)  
(5) 請求過濾  ShiroConfig  --> shirFilter  所有的請求都會在這個過濾器中過濾   filterMap 中的請求可以在無token時進行直接請求  無論是post還是get  否則會報401 權限不足的錯誤
(6) 登錄模塊
驗證碼 隨機生成   IOUtils.closeQuietly(out); 輸出圖片  
登錄的時候驗證用戶名、密碼、和session中的驗證碼  通過用戶名(登錄名) 取出 用戶密碼  再跟用Sha256Hash 加密算法加密的字符串進行比對
(7) token 所有的請求都會驗證token(除被ShiroConfig過濾掉的 ) AuthorizationInterceptor.preHandle(驗證token 然后轉發請求)  token 會有一個過期時間  12個小時  判斷token是用戶請求的一個關鍵點,token在Header 中   不在請求的請求體中
  (8) 重寫AuthenticatingFilter 中的方法  isAccessAllowed 這個方法直接廢掉  原來是在這里面可以處理直接轉發請求  但是引入shiro 后則所有請求都首先經過onAccessDenied,獲取請求token,如果token不存在,直接返回401(從header中獲取token,如果header中不存在token,則從參數中獲取token)  
4) 前端界面  前后端完全分離的情況  可以說用另外的一個web項目發布所有的 html 文件   來請求后台也是OK的   HTML 作為靜態資源存在於項目中   HTML 代碼比jsp的優點在於  純靜態  加載速度快   易於優化
(1)  新聞欄為例
整體構思: bootstrap 樣式 + jqgrid (表格) + Vue.js (對象數據) 讓你同學去了解一下VUEJS 的基本語法就OK了
頁面初始化的時候加載JS文件 然后渲染出JqGrid 所綁定的 ID 對應的 Table (有點繞 你理解一下) 
Vue 通過綁定 指定的參數賦值  指定的click 方法  指定的model 賦值或取值   等
至此 項目開發就OK了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM