jfinalQ开发教程04-jfinal配置和jfinalQ文件结构

来源:互联网 发布:sqlserver count 编辑:程序博客网 时间:2024/04/29 12:20

bird.jpg

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文件,如下:

13.png

其中,

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的文件结构,这节应该说是最重要的一节了。


概览

14.png

可以看到这个项目是比较整洁的,这也算是一种文件结构规范吧。


src

1.fore

15.png

src下的fore包是用来处理用户端请求的,可管理端做区分,

由于model都放到了管理端,所以这里只有controller和service两个包结构。


2.manage

16.png

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

17.png

z包下分为:jfinal包,my包,QContants.java

jfinal包:

QController,对crud做封装的基类

QInterceptor,全局的interceptor,基于这个做了权限系统

QJfinalConfig,上一节讲到的配置

QJfinalUtil,封装一些jfinal的功能,包括自动加载controller,自动管理model等

my包:

MyInterceptor,自定的全局拦截器

MyTask,一个定时任务

QContants:

常量类,所有的常量对应关系都在这里


配置文件

19.png

1.config.properties

所有的配置信息都放到这里,包括数据库连接信息,七牛云信息,定时任务信息,邮件短信信息等


2.contants.properties

常量对应文件


3.ehcache.xml

jfinalQ的缓存系统采用ehcache,一方面用来缓存数据库列表信息,一方面用来缓存常用变量


4.jfinal-auth.xml

公开访问的地址,详见第3讲


5.logback.xml

jfinalQ的日志系统采用logback,方便接入各种日志插件


WebRoot

21.png

1.WEB-INF/lib

存放jar包


2.WEB-INF/view/base

22.png

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

前者是用户端相关页面,后者是管理端相关页面,都以功能块做了区分,见下:

23.png

其中manage文件下的页面,大部分都是代码生成的,只有用户端fore下的页面需要自己写。


4.WUI

24.png

js相关文件,

建议js插件,css样式等,都采用cdn的,

也就是说一些现成的插件都可以用公开cdn上的,

而一些自己写的js可以放到七牛云上,

而不要在项目中存放,保持简洁,保证访问速度。


jfinalQ2.0

官网:http://uikoo9.com/jfinalQ

源码:https://github.com/uikoo9/jfinalQ


更多精彩内容:http://uikoo9.com/


求打赏(长按图片即可识别)~微信 捐助列表:http://uikoo9.com/donate/
0 0
原创粉丝点击