Jfinal 框架简单入门

JFinal

公司的就项目使用的是JFinal框架,那么为了读懂并维护公司的项目,则需要对此框架进行学习、了解。
JFinal项目开源代码地址:https://gitee.com/jfinal/jfinal/tree/master
JFinal官网地址:https://jfinal.com/project/1
一个基于 Java 语言的极速 WEB + ORM + AOP + Template Engine 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。

一、JfinalConfig核心配置文件

基于JFinal框架的web项目,需要创建一个子类,继承自JFinalConfig,作为对我们整个web项目的配置

对于 JFinalConfig 主要有以下方法需要注意,如下:

public abstract class JFinalConfig {
    
    
	
	/**
	 * 配置全局常量
	 */
	public abstract void configConstant(Constants me);
	
	/**
	 * 配置访问路由
	 */
	public abstract void configRoute(Routes me);
	
	/**
	 * 配置插件
	 */
	public abstract void configPlugin(Plugins me);
	
	/**
	 * 配置全局拦截器
	 */
	public abstract void configInterceptor(Interceptors me);
	
	/**
	 * 配置并控制所有web请求
	 */
	public abstract void configHandler(Handlers me);
    
    /**
	 * 在项目启动之后会调
	 */
	public void afterJFinalStart(){
    
    };
	
	/**
	 * 在项目停止之前会调
	 */
	public void beforeJFinalStop(){
    
    };
}

二、PropKit工具类

使用这个PropKit工具类来引入外部的配置文件,可以在系统的任何地方使用。

可以同时加载多个配置文件,第一个被加载的配置文件可以使用PropKit.get()方法直接获取,非被第一个加载的配置文件需要使用PropKit.use(…).get(…)来获得。

另外PropKit.use()方法在加载配置文件内容以后会将数据缓存在内存中,用PropKit.useliss(…)将缓存内容清除

三、Controller

用于定义action,一个Controller可以定义多个 action 。Controller 的线程是安全的。

在 Controller 中提供了getPara() , getModel() 系列方法 setAttr() 方法以及 rander() 系列方法 供给 action 使用

  • getPara 系列方法

    获取request请求过来的参数

  • getBeangetModel 系列方法

    接受页面表单传递过来的 model 对象 model 对应数据库字段名 bean 对应 setter 方法一直的属性名

  • setAttr 方法

    该方法可以将各种数据传递给view并显示

  • getFile 文件上传

  • renderFile 文件下载

  • session 的操作方法

    通过setSessionAttr(key,value) 方法可以往session里存数据,getSessionAttr(key) 用于读取session中的数据。代码中通过 getSession() 方法来获取Session对象

  • render 系列方法

    渲染不同类型的视图返回给客户端 -支持的视图类型有:JFinal Templte ,Free Marker ,JSP,Volocity,JSON,File,Text,Html等等,也可通过继承Render抽象类来实现扩展视图类型。

四、AOP

分为三个概念:Interceptor、Before、Clear。

  • Interceptor

    /**
     * Interceptor.
     */
    public interface Interceptor {
          
          
    	void intercept(Invocation inv);
    }
    

    其可以对方法进行拦截,并提供机会在方法的前后添加切面代码,实现AOP的核心目标。

  • @Before

    用这个注解来对拦截器进行配置,对类,方法都可以进行添加拦截。当一个method有多个级别的拦截器拦截,则拦截的顺序是:Global、Inject、Class、Method,如果是同级别的拦截器,就按配置顺序执行拦截。

  • @Clear

    用于清除自身所处层次以上以上层的拦截器。

    Clear用法记忆技巧
    共有Global、Inject、Class、Method四层拦截器
    清除只针对Clear本身所处层的向上所有层,本层与下层的不清除
    不带参数时清除所有拦截器,单参数时清除指定拦截器
    

参考地址:https://wenku.baidu.com/view/99b75d36cf7931b765ce0508763231126edb77a4.html

猜你喜欢

转载自blog.csdn.net/Survivor_L/article/details/126027787