jfinalQ開發教程04-jfinal配置和jfinalQ檔案結構
jfinalQ
1.前言
有耐心看完前5講的同學,可正真看到jfinalQ到底是什麼了,
前4講說了程式碼生成工具,即:jfinalQ-gencode,
第5講說了加密部署工具,即,jfinalQ-encrypt,
如果對這兩部分感興趣,那麼接下來的內容會更加有趣哦~
2.簡介
jfinalQ,致力於極速開發,適配移動端,程式碼生成,加密部署的javaee框架。
極速開發
基於jfinal,學習是需要1周時間,上手快,功能強大,使用方便,開發快捷。
適配移動端
基於bootstrap,完美適配pc端和手機pad端的網頁,簡潔美觀,使用簡單。
程式碼生成
普通增刪改查功能秒級生成,大大提高了開發效率。
加密部署
為有加密部署需求的企業提供一種省時省力低成本的解決方案。
3.下載
jfinalQ已經開源到github,地址:https://github.com/uikoo9/jfinalQ
jfinal配置
1.說明
在使用jfinalQ之前,需要線熟悉jfinal,可以去官網下載文件看看,估計1天即可上手
2.開發環境
jfinalQ的相關開發環境,建議進行開發的時候要保持一致:
java
1.6.0_45
tomcat
6.0.39
tomcat部署方式
基於xml部署,詳見:http://uikoo9.com/blog/detail/tomcat-xml
mysql
5.6.17
myeclipse
10.6
3.web.xml
其實jfinalQ專案中已經配置好了,這裡做下介紹:
從web.xml說起,程式碼如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name></display-name> <filter> <filter-name>jfinal</filter-name> <filter-class>com.jfinal.core.JFinalFilter</filter-class> <init-param> <param-name>configClass</param-name> <param-value>com.uikoo9.z.jfinal.QJfinalConfig</param-value> </init-param> </filter> <filter-mapping> <filter-name>jfinal</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
這裡只需要將config指向com.uikoo9.z.jfinal.QJfinalConfig
4.QJfinalConfig.java
這是自定義的jfinal config檔案,如下:
其中,
configConstant中只設置了dev mode,這個在配置檔案中設定
configRoute中設定了所有controller用註解方式載入
jfinal預設關聯controller的方式為:
public void configRoute(Routes me) {
me.add("/hello", HelloController.class);
}
使用jfinalQ後只需要在每個controller上進行註解即可:
@QControllerUrl("/blog")
public class BlogController extends Controller{}
configPlugin中設定了所有model用註解方式關聯
jfinal預設關聯model和表的方式為:
arp.addMapping("user", User.class);
使用jfinalQ後只需要在每個Model上添加註解即可:
@QTable("t_blog_article")
public class BlogArticleModel extends Model<BlogArticleModel>{}
configInterceptor中設定了一個全域性interceptroe和一個自定義interceptor
afterJFinalStart中設定了三個:百度編輯器上傳檔案到七牛雲的token更新,定時任務,微信執行緒
jfinalQ檔案結構
要使用jfinalQ,首先需要了解jfinalQ的檔案結構,這節應該說是最重要的一節了。
概覽
可以看到這個專案是比較整潔的,這也算是一種檔案結構規範吧。
src
1.fore
src下的fore包是用來處理使用者端請求的,可管理端做區分,
由於model都放到了管理端,所以這裡只有controller和service兩個包結構。
2.manage
src下的manage包是用來處理管理端請求的,其實就是和資料庫表一一對應,
可以看到manage下按功能做了區分,
例如bill功能下有兩個對應的表t_bill_account,t_bill_detail,
每個表都有對應的controller和model類,
前4節講的內容都是程式碼生成,而manage下的程式碼基本都是程式碼生成的,只需要稍作修改,
詳見:
表命名規範:http://uikoo9.com/book/chapterDetail/32
程式碼生成:http://uikoo9.com/book/chapterDetail/32
許可權系統:http://uikoo9.com/book/chapterDetail/34
一對多的處理:http://uikoo9.com/book/chapterDetail/34
3.z
z包下分為:jfinal包,my包,QContants.java
jfinal包:
QController,對crud做封裝的基類
QInterceptor,全域性的interceptor,基於這個做了許可權系統
QJfinalConfig,上一節講到的配置
QJfinalUtil,封裝一些jfinal的功能,包括自動載入controller,自動管理model等
my包:
MyInterceptor,自定的全域性攔截器
MyTask,一個定時任務
QContants:
常量類,所有的常量對應關係都在這裡
配置檔案
1.config.properties
所有的配置資訊都放到這裡,包括資料庫連線資訊,七牛雲資訊,定時任務資訊,郵件簡訊資訊等
2.contants.properties
常量對應檔案
3.ehcache.xml
jfinalQ的快取系統採用ehcache,一方面用來快取資料庫列表資訊,一方面用來快取常用變數
4.jfinal-auth.xml
公開訪問的地址,詳見第3講
5.logback.xml
jfinalQ的日誌系統採用logback,方便接入各種日誌外掛
WebRoot
1.WEB-INF/lib
存放jar包
2.WEB-INF/view/base
base下是一些基於freemarker做封裝的模版,
base/common
公用的頁面,包括error:錯誤頁面,manage:管理頁面
base/head
head模版,使用者端的頁面有不同的head時,使用不同的head模版頁面
base/inc.html
所有基於freemarker的封裝都在這裡,封裝了大量bootstrap的元件和常用的頁面結構等
3.WEB-INF/view/fore,WEB-INF/view/manage
前者是使用者端相關頁面,後者是管理端相關頁面,都以功能塊做了區分,見下:
其中manage檔案下的頁面,大部分都是程式碼生成的,只有使用者端fore下的頁面需要自己寫。
4.WUI
js相關檔案,
建議js外掛,css樣式等,都採用cdn的,
也就是說一些現成的外掛都可以用公開cdn上的,
而一些自己寫的js可以放到七牛雲上,
而不要在專案中存放,保持簡潔,保證訪問速度。
jfinalQ2.0
原始碼:https://github.com/uikoo9/jfinalQ
更多精彩內容:http://uikoo9.com/
求打賞(長按圖片即可識別)~ |
捐助列表:http://uikoo9.com/donate/ |