一個小論壇, 一個Java單體應用, 一個SSJ項目, 一個模塊化項目

介紹

一個SpringMVC Spring JPA單體的小論壇, 這不是分佈式項目, 沒有全文索引搜索,不是一個前後端分離,沒有集成MQ消息

軟件架構

項目基於JDK 8+, 主要框架: Spring 5, Spring MVC 5, JPA2.1(基於EclipseLink實現)實現一個基礎的小論壇.其它增加用戶粘性的功能後期會以插件的方式接入

安裝說明

  1. 基礎模塊: member, core, letter(內部消息), strategy(策略模塊), utils(工具), decorater(裝飾模塊), event(事件定義), bucket(站外圖片項目), thumbnail(圖片裁剪), trident(前端模塊)

  2. 項目(utils.selenium)的截屏採用webdriver.gecko.driver驅動, 需要設置它的系統變量,相關文章請參考:
    可以使用selenium的WebDriver將指定元素截圖嗎?
    geckodriver

  3. 若採用站外圖片存儲(非OSS),你可能需要單獨再佈署一個項目(bucket+thumbnail+utils), 若圖片量不大也可以使用站內存儲, 相關文章請參考: 聊聊WEB項目中的圖片

  4. 話題的相關性(core.tag.nlp)根據標籤使用Jaccard方法來顯示相關性, 相關文章請參考:
    推薦系統技術 - 文本相似性計算

  5. 敏感詞過濾採用hankcs 的AhoCorasickDoubleArrayTrie, 若不希望執行過濾可以直接刪除(trident)WEB-INF目錄下的髒詞庫(dictionary.txt). 相關文章請參考:
    DoubleArrayTrie和AhoCorasickDoubleArrayTrie的實用性對比,

  6. 圖片的水印(thumbnail)支持圖片水印和文字水印,存放位置固定在(bucket)項目的watermark目錄中,圖片名稱爲image.png,文字爲text.properties. 資源文件中有相關設置(文字內容,字號,字體,顏色,是否粗體,寬和高在字體是系統內置時一般設置爲0)

  7. 項目主入口(trident, spring mvc項目), 所有配置信息都在resources下的global.properties文件中,默認的項目地址爲: center.test.com, 圖片站外存儲的項目地址爲: pic.test.com,也就是哪個bucket項目. UI使用Bootstrap V3加自定義樣式. 管理端的路徑爲:center.test.com/admin/. 第一個註冊的會員默認爲管理員

  8. 關於多設備適配使用spring-mobile-device 加自定義模板, PC模板的路徑爲: /WEB-INF/layout/page/default/, tablet(平板)模板的路徑爲: /WEB-INF/layout/page/tablet(進行中), mobile(手機)模板的路徑爲: /WEB-INF/layout/page/mobile(未開始)

  9. 模板主要使用jsp配合自定義標籤庫(com.apobates.forum.trident.tag包)

  10. 會員信息默認使用cookie存儲(member.store模塊), 客戶端使用store.js來緩存. trident模塊中的com.apobates.forum.member.storage.session.OnlineMemberSessionStorage是Session存儲(不建議使用)。存儲已完成抽像您也可以使用mongodb或redis等內存庫來實現。實現完(或切換成session來存儲)需要到TridentFrontConfig類中完成配置。

public class TridentFrontConfig implements WebMvcConfigurer{
        //ETC
	@Bean(name="onlineMemberStorage")
	public OnlineMemberStorage getMemberStorage(CookieMetaConfig cookieConfig){
		return new com.apobates.forum.member.storage.cookie.HttpCookieProvider(cookieConfig);
	}
}
  1. 日誌文件默認存儲到/home/test/logs目錄中,有三個: jforum(trident模塊), jforum-sql(jpa日誌), bucket(bucket模塊). 若需變更需要到trident的resources目錄中的log4j2.xml, trident的resources目錄中META-INF/persistence.xml, bucket的resources目錄中的log4j2.xml. 以上說的都是在代碼級別的路徑

  2. 項目的演示網址: Orion jForum

  3. 開源地址: jforum

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章