Echo 項目結(jié)構(gòu)分析
Echo 項目后端采用 MVC 模式,使用現(xiàn)在流行的 SpringBoot 框架。SpringBoot 是基于 SpringMVC 衍生出來的框架。宗旨是較少配置,讓開發(fā)者快速上手做項目。

entity

User:數(shù)據(jù)庫模型,對應表 user Comment:數(shù)據(jù)庫模型,對應表 comment DiscussPost:數(shù)據(jù)庫模型,對應表 discuss_post Message:數(shù)據(jù)庫模型,對應表 message Page:分頁模型 Event:事件模型(Spring Kafka) LoginTicket:登錄憑證
dao

CommentMapper:控制 Comment 的相關(guān)數(shù)據(jù)庫操作 DiscussPostMapper:控制 DiscussPost 的相關(guān)數(shù)據(jù)庫操作 MessageMapper:控制 Message 的相關(guān)數(shù)據(jù)庫操作 UserMapper:控制 User 的相關(guān)數(shù)據(jù)庫操作 DiscussPostRepository:控制 Elasticsearch 服務(wù)器上 DiscussPost 的相關(guān)操作
當然,上面這些都只是操作接口,真正操作數(shù)據(jù)庫的文件放在?resources/mapper?目錄下:

service

CommentService:Comment 相關(guān)的業(yè)務(wù)邏輯 UserService:User 相關(guān)的業(yè)務(wù)邏輯 MessageService:Message 相關(guān)的業(yè)務(wù)邏輯 DiscussPostService:DiscussPost 相關(guān)的業(yè)務(wù)邏輯 FollowService:關(guān)注相關(guān)的業(yè)務(wù)邏輯 LikeService:點贊相關(guān)的業(yè)務(wù)邏輯 ElasticsearchService:Elasticsearch 搜索相關(guān)的業(yè)務(wù)邏輯 DataService:數(shù)據(jù)統(tǒng)計相關(guān)的業(yè)務(wù)邏輯
controller

UserController:控制 User 相關(guān)的業(yè)務(wù)流程 CommentController:控制 Comment 相關(guān)的業(yè)務(wù)流程,比如添加評論等 DiscussPostController:控制 DiscussPost相關(guān)的業(yè)務(wù)流程,比如添加帖子、進入帖子詳情頁、置頂帖子、加精帖子等 MesaageController:控制 Message 相關(guān)的業(yè)務(wù)流程,比如進行私信列表、發(fā)送私信、發(fā)送系統(tǒng)通知等 LikeController:控制點贊相關(guān)的業(yè)務(wù)流程,比如點贊、取消點贊等 FollowController:控制關(guān)注相關(guān)的業(yè)務(wù)流程,比如關(guān)注、取消關(guān)注、進入某個用戶的關(guān)注列表等 SearchController:控制搜索相關(guān)的業(yè)務(wù)流程,比如進入搜索界面等 DataController:控制數(shù)據(jù)統(tǒng)計相關(guān)的業(yè)務(wù)流程,比如進入統(tǒng)計界面、統(tǒng)計網(wǎng)站 DAU、統(tǒng)計網(wǎng)站 uv 等 IndexController:控制首頁相關(guān)的業(yè)務(wù)流程,比如進入首頁、進入 500/404 錯誤界面等 LoginController:控制登錄注冊相關(guān)的業(yè)務(wù)流程,比如登錄、登出、注冊、激活用戶等 advice: ExceptionAdvice:處理服務(wù)端異常(500) interceptor:攔截器 MessageInterceptor:獲取未讀私信/系統(tǒng)通知的數(shù)量 LoginTicketInterceptor:檢查憑證狀態(tài),若憑證有效則在本次請求中持有該用戶信息 DataInterceptor:統(tǒng)計網(wǎng)站 UV 和 DAU
event
這個包主要是提供給 Spring Kafka 使用的:

EventProducer:事件的生產(chǎn)者(將事件發(fā)布到指定的主題) EventConsumer:事件的消費者
quartz
這個包主要是提供給 Spring Quartz 使用的:

PostScoreRefreshJob:每隔一段時間刷新帖子分數(shù)(熱度)
config
各種配置類:

KaptchaConfig:Kaptcha(驗證碼)相關(guān)配置 QuartzConfig:Spring Quartz 相關(guān)配置 RedisConfig:Redis 相關(guān)配置 SecurityConfig:Spring Security 相關(guān)配置 WebMvcConfig:攔截器相關(guān)配置
aspect

ServiceLogAspect:使用 AOP實現(xiàn)統(tǒng)一日志記錄
util
各種工具類:

CommunityUtil:通用工具類。比如生成隨機字符串、md5 加密、將服務(wù)端返回的消息封裝成 JSON 格式的字符串等
CookieUtil:從 request 中獲取指定 name 的 cookie
HostHolder:使用 ThreadLocal 持有用戶信息(多線程),用于代替 session 對象,實現(xiàn) session any where
MailClient:發(fā)送激活郵件(用于注冊)
RedisKeyUtil:生成 Redis 的 key
SensitiveFilter:敏感詞過濾器。對應的敏感詞文本文件就是?
sensitive-words.txt
靜態(tài)資源
resources/static:靜態(tài)資源存放目錄

前臺頁面模板
resources/templates:前臺頁面模板,包括郵件模板。

error:錯誤界面模板 mail:郵件模板 activation.html:激活郵件模板 forget.html:找回密碼郵件模板(暫未使用) forget.html:忘記密碼頁面模板(暫未使用) operate-result.html:操作結(jié)果頁模板 login.html:登錄頁模板 register.html:注冊頁模板 index.html:首頁(帖子列表頁模板) discuss-detail.html:帖子詳情頁模板 profile.html:個人主頁模板 my-post.html:我的帖子模板 my-reply.html:我的回復頁模板 followee-detail.html:關(guān)注列表模板 follower-detail.html:粉絲模板 letter.html:私信列表模板 letter-detail.html:私信詳情頁模板 notice.html:系統(tǒng)通知頁模板 notice-detail.html:系統(tǒng)通知詳情頁模板 search.html:搜索結(jié)果頁模板 setting.html:賬號設(shè)置頁模板 data.html:數(shù)據(jù)統(tǒng)計模板

?? 點擊下方卡片關(guān)注公眾號「飛天小牛肉」(專注于分享計算機基礎(chǔ)、Java 基礎(chǔ)和面試指南的相關(guān)原創(chuàng)技術(shù)好文,幫助讀者快速掌握高頻重點知識,有的放矢),與小牛肉一起成長、共同進步
???并向大家強烈推薦我維護的?Gitee 倉庫?「CS-Wiki」(Gitee 推薦項目,目前已 0.9k star。面向全棧,致力于構(gòu)建完善的知識體系:數(shù)據(jù)結(jié)構(gòu)、計算機網(wǎng)絡(luò)、操作系統(tǒng)、算法、數(shù)據(jù)庫、設(shè)計模式、Java 技術(shù)棧、機器學習、深度學習、強化學習等),相比公眾號,該倉庫擁有更健全的知識體系,歡迎前來 star,倉庫地址 https://gitee.com/veal98/CS-Wiki。也可直接下方掃碼訪問
原創(chuàng)不易,讀完有收獲不妨點贊|分享|在看支持
