jspBB-1.0.0正式版發布了,此版本增加了使用websocket實現通知功能,可以實時的知道關於自己的回答或評論。管理員可以得到整個網站提問、回答或評論的通知,及時為使用者解答問題。作為客服系統也是不錯的選擇。
另外也修復了其它一些bug,及新增部分小功能。
jspBB論壇(問答)系統介紹jspBB是基於Java/Kotlin的免費、開源論壇(問答)系統,仿stackoverflow、quora、知乎的模式,以GPL-2協定開源。使用SpringBoot2、Mybatis、TypeScript、React、AntDesign4、AntDesignPro5、Thymeleaf、Bootstrap4等技術開發。
jspBB這個名字為了致敬phpBB,系統中並沒有使用jsp。當初php、asp、jsp三大網路技術,只有jsp一直沒有重量級的開源論壇,希望jspBB可以彌補這一缺點。
系統使用SpringBoot2,可以用jar方式啟動。後台前端使用React、AntDesign4、AntDesignPro5,基於ReactHooks模式。考慮到搜尋引擎友好,前台前端使用Thymeleaf、Bootstrap4,比Freemarker更好用。後續會提供前台前端的API接口,使前台前端也可以使用React、Vue等技術。
系統中應用類別程式碼用Kotlin開發,工具類別的程式碼用Java開發(考慮到要在其它專案重複使用)。 Kotlin是高效、安全的開發語言,100%相容Java,編譯後依舊是class文件,依舊運行在JDK中,無需依賴任何其它環境。 Kotlin和Java可以互相調用,開發時可以Java、Kotlin混搭,並不需要全部都用Kotlin。在Android中Kotlin已經作為首選開發語言,Spring也早期的加入了Kotlin的支援。
實際開發中,Kotlin的空值安全處理,可以大大的增強程式碼安全性,不用隨時隨地考慮null值的問題;類似動態語言的語法糖,可以做到想怎樣就怎樣,程式碼量少。沒有java開發時那種為什麼不能這樣、為什麼不能那樣的苦惱,一個簡單的想法,需要多行程式碼才能實現。
jspBB論壇(問答)系統前台功能註冊(阿里簡訊,信箱)、登入、找回密碼、第三方登入(QQ,微信,微博)、第三方儲存(騰訊雲,七牛雲,阿里雲)、提問(修改,刪除)、回答(修改,刪除)、評論(修改,刪除)、搜尋、支援Markdown(貼圖)、支援敏感字詞過濾。
jspBB論壇(問答)系統後台功能設定:基礎設定、註冊設定、信箱設定、上傳設定、浮水印設定、約束設定、敏感詞
使用者:角色管理、使用者群組管理、使用者管理
內容:問題管理、回答管理、評論管理
系統:簡訊日誌、訪問日誌
後台清單頁面,支援任意欄位搜尋、排序,隱藏或顯示。
後台修改頁面,支援上一條、下一個顯示和編輯,不用列表頁、編輯頁來回切換。
jspBB論壇(問答)系統環境要求JDK8。
Servlet3.1或更高版本(如Tomcat8.5或更高版本)。
MySQL5.5或更高版本(如需使用MySQL5.0,可將mysql驅動版本替換為5.1.24)。如何連接MySQL8資料庫
瀏覽器:IE11、Edge、Firefox、Chrome。
Kotlin1.3或更高版本。 (開發環境需要)
Maven3.3或更高版本。 (開發環境需要)
jspBB論壇(問答)系統技術堆疊Kotlin/Java
Mybatis
SpringBoot2
Shiro
Thymeleaf
Bootstrap4
React
TypeScript
AntDesign4
AntDesignPro5
jspBB論壇(問答)系統搭建步驟Maven3.3或更高版本。並配置阿里雲Maven倉庫鏡像。
IntelliJIDEA2018.3或更高版本。需Kotlin1.3支援。
透過pom.xml導入專案。等待jar包下載完成。
在MySQL中建立資料庫,字元集選擇utf8mb4。
在資料庫中執行建庫腳本/database/mysql_schema.sql和初始化資料/database/mysql_init.sql。
開啟src/main/resources/application.properties,修改資料庫連線、使用者名稱、密碼:spring.datasource.urlspring.datasource.usernamespring.datasource.password。
點選IDEA右上角Run按鈕,啟動程式。
前台網址:http://localhost:8080
預設使用者名稱:admin,預設密碼:password。
後台前端基於react開發,要在前端開發工具中啟動才能存取。請另外下載jspbb-cp項目。
GPL-2簡介權利
可以免費使用,包括個人和商用。
可以修改原始碼。
限制
修改原始碼後,如需分發,則必須以GPL-2協定開源。
分發是指提供程式給別人。包括修改原始碼後,另外成立一個新的專案;或作為公司的一個軟體產品。