大家好,欢迎来到IT知识分享网。
JFinal 简介
JFinal 是基于Java语言的极速 WEB + ORM 开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。
JFinal框架是基于Java语言的开源Web框架,由中国著名的Java开发者陈梁发起并持续开发维护。它借鉴了Struts、Hibernate等框架的优点,采用了极简的API设计,使得开发者能够更加便捷地进行Web应用的开发工作。JFinal框架在国内外都有着广泛的应用,尤其在企业级应用和中小型项目中备受青睐。
特点
对比
JFinal ORM和Hibernate简要对比
JFinal采用ActiveRecord实现数据库操作支持,较Hibernate开发效率提升六到十倍。
JFinal ActiveRecord较Hibernate学习成本低,一小时内能上手开发。
JFinal零配置,对数据库支持五个无特点:无xml、无annotation、无getter、无setter、无attribute,极大降低了代码量,统计证实代码量节省70%到95%。
JFinal数据库操作完全采用原生sql,相对Hibernate采用的HQL学习成本低,功能更强大,性能更高,稳定性好。
JFinal 和SpringBoot简要对比
主要区别在于它们的设计理念、功能集成方式和目标用户群体。
设计理念、功能集成方式:
目标用户群体:
JFinal创建项目
Maven项目
创建 Maven 项目时选择 “Create a simple project” 和不选有所不同。选择 “Create a simple project” 时,Maven 会创建一个没有任何特定构建配置的简单项目,通常用于快速开始一个没有复杂依赖和配置的项目。不选的话,Maven 会创建一个标准的 Maven 项目,包含标准的项目结构和 pom.xml 文件,你可以根据需要添加更多配置和依赖。
<dependency> <groupId>com.jfinal</groupId> <artifactId>jfinal-undertow</artifactId> <version>1.9</version> </dependency> <dependency> <groupId>com.jfinal</groupId> <artifactId>jfinal</artifactId> <version>5.1.0</version> </dependency>
public class Config extends JFinalConfig { @Override public void configConstant(Constants me) { //是否开启开发模式 me.setDevMode(true); } @Override public void configRoute(Routes me) { // 路由扫描,jfinal 4.9.03 新增功能。参数 "com.xxx." 表示扫描被限定的包名 // 扫描仅会在该包以及该包的子包下进行 me.scan("com.w.contrller"); } @Override public void configEngine(Engine me) { } @Override public void configPlugin(Plugins me) { } @Override public void configInterceptor(Interceptors me) { } @Override public void configHandler(Handlers me) { } }
新建Config文件需要继承JFinalConfig 并重写方法
configConstant(Constants me): 配置常量
configRoute(Routes me): 配置路由
configEngine(Engine me): 配置模板引擎
configPlugin(Plugins me): 配置插件
configInterceptor(Interceptors me): 配置拦截器
configHandler(Handlers me): 配置 Handler
新建com.w.controller再创建demoController01继承Controller
@Path("/test") public class demoController01 extends Controller { //控制器的默认访问方法,相当于Struts的execute public void index(){ renderText("test"); } //普通方法 public void test01(){ renderText("test01"); } //单独访问方法 @ActionKey("/test001") public void test001(){ renderText("test001"); } }
访问localhost/test 默认调用index()方法,localhost/test/test01 调用test01()方法,
localhost/test001 调用test001()方法
新建com.w.run下创建Run类里面创建demoRun方法:
public class demoRun { public static void main(String[] args) { //加载的类 端口号 是否支持热加载 UndertowServer.start(Config.class,80,true); } }
运行程序 demoRun页面 Run As Java Application
传统非Maven项目
1.1 创建项目
此处的 Default out folder 必须要与 WebRoot\WEB-INF\classes 目录完全一致才可 以使用 JFinal 集成的 Jetty 来启动项目。
1.2 放入jar包
将 jfinal-xxx.jar 与jetty-server-8.1.8.jar 拷贝至项目 WEB-INF\lib 下
1.3 修改web.xml
添加内容到 web.xml
<filter> <filter-name>jfinal</filter-name> <filter-class>com.jfinal.core.JFinalFilter</filter-class> <init-param> <param-name>configClass</param-name> <param-value>demo.DemoConfig</param-value> </init-param> </filter> <filter-mapping> <filter-name>jfinal</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
1.4 创建配置文件及控制器
在项目 src 目录下创建 demo 包,并在 demo 包下创建 DemoConfig 文件
DemoConfig.java 文件所在的包以及自身文件名必须与 web.xml 中的 param-value 标 签内的配置相一致(在本例中该配置为 demo.DemoConfig)。
public class DemoConfig extends JFinalConfig { public void configConstant(Constants me) { me.setDevMode(true); } public void configRoute(Routes me) { me.add("/hello", HelloController.class); } public void configPlugin(Plugins me) {} public void configInterceptor(Interceptors me) {} public void configHandler(Handlers me) {} }
在 demo 包下创建 HelloController 类文件
public class HelloController extends Controller { public void index() { renderText("Hello JFinal World."); }
1.5 启动项目
在 Main class 输入框中填入com.jfinal.core.JFinal 并点击 Debug 按钮启动项目
浏览器输入 localhost/hello,输出内容为 Hello JFinal World 即启动成功
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/137403.html