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

介紹

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

軟件架構

項目基於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將指定元素截圖嗎?
  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
相關文章
相關標籤/搜索