# jfinal-undertow **Repository Path**: ithinkis/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**: 2018-11-28 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # jfinal-undertow #### 项目介绍 jfinal-undertow 用于开发、部署由 jfinal 开发的 web 项目。独创 HotSwapClassLoader + HotSwapWatcher 以 319 行代码极简实现热加载开发与部署,前无古人,后必有模仿者 ## jfinal-undertow 使用方法如下: 1: 添加 maven 依赖 ``` com.jfinal jfinal-undertow 1.0 ``` 注意以前对 jetty-server 的 maven 依赖要删掉 2: 创建 main 方法在 eclipse 或 IDEA 中启动项目 ``` UndertowServer.start(AppConfig.class); ``` 其中 AppConfig 是继承自 JFinalConfig 的子类,以前的 JFinal.start(...) 用法不再需要 ## 极速打包与部署 1: 在 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}/ ``` 2、在项目根目录下添加打包描述文件 package.xml,内容如下: ``` release dir zip true ${basedir}/src/main/resources config ${basedir}/src/main/webapp webapp ${basedir} 755 *.sh *.bat lib ``` 3、在项目根目录下添加项目运行脚本文件 start.sh、stop.sh、start.bat 这三个文件在本项目的根目录中提供了下载。其中前两个用于 linux、mac 系统, 后一个用于 windows 系统,注意要修改一下这三个文件中的 MAIN_CLASS 变量 指向你自己的项目入口,例如: ``` MAIN_CLASS=com.yourpackage.YourMainClass ``` 4、在命令行运行打包指令 ``` mvn clean package ``` 5、进入项目的 target/your-project-release 目录下,运行 start.sh 启动项目 6、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 官网文档