JFinal:
JFinal 是基于Java 语言的极速 web 开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python等动态语言的开发效率。

但目前此框架不是主流框架,大部分公司极少使用。

JFinal 由Handler、Interceptor、Controller、Render、Plugin 五大部分组成

JFinal流程图:

JFinal流程图

JFinal架构图:

此处输入图片的描述

JFinalConfig

基于JFinal的web项目需要创建一个继承自JFinalConfig类的子类,该类用于对整个web项目进行配置。


configConstant(constants me)

此方法来配置Jfinal常量值,如开发模式常量devModel的配置,如下代码配置了JFinal运行在开发模式下:

常用配置

public void configConstant(Constants me) {
    // 配置开发模式,true 值为开发模式
    me.setDevMode(true);
    
    // 配置 aop 代理使用 cglib,否则将使用 jfinal 默认的动态编译代理方案
    me.setToCglibProxyFactory();
    
    // 配置依赖注入
    me.setInjectDependency(true);
    
    // 配置依赖注入时,是否对被注入类的超类进行注入
    me.setInjectSuperClass(false);
    
    // 配置为 slf4j 日志系统,否则默认将使用 log4j
    // 还可以通过 me.setLogFactory(...) 配置为自行扩展的日志系统实现类
    me.setToSlf4jLogFactory();
    
    // 设置 Json 转换工厂实现类,更多说明见第 12 章
    me.setJsonFactory(new MixedJsonFactory());
    
    // 配置视图类型,默认使用 jfinal enjoy 模板引擎
    me.setViewType(ViewType.JFINAL_TEMPLATE);
    
    // 配置基础下载路径,默认为 webapp 下的 download
    me.setBaseDownloadPath(...);
    
    // 配置基础上传路径,默认为 webapp 下的 upload
    me.setBaseUploadPath(...);
    
    // 配置 404、500 页面
    me.setError404View("/common/404.html");
    me.setError500View("/common/500.html");    
}

或基础配置

public void configConstant(Constants me) {
    // 配置 encoding,默认为 UTF8
    me.setEncoding("UTF8");
    
    // 配置 json 转换 Date 类型时使用的 data parttern
    me.setJsonDatePattern("yyyy-MM-dd HH:mm");
    
    // 配置是否拒绝访问 JSP,是指直接访问 .jsp 文件,与 renderJsp(xxx.jsp) 无关
    me.setDenyAccessJsp(true);
    
    // 配置上传文件最大数据量,默认 10M
    me.setMaxPostSize(10 * 1024 * 1024);
    
    // 配置验证码缓存 cache,配置成集中共享缓存可以支持分布式与集群
    me.setCaptchaCache(...);
    
    // 配置 urlPara 参数分隔字符,默认为 "-"
    me.setUrlParaSeparator("-");
}

configRoute(Routes me)

此方法来配置JFinal访问路由(访问后台的路径),如下

public void configRoute(Routes me) {
    // 如果要将控制器超类中的 public 方法映射为 action 配置成 true,一般不用配置
    me.setMappingSuperClass(false);
    
    me.setBaseViewPath("/view");
    me.addInterceptor(new FrontInterceptor());
    me.add("/hello", HelloController.class);
}

其他配置或文档请参考官网:JFinal 文档、资料、学习、API,Maven 基础

个人总结:

1.JFinal 通过cofig类 配置jdbc,访问controller路径,等其他配置(包括实体与数据库的映射在内)

2.实体继承JFinal的 Model(内部有定义好的方法调用),也可以将实体当做dao层及daoImpl层在内编写sql语句

3.且获取实体的值时是通过 实体对象get("*"),set("*")获取,*为实体映射对应数据库里的字段

4.有一特点是JFinal的添加或编辑可以set("*").set("*").save();或set("*").set("*").update();格式进行

5.前后台交互参数等,主要以request与response等为主...

注意,JFinal的配置要严格按照标准进行。 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐