學成在線(第1天)項目概述 CMS接口開發


第一次用博客,筆者大學畢業即將走向社會,從事Java開發,有個博客是很有必要的。博客用於記錄學習工作中遇到的問題,可以很好的總結經驗。同時我在遇到bug的時候也是通過他人博客解決的,我也想通過博客幫助到遇到同樣問題的人。

年前面試過幾家,現在企業都要求分布式,微服務springcloud的項目經驗,為了能找到更好的工作,我選擇了自學黑馬《學成在線》這個微服務項目,這個博客就用於記錄每天看視頻做這個項目遇到的問題和總結吧!

項目的功能架構

  項目背景

學成在線借鑒了MOOC(大型開放式網絡課程,即MOOC(massive open online courses))的設計思想,是一
個提供IT職業課程在線學習的平台,它為即將和已經加入IT領域的技術人才提供在線學習服務,用戶通過在線學
習、在線練習、在線考試等學習內容,最終掌握所學的IT技能,並能在工作中熟練應用。

  功能模塊

 

   項目的技術架構

學成在線采用當前流行的前后端分離架構開發,由用戶層、UI層、微服務層、數據層等部分組成,為PC、App、
H5等客戶端用戶提供服務。下圖是系統的技術架構圖:

 各模塊說明如下:

 

   技術棧

重點了解微服務技術棧:
學成在線服務端基於Spring Boot構建,采用Spring Cloud微服務框架。
持久層:MySQL、MongoDB、Redis、ElasticSearch
數據訪問層:使用Spring Data JPA 、Mybatis、Spring Data Mongodb等
業務層:Spring IOC、Aop事務控制、Spring Task任務調度、Feign、Ribbon、Spring AMQP、Spring Data Redis
等。
控制層:Spring MVC、FastJSON、RestTemplate、Spring Security Oauth2+JWT等
微服務治理:Eureka、Zuul、Hystrix、Spring Cloud Config等

 CMS 需求分析

  什么是CMS

CMS是什么 ?
CMS (Content Management System)即內容管理系統,不同的項目對CMS的定位不同,比如:一個在線教育網
站,有些公司認為CMS系統是對所有的課程資源進行管理,而在早期網站剛開始盛行時很多公司的業務是網站制
作,當時對CMS的定位是創建網站,即對網站的頁面、圖片等靜態資源進行管理。

本項目CMS的定位是什么?
本項目作為一個大型的在線教育平台,對CMS系統的定位是對各各網站(子站點)頁面的管理,主要管理由於運營
需要而經常變動的頁面,從而實現根據運營需要快速進行頁面開發、上線的需求。

 靜態門戶工程搭建

本項目CMS是對頁面進行管理,對頁面如何進行管理呢?我們首先搭建學成網的靜態門戶工程,根據門戶的頁面結
構來分析頁面的管理方案。
門戶,是一個網站的入口,一般網站都有一個對外的門戶,學成在線門戶效果圖如下:

  導入門戶工程

1、安裝WebStorm

idea也行,再導入靜態工程。

2、安裝Nginx

下載nginx:http://nginx.org/en/download.html
本教程下載 nginx-1.14.0.zip(http://nginx.org/download/nginx-1.14.0.zip)
解壓nginx-1.14.0.zip到自己的計算機,雙擊nginx.exe即可運行。
訪問 :http://localhost

  配置虛擬主機

在nginx中配置虛擬主機:

server{

listen       80;    
server_name  www.xuecheng.com;    
ssi on;    
ssi_silent_errors on;    
location / {    
alias   F:/teach/xcEdu/xcEduUI/xc‐ui‐pc‐static‐portal/;        
index  index.html;        
  }    
  
}
配置hosts文件

修改C:\Windows\System32\drivers\etc\hosts文件

  127.0.0.1 www.xuecheng.com
進入瀏覽器,輸入http://www.xuecheng.com

在nginx虛擬主機中開通SSI
server{
listen       80;    
server_name  www.xuecheng.com;    
ssi on;    
ssi_silent_errors on;

 CMS 服務端工程搭建

 導入基礎工程

 工程結構

CMS及其它服務端工程基於maven進行構建,首先需要創建如下基礎工程:
parent工程:父工程,提供依賴管理。
common工程:通用工程,提供各層封裝
model工程:模型工程,提供統一的模型類管理
utils工程:工具類工程,提供本項目所使用的工具類
Api工程:接口工程,統一管理本項目的服務接口。

工程結構如下:

 安裝MongoDB

CMS采用MongoDB數據庫存儲CMS頁面信息,CMS選用Mongodb的原因如下:
1、Mongodb是非關系型數據庫,存儲Json格式數據 ,數據格式靈活。
2、相比課程管理等核心數據CMS數據不重要,且沒有事務管理要求。

MongoDB這里按照文檔安裝,死活找不到啟動服務,一定要管理員配置。

卸載重裝后,找到一篇博客完美解決。

根據網上安裝教程,簡單總結如下:

1.去mongodb官網下載電腦系統對應版本的軟件,比如我的是windows 64位的,就選擇64位的,可能下載下來之后文件夾上面顯示的是win32,這個不用理會;

2.把該目錄放到自己對應放軟件的盤下,我放在了d盤;

3.在mongodb文件夾目錄下新建data文件夾,data文件夾下新建log和db文件夾,作為存放數據庫和日志的地方;

4.在mongodb bin目錄下新建mongod.cfg 文件,寫入以下內容:

systemLog:
    destination: file
    path: D:\mongodb\data\log\mongod.log
storage:
    dbPath: D:\mongodb\data\db

5.windows開始菜單搜索cmd ,找到之后右鍵點擊管理員運行,進入mongodb  bin目錄下,

mongod --logpath "d:\mongodb\data\log\mongod.log" --logappend --dbpath "d:\mongodb\data\db" --directoryperdb --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install

輸入以上命令,win+R,輸入Services.msc,查看服務,即可看到MongoDB 服務安裝成功!

6. 測試MongoDB服務已正常啟動:http://localhost:27017

原文   :https://cloud.tencent.com/developer/article/1388107

  導入CMS數據庫

這里有個坑,有的資料里導入的mongoDB數據里的cms_page(1).json要改成cms_page.json,不然后面的測試json數據時會獲取不到數據,程序也不報錯。

創建CMS服務工程

這里如果復制pdf里面的pom內容到xc-service-manage-cms的pom.xml,則maven工程會出現unkonwn爆紅。

解決:先復制到word文檔里面,通過Ctrl+h,查找替換,將空格替換。“查找內容” 輸入空格, “替換”什么都不輸入。

 然后,把復制過去的依賴,例如spring-boot-starter-web的所有的- 號重新在idea里再打一遍。pdf復制過去的符號有問題,識別不了。

還有Maven的spring-cloud-starter-feign,這里會爆紅,找不到unkown

解決

 改成spring-cloud-starter-openfeign

 最后展示一下第1天運行成果:

 

 

 學成在線資源:

鏈接:https://pan.baidu.com/s/1B4xXEYVgJh0A4j2IM2BAig
提取碼:48nn


免責聲明!

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



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