# jfinal-undertow **Repository Path**: vq101/jfinal-undertow ## Basic Information - **Project Name**: jfinal-undertow - **Description**: jfinal-undertow 用于开发、部署由 jfinal 开发的 web 项目。独创 HotSwapClassLoader + HotSwapWatcher 以 319 行代码极简实现热加载开发与部署,前无古人,后必有模仿者 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 94 - **Created**: 2019-06-12 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # jfinal-undertow #### 项目介绍 jfinal-undertow 用于开发、部署由 jfinal 开发的 web 项目。独创 HotSwapClassLoader + HotSwapWatcher 以 319 行代码极简实现热加载开发与部署,前无古人,后必有模仿者 ## 一、 极速上手 ### 1: 添加 maven 依赖 ``` com.jfinal jfinal-undertow 1.6 ``` 注意:以前对 jetty-server 的 maven 依赖要删掉 ### 2: 创建 main 方法在 eclipse 或 IDEA 中启动项目 ``` UndertowServer.start(AppConfig.class); ``` 其中 AppConfig 是继承自 JFinalConfig 的子类,以前的 JFinal.start(...) 用法不再需要 ## 二、极速打包与部署 ### 1: 修改 pom.xml 头部的打包类型由 war 改成 jar ``` jar ``` ### 2: 在 pom.xml 中添加 maven-jar-plugin 插件 ``` org.apache.maven.plugins maven-jar-plugin 2.6 *.txt *.xml *.properties ``` 该插件仅为了避免将配置文件打入 jar 包,如果是打成 fatjar 包则不需要添加此插件 ### 3: 在 pom.xml 中添加 maven-assembly-plugin 插件 ``` org.apache.maven.plugins maven-assembly-plugin 3.1.0 make-assembly package single ${project.artifactId} false true package.xml ${project.build.directory}/ ``` ### 4、在项目根目录下添加打包描述文件 package.xml,内容如下: ``` release dir zip true ${basedir}/src/main/resources config ${basedir}/src/main/webapp webapp ${basedir} 755 *.sh *.bat lib ``` ### 5、部署在项目根目录下添加项目运行脚本文件 本项目中的根目录下面提供了 jfinal.sh、jfinal.bat 这两个脚本文件下载。其中 jfinal.sh 用于 linux、mac 系统,jfinal.bat 用于 windows 系统,注意要修改一下这些脚本文件中的 MAIN_CLASS 变量指向你自己的项目入口,例如: ``` MAIN_CLASS=com.yourpackage.YourMainClass ``` 当然这两个脚本文件不是必须的,大家完全可以根据个人习惯编写启动脚本 ### 6、在命令行运行打包指令 ``` mvn clean package ``` ### 7、部署 进入项目的 target/your-project-release 目录,运行 ./jfinal.sh start 即可启动项目。target 目录下还会打包出一个 your-project-release.zip 该文件是上述第五步中生成的目录的一个 zip 压缩文件,上传该文件到服务器解压即部署,可以通过修改 package.xml 改变生成的文件名或者取消生成该文件 ## 三、jfinal-undertow 优势: 1:极速启动,启动速度比 tomcat 快 5 到 8 倍。jfinal.com 官网启动时间在 1.5 秒内 2:极简精妙的热部署设计,实现极速轻量级热部署,响应极为迅速,让开发体验再次提升一个档次 3:性能比 tomcat、jetty 高出很多,可代替 tomcat、jetty 用于生产环境 4:undertow 为嵌入式而生,可直接用于生产环境部署,部署时无需下载服务,无需配置服务,极其适合微服务开发、部署 5:告别 web.xml、告别 tomcat、告别 jetty,节省大量打包与部署时间。令开发、打包、部署成为一件开心的事 6:功能丰富,支持 classHotSwap、WebSocket、gzip 压缩、servlet、filter、sessionHotSwap 等功能 7:支持 fatjar 与 非 fatjar 打包模式,为 jfinal 下一步的微服务功能做好准备 8:开发、打包、部署一体化,整个过程无需对项目中的任何地方进行调整或修改,真正实现从极速开发到极速部署 9:以上仅为 jfinal-undertow 的部分功能,更多好用的功能如 fatjar 打包模式见 jfinal 官网文档