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/ |