diff --git a/pom.xml b/pom.xml
index c5b963b334dd1b19ee72bfb185a63d721ea48749..191e8fd487e9f80a139141a94e3ac1aa3b8f2e1e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -75,6 +75,7 @@
2.7.18
3.0.1
+ 4.0.2
3.0.2
8.0.33
diff --git a/warm-flow-orm/warm-flow-mybatis-plus/pom.xml b/warm-flow-orm/warm-flow-mybatis-plus/pom.xml
index 25179c27e8cd414ae6c9702e97136bb51f0e6dc6..1fdee6764ca862513c9ca9f9fd73d5da366889ef 100644
--- a/warm-flow-orm/warm-flow-mybatis-plus/pom.xml
+++ b/warm-flow-orm/warm-flow-mybatis-plus/pom.xml
@@ -18,6 +18,7 @@
warm-flow-mybatis-plus-core
warm-flow-mybatis-plus-sb-starter
warm-flow-mybatis-plus-sb3-starter
+ warm-flow-mybatis-plus-sb4-starter
warm-flow-mybatis-plus-solon-plugin
diff --git a/warm-flow-orm/warm-flow-mybatis-plus/warm-flow-mybatis-plus-sb4-starter/pom.xml b/warm-flow-orm/warm-flow-mybatis-plus/warm-flow-mybatis-plus-sb4-starter/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..28aa0c70979d073214b505c89c5576b15005808f
--- /dev/null
+++ b/warm-flow-orm/warm-flow-mybatis-plus/warm-flow-mybatis-plus-sb4-starter/pom.xml
@@ -0,0 +1,91 @@
+
+
+ 4.0.0
+
+ org.dromara.warm
+ warm-flow-mybatis-plus
+ 1.8.5-m1
+
+
+ warm-flow-mybatis-plus-sb4-starter
+ warm-flow-mybatis-plus-sb4-starter
+ warm-flow orm为mybatis-plus的springboot4 starter
+ https://github.com/dromara/warm-flow
+
+
+ 3.5.15
+
+
+
+
+ org.dromara.warm
+ warm-flow-mybatis-plus-sb-starter
+
+
+ mybatis-plus-extension
+ com.baomidou
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+
+
+
+
+
+ com.baomidou
+ mybatis-plus-spring-boot4-starter
+ ${mybatis-plus.version}
+
+
+
+ com.baomidou
+ mybatis-plus-jsqlparser
+ ${mybatis-plus.version}
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-dependencies
+ ${springboot4.version}
+ pom
+ import
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.1
+
+ ${java17.version}
+ ${java17.version}
+ true
+ ${java17.path}\javac
+ ${project.build.sourceEncoding}
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ 3.2.0
+
+
+
+ ${java17.version}
+
+
+
+
+
+
+
diff --git a/warm-flow-orm/warm-flow-mybatis/warm-flow-mybatis-core/src/main/java/org/dromara/warm/flow/orm/utils/CommonUtil.java b/warm-flow-orm/warm-flow-mybatis/warm-flow-mybatis-core/src/main/java/org/dromara/warm/flow/orm/utils/CommonUtil.java
index 0191d5cb9cb8d2cc925787b83a018d151aa27bec..fe0c2c82419ce64e966c693a43df60df31fd5bbf 100644
--- a/warm-flow-orm/warm-flow-mybatis/warm-flow-mybatis-core/src/main/java/org/dromara/warm/flow/orm/utils/CommonUtil.java
+++ b/warm-flow-orm/warm-flow-mybatis/warm-flow-mybatis-core/src/main/java/org/dromara/warm/flow/orm/utils/CommonUtil.java
@@ -23,6 +23,9 @@ import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
+/**
+ * @author 笨小孩
+ */
public class CommonUtil {
private CommonUtil() {
@@ -34,21 +37,17 @@ public class CommonUtil {
if (StringUtils.isEmpty(dataSourceType)) {
DataSource dataSource = configuration.getEnvironment().getDataSource();
DatabaseMetaData metaData;
- Connection connection = null;
- try {
- connection = dataSource.getConnection();
- metaData = connection.getMetaData();
- dataSourceType = metaData.getDatabaseProductName().toLowerCase();
- } catch (Exception e) {
- // 不能因为一个字段的取值, 影响到框架自身运行环境
- // throw new RuntimeException(e);
- } finally {
+ try (Connection connection = dataSource.getConnection()) {
try {
- connection.close();
+ metaData = connection.getMetaData();
+ dataSourceType = metaData.getDatabaseProductName().toLowerCase();
} catch (Exception e) {
// 不能因为一个字段的取值, 影响到框架自身运行环境
// throw new RuntimeException(e);
}
+ } catch (Exception e) {
+ // 不能因为一个字段的取值, 影响到框架自身运行环境
+ // throw new RuntimeException(e);
}
}
diff --git a/warm-flow-plugin/warm-flow-plugin-modes/warm-flow-plugin-modes-sb/src/main/java/org/dromara/warm/plugin/modes/sb/helper/SpelHelper.java b/warm-flow-plugin/warm-flow-plugin-modes/warm-flow-plugin-modes-sb/src/main/java/org/dromara/warm/plugin/modes/sb/helper/SpelHelper.java
index f2ce011e58b885867577e54f35cb9c01844ffd02..31c57de68c0cc8c6acafd640d7fb320f10be5fb5 100644
--- a/warm-flow-plugin/warm-flow-plugin-modes/warm-flow-plugin-modes-sb/src/main/java/org/dromara/warm/plugin/modes/sb/helper/SpelHelper.java
+++ b/warm-flow-plugin/warm-flow-plugin-modes/warm-flow-plugin-modes-sb/src/main/java/org/dromara/warm/plugin/modes/sb/helper/SpelHelper.java
@@ -28,19 +28,20 @@ import org.springframework.expression.ParserContext;
import org.springframework.expression.common.TemplateParserContext;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;
+import org.springframework.lang.NonNull;
import java.util.Map;
/**
- * 条件表达式spel
+ * 条件表达式 spel
*
- * @author warm
+ * @author warm,battcn
*/
@Configuration
public class SpelHelper implements ApplicationContextAware {
- private static final ExpressionParser parser = new SpelExpressionParser();
- private final static ParserContext parserContext = new TemplateParserContext();
+ private static final ExpressionParser PARSER = new SpelExpressionParser();
+ private final static ParserContext PARSER_CONTEXT = new TemplateParserContext();
private static ApplicationContext applicationContext;
@@ -57,18 +58,18 @@ public class SpelHelper implements ApplicationContextAware {
}
/**
- * @param expression
- * @return
+ * @param expression expression
+ * @return Object
*/
public static Object parseExpression(String expression, Map variable) {
StandardEvaluationContext context = new StandardEvaluationContext();
context.setBeanResolver(beanResolver());
context.setVariables(variable);
- return parser.parseExpression(expression, parserContext).getValue(context, Object.class);
+ return PARSER.parseExpression(expression, PARSER_CONTEXT).getValue(context, Object.class);
}
@Override
- public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+ public void setApplicationContext(@NonNull ApplicationContext applicationContext) throws BeansException {
if (SpelHelper.applicationContext == null) {
SpelHelper.applicationContext = applicationContext;
}
diff --git a/warm-flow-plugin/warm-flow-plugin-modes/warm-flow-plugin-modes-sb/src/main/java/org/dromara/warm/plugin/modes/sb/utils/SpringUtil.java b/warm-flow-plugin/warm-flow-plugin-modes/warm-flow-plugin-modes-sb/src/main/java/org/dromara/warm/plugin/modes/sb/utils/SpringUtil.java
index 8450c9128fe52e4ec7ad5fd73abf810d2e263aca..5073d61daeba9672b544abeb0b80127c027dd7f9 100644
--- a/warm-flow-plugin/warm-flow-plugin-modes/warm-flow-plugin-modes-sb/src/main/java/org/dromara/warm/plugin/modes/sb/utils/SpringUtil.java
+++ b/warm-flow-plugin/warm-flow-plugin-modes/warm-flow-plugin-modes-sb/src/main/java/org/dromara/warm/plugin/modes/sb/utils/SpringUtil.java
@@ -18,6 +18,7 @@ package org.dromara.warm.plugin.modes.sb.utils;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
+import org.springframework.lang.NonNull;
import org.springframework.stereotype.Component;
/**
@@ -31,21 +32,21 @@ public class SpringUtil implements ApplicationContextAware {
/**
* 获取applicationContext,应用上下文
*
- * @return
+ * @return ApplicationContext
*/
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
@Override
- public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+ public void setApplicationContext(@NonNull ApplicationContext applicationContext) throws BeansException {
if (SpringUtil.applicationContext == null) {
SpringUtil.applicationContext = applicationContext;
}
}
/**
- * 通过class获取Bean
+ * 通过 class 获取 Bean
*/
public static M getBean(Class clazz) {
return getApplicationContext().getBean(clazz);