From b1e9f700255af20ba145db43257935651277fd91 Mon Sep 17 00:00:00 2001
From: lxyer <237809796@qq.com>
Date: Sat, 8 Jun 2019 20:03:16 +0800
Subject: [PATCH] =?UTF-8?q?=E5=BC=95=E5=85=A5rundertow=E6=94=AF=E6=8C=81,?=
=?UTF-8?q?=E5=90=AF=E5=8A=A8=E9=A1=B9=E7=9B=AE=E5=BF=AB=E4=BA=BA=E4=B8=80?=
=?UTF-8?q?=E6=AD=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 3 +-
jfinal.bat | 69 +++++++++++++++++++
jfinal.sh | 56 +++++++++++++++
package.xml | 58 ++++++++++++++++
pom.xml | 57 ++++++++++++++-
src/main/java/com/lxyer/config/DbMap.java | 2 +-
src/main/java/com/lxyer/config/FlyConfig.java | 7 +-
src/main/resources/undertow.txt | 1 +
8 files changed, 249 insertions(+), 4 deletions(-)
create mode 100644 jfinal.bat
create mode 100644 jfinal.sh
create mode 100644 package.xml
create mode 100644 src/main/resources/undertow.txt
diff --git a/.gitignore b/.gitignore
index 889a9a6..29bc8ac 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,4 +7,5 @@
*.iml
.idea/
/.idea/
-/out/
\ No newline at end of file
+/out/
+config.properties
\ No newline at end of file
diff --git a/jfinal.bat b/jfinal.bat
new file mode 100644
index 0000000..a0d2db7
--- /dev/null
+++ b/jfinal.bat
@@ -0,0 +1,69 @@
+@echo off
+
+rem -------------------------------------------------------------------------
+rem
+rem 使用说明:
+rem
+rem 1: 该脚本用于别的项目时只需要修改 MAIN_CLASS 即可运行
+rem
+rem 2: JAVA_OPTS 可通过 -D 传入 undertow.port 与 undertow.host 这类参数覆盖
+rem 配置文件中的相同值此外还有 undertow.resourcePath, undertow.ioThreads
+rem undertow.workerThreads 共五个参数可通过 -D 进行传入
+rem
+rem 3: JAVA_OPTS 可传入标准的 java 命令行参数,例如 -Xms256m -Xmx1024m 这类常用参数
+rem
+rem
+rem -------------------------------------------------------------------------
+
+setlocal & pushd
+
+
+rem 启动入口类,该脚本文件用于别的项目时要改这里
+set MAIN_CLASS=com.lxyer.config.FlyConfig
+
+rem Java 命令行参数,根据需要开启下面的配置,改成自己需要的,注意等号前后不能有空格
+rem set "JAVA_OPTS=-Xms256m -Xmx1024m -Dundertow.port=80 -Dundertow.host=0.0.0.0"
+rem set "JAVA_OPTS=-Dundertow.port=80 -Dundertow.host=0.0.0.0"
+
+
+if "%1"=="start" goto normal
+if "%1"=="stop" goto normal
+if "%1"=="restart" goto normal
+
+goto error
+
+
+:error
+echo Usage: jfinal.bat start | stop | restart
+goto :eof
+
+
+:normal
+if "%1"=="start" goto start
+if "%1"=="stop" goto stop
+if "%1"=="restart" goto restart
+goto :eof
+
+
+:start
+set APP_BASE_PATH=%~dp0
+set CP=%APP_BASE_PATH%config;%APP_BASE_PATH%lib\*
+echo starting jfinal undertow
+java -Xverify:none %JAVA_OPTS% -cp %CP% %MAIN_CLASS%
+goto :eof
+
+
+:stop
+set "PATH=%JAVA_HOME%\bin;%PATH%"
+echo stopping jfinal undertow
+for /f "tokens=1" %%i in ('jps -l ^| find "%MAIN_CLASS%"') do ( taskkill /F /PID %%i )
+goto :eof
+
+
+:restart
+call :stop
+call :start
+goto :eof
+
+endlocal & popd
+pause
\ No newline at end of file
diff --git a/jfinal.sh b/jfinal.sh
new file mode 100644
index 0000000..017bc89
--- /dev/null
+++ b/jfinal.sh
@@ -0,0 +1,56 @@
+#!/bin/bash
+
+# 启动入口类,该脚本文件用于别的项目时要改这里
+MAIN_CLASS=com.lxyer.config.FlyConfig
+
+COMMAND="$1"
+
+if [[ "$COMMAND" != "start" ]] && [[ "$COMMAND" != "stop" ]] && [[ "$COMMAND" != "restart" ]]; then
+ echo "Usage: $0 start | stop | restart"
+ exit 0
+fi
+
+
+# Java 命令行参数,根据需要开启下面的配置,改成自己需要的,注意等号前后不能有空格
+# JAVA_OPTS="-Xms256m -Xmx1024m -Dundertow.port=80 -Dundertow.host=0.0.0.0"
+# JAVA_OPTS="-Dundertow.port=80 -Dundertow.host=0.0.0.0"
+
+# 生成 class path 值
+APP_BASE_PATH=$(cd `dirname $0`; pwd)
+CP=${APP_BASE_PATH}/config:${APP_BASE_PATH}/lib/*
+
+function start()
+{
+ # 运行为后台进程,并在控制台输出信息
+ java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} &
+
+ # 运行为后台进程,并且不在控制台输出信息
+ # nohup java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} >/dev/null 2>&1 &
+
+ # 运行为后台进程,并且将信息输出到 output.log 文件
+ # nohup java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} > output.log &
+
+ # 运行为非后台进程,多用于开发阶段,快捷键 ctrl + c 可停止服务
+ # java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS}
+}
+
+function stop()
+{
+ # 支持集群部署
+ kill `pgrep -f ${APP_BASE_PATH}` 2>/dev/null
+
+ # kill 命令不使用 -9 参数时,会回调 onStop() 方法,确定不需要此回调建议使用 -9 参数
+ # kill `pgrep -f ${MAIN_CLASS}` 2>/dev/null
+
+ # 以下代码与上述代码等价
+ # kill $(pgrep -f ${MAIN_CLASS}) 2>/dev/null
+}
+
+if [[ "$COMMAND" == "start" ]]; then
+ start
+elif [[ "$COMMAND" == "stop" ]]; then
+ stop
+else
+ stop
+ start
+fi
\ No newline at end of file
diff --git a/package.xml b/package.xml
new file mode 100644
index 0000000..4b3788d
--- /dev/null
+++ b/package.xml
@@ -0,0 +1,58 @@
+
+
+
+ release
+
+
+
+ dir
+ zip
+
+
+
+
+ true
+
+
+
+
+ ${basedir}/src/main/resources
+ config
+
+
+
+
+ ${basedir}/src/main/webapp
+ webapp
+
+
+
+
+ ${basedir}
+
+
+ 755
+
+ *.sh
+ *.bat
+
+
+
+
+
+
+
+ lib
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 19944d8..76989cb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2,7 +2,7 @@
4.0.0
- war
+ jar
jfly
com.lxyer
@@ -16,6 +16,12 @@
4.2
+
+ com.jfinal
+ jfinal-undertow
+ 1.6
+
+
mysql
mysql-connector-java
@@ -77,6 +83,55 @@
1.8
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ 2.6
+
+
+ *.txt
+ *.xml
+ *.properties
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ 3.1.0
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+ ${project.artifactId}
+
+ false
+
+ true
+
+
+ package.xml
+
+
+ ${project.build.directory}/
+
+
+
+
+
diff --git a/src/main/java/com/lxyer/config/DbMap.java b/src/main/java/com/lxyer/config/DbMap.java
index d457cfa..ecdb9a7 100644
--- a/src/main/java/com/lxyer/config/DbMap.java
+++ b/src/main/java/com/lxyer/config/DbMap.java
@@ -31,7 +31,7 @@ public class DbMap {
}
public static void addSqlTemplate(ActiveRecordPlugin arp) {
- String baseSqlTemplatePath = PathKit.getWebRootPath() + "/WEB-INF/classes/sql/";
+ String baseSqlTemplatePath = PathKit.getRootClassPath() + "/sql/";
arp.setBaseSqlTemplatePath("sql");
File sqlFiles = new File(baseSqlTemplatePath);
diff --git a/src/main/java/com/lxyer/config/FlyConfig.java b/src/main/java/com/lxyer/config/FlyConfig.java
index f33e25c..e725563 100644
--- a/src/main/java/com/lxyer/config/FlyConfig.java
+++ b/src/main/java/com/lxyer/config/FlyConfig.java
@@ -10,9 +10,9 @@ import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.ehcache.EhCachePlugin;
import com.jfinal.plugin.hikaricp.HikariCpPlugin;
import com.jfinal.plugin.redis.RedisPlugin;
+import com.jfinal.server.undertow.UndertowServer;
import com.jfinal.template.Engine;
import com.lxyer.config.handler.UrlHandler;
-import com.lxyer.config.interceptor.LoginInterceptor;
import com.lxyer.config.route.AdminRoute;
import com.lxyer.config.route.SiteRoute;
@@ -74,4 +74,9 @@ public class FlyConfig extends JFinalConfig {
public void configHandler(Handlers me) {
me.add(new UrlHandler());
}
+
+ // 启动入口
+ public static void main(String[] args) {
+ UndertowServer.start(FlyConfig.class);
+ }
}
diff --git a/src/main/resources/undertow.txt b/src/main/resources/undertow.txt
new file mode 100644
index 0000000..b4de7f4
--- /dev/null
+++ b/src/main/resources/undertow.txt
@@ -0,0 +1 @@
+MAIN_CLASS=com.lxyer.config.FlyConfig
\ No newline at end of file