mirror of https://github.com/jeecgboot/jeecg-boot
Merge branch 'master' of https://github.com/EightMonth/jeecg-boot
commit
2cfc39b23f
|
@ -196,8 +196,8 @@ Star走势图
|
||||||
* 17.支持SAAS服务模式,提供SaaS多租户架构方案。
|
* 17.支持SAAS服务模式,提供SaaS多租户架构方案。
|
||||||
* 18.分布式文件服务,集成minio、阿里OSS等优秀的第三方,提供便捷的文件上传与管理,同时也支持本地存储。
|
* 18.分布式文件服务,集成minio、阿里OSS等优秀的第三方,提供便捷的文件上传与管理,同时也支持本地存储。
|
||||||
* 19.主流数据库兼容,一套代码完全兼容Mysql、Postgresql、Oracle、Sqlserver、MariaDB、达梦等主流数据库。
|
* 19.主流数据库兼容,一套代码完全兼容Mysql、Postgresql、Oracle、Sqlserver、MariaDB、达梦等主流数据库。
|
||||||
* 20.集成工作流activiti、flowable,并实现了只需在页面配置流程转向,可极大的简化bpm工作流的开发;用bpm的流程设计器画出了流程走向,一个工作流基本就完成了,只需写很少量的java代码;
|
* 20.集成工作流flowable、activiti,并实现了只需在页面配置流程转向,可极大的简化bpm工作流的开发;用bpm的流程设计器画出了流程走向,一个工作流基本就完成了,只需写很少量的java代码;
|
||||||
* 21.低代码能力:在线流程设计,采用开源Activiti流程引擎,实现在线画流程,自定义表单,表单挂靠,业务流转
|
* 21.低代码能力:在线流程设计,采用开源flowable、activiti流程引擎,实现在线画流程,自定义表单,表单挂靠,业务流转
|
||||||
* 22.多数据源:及其简易的使用方式,在线配置数据源配置,便捷的从其他数据抓取数据;
|
* 22.多数据源:及其简易的使用方式,在线配置数据源配置,便捷的从其他数据抓取数据;
|
||||||
* 23.提供单点登录CAS集成方案,项目中已经提供完善的对接代码
|
* 23.提供单点登录CAS集成方案,项目中已经提供完善的对接代码
|
||||||
* 24.低代码能力:表单设计器,支持用户自定义表单布局,支持单表,一对多表单、支持select、radio、checkbox、textarea、date、popup、列表、宏等控件
|
* 24.低代码能力:表单设计器,支持用户自定义表单布局,支持单表,一对多表单、支持select、radio、checkbox、textarea、date、popup、列表、宏等控件
|
||||||
|
|
|
@ -82,7 +82,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>commons-io</groupId>
|
<groupId>commons-io</groupId>
|
||||||
<artifactId>commons-io</artifactId>
|
<artifactId>commons-io</artifactId>
|
||||||
<version>${commons.version}</version>
|
<version>${commons-io.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>commons-lang</groupId>
|
<groupId>commons-lang</groupId>
|
||||||
|
@ -183,9 +183,14 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- knife4j -->
|
<!-- knife4j -->
|
||||||
<dependency>
|
<!-- <dependency>
|
||||||
<groupId>com.github.xiaoymin</groupId>
|
<groupId>com.github.xiaoymin</groupId>
|
||||||
<artifactId>knife4j-spring-boot-starter</artifactId>
|
<artifactId>knife4j-spring-boot-starter</artifactId>
|
||||||
|
<version>3.0.3</version>
|
||||||
|
</dependency>-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.xiaoymin</groupId>
|
||||||
|
<artifactId>knife4j-openapi2-spring-boot-starter</artifactId>
|
||||||
<version>${knife4j-spring-boot-starter.version}</version>
|
<version>${knife4j-spring-boot-starter.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
|
@ -348,8 +348,11 @@ public class CommonUtils {
|
||||||
|
|
||||||
//返回 host domain
|
//返回 host domain
|
||||||
String baseDomainPath = null;
|
String baseDomainPath = null;
|
||||||
int length = 80;
|
//update-begin---author:wangshuai---date:2024-03-15---for:【QQYUN-8561】企业微信登陆请求接口设置上下文不一致,导致接口404---
|
||||||
if(length == serverPort){
|
int httpPort = 80;
|
||||||
|
int httpsPort = 443;
|
||||||
|
if(httpPort == serverPort || httpsPort == serverPort){
|
||||||
|
//update-end---author:wangshuai---date:2024-03-15---for:【QQYUN-8561】企业微信登陆请求接口设置上下文不一致,导致接口404---~
|
||||||
baseDomainPath = scheme + "://" + serverName + contextPath ;
|
baseDomainPath = scheme + "://" + serverName + contextPath ;
|
||||||
}else{
|
}else{
|
||||||
baseDomainPath = scheme + "://" + serverName + ":" + serverPort + contextPath ;
|
baseDomainPath = scheme + "://" + serverName + ":" + serverPort + contextPath ;
|
||||||
|
|
|
@ -1,55 +1,6 @@
|
||||||
package org.jeecg.common.util.sqlInjection.parse;
|
package org.jeecg.common.util.sqlInjection.parse;
|
||||||
|
|
||||||
import net.sf.jsqlparser.expression.AllValue;
|
import net.sf.jsqlparser.expression.*;
|
||||||
import net.sf.jsqlparser.expression.AnalyticExpression;
|
|
||||||
import net.sf.jsqlparser.expression.AnyComparisonExpression;
|
|
||||||
import net.sf.jsqlparser.expression.ArrayConstructor;
|
|
||||||
import net.sf.jsqlparser.expression.ArrayExpression;
|
|
||||||
import net.sf.jsqlparser.expression.BinaryExpression;
|
|
||||||
import net.sf.jsqlparser.expression.CaseExpression;
|
|
||||||
import net.sf.jsqlparser.expression.CastExpression;
|
|
||||||
import net.sf.jsqlparser.expression.CollateExpression;
|
|
||||||
import net.sf.jsqlparser.expression.ConnectByRootOperator;
|
|
||||||
import net.sf.jsqlparser.expression.DateTimeLiteralExpression;
|
|
||||||
import net.sf.jsqlparser.expression.DateValue;
|
|
||||||
import net.sf.jsqlparser.expression.DoubleValue;
|
|
||||||
import net.sf.jsqlparser.expression.Expression;
|
|
||||||
import net.sf.jsqlparser.expression.ExpressionVisitor;
|
|
||||||
import net.sf.jsqlparser.expression.ExtractExpression;
|
|
||||||
import net.sf.jsqlparser.expression.Function;
|
|
||||||
import net.sf.jsqlparser.expression.HexValue;
|
|
||||||
import net.sf.jsqlparser.expression.IntervalExpression;
|
|
||||||
import net.sf.jsqlparser.expression.JdbcNamedParameter;
|
|
||||||
import net.sf.jsqlparser.expression.JdbcParameter;
|
|
||||||
import net.sf.jsqlparser.expression.JsonAggregateFunction;
|
|
||||||
import net.sf.jsqlparser.expression.JsonExpression;
|
|
||||||
import net.sf.jsqlparser.expression.JsonFunction;
|
|
||||||
import net.sf.jsqlparser.expression.JsonFunctionExpression;
|
|
||||||
import net.sf.jsqlparser.expression.KeepExpression;
|
|
||||||
import net.sf.jsqlparser.expression.LongValue;
|
|
||||||
import net.sf.jsqlparser.expression.MySQLGroupConcat;
|
|
||||||
import net.sf.jsqlparser.expression.NextValExpression;
|
|
||||||
import net.sf.jsqlparser.expression.NotExpression;
|
|
||||||
import net.sf.jsqlparser.expression.NullValue;
|
|
||||||
import net.sf.jsqlparser.expression.NumericBind;
|
|
||||||
import net.sf.jsqlparser.expression.OracleHierarchicalExpression;
|
|
||||||
import net.sf.jsqlparser.expression.OracleHint;
|
|
||||||
import net.sf.jsqlparser.expression.OracleNamedFunctionParameter;
|
|
||||||
import net.sf.jsqlparser.expression.Parenthesis;
|
|
||||||
import net.sf.jsqlparser.expression.RowConstructor;
|
|
||||||
import net.sf.jsqlparser.expression.RowGetExpression;
|
|
||||||
import net.sf.jsqlparser.expression.SignedExpression;
|
|
||||||
import net.sf.jsqlparser.expression.StringValue;
|
|
||||||
import net.sf.jsqlparser.expression.TimeKeyExpression;
|
|
||||||
import net.sf.jsqlparser.expression.TimeValue;
|
|
||||||
import net.sf.jsqlparser.expression.TimestampValue;
|
|
||||||
import net.sf.jsqlparser.expression.TimezoneExpression;
|
|
||||||
import net.sf.jsqlparser.expression.TryCastExpression;
|
|
||||||
import net.sf.jsqlparser.expression.UserVariable;
|
|
||||||
import net.sf.jsqlparser.expression.ValueListExpression;
|
|
||||||
import net.sf.jsqlparser.expression.VariableAssignment;
|
|
||||||
import net.sf.jsqlparser.expression.WhenClause;
|
|
||||||
import net.sf.jsqlparser.expression.XMLSerializeExpr;
|
|
||||||
import net.sf.jsqlparser.expression.operators.arithmetic.Addition;
|
import net.sf.jsqlparser.expression.operators.arithmetic.Addition;
|
||||||
import net.sf.jsqlparser.expression.operators.arithmetic.BitwiseAnd;
|
import net.sf.jsqlparser.expression.operators.arithmetic.BitwiseAnd;
|
||||||
import net.sf.jsqlparser.expression.operators.arithmetic.BitwiseLeftShift;
|
import net.sf.jsqlparser.expression.operators.arithmetic.BitwiseLeftShift;
|
||||||
|
@ -215,6 +166,23 @@ public class ConstAnalyzer implements ExpressionVisitor, ItemsListVisitor {
|
||||||
expr.getBetweenExpressionEnd().accept(this);
|
expr.getBetweenExpressionEnd().accept(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * 用于处理 OverlapsCondition 类型的表达式
|
||||||
|
// * @param overlapsCondition
|
||||||
|
// */
|
||||||
|
// @Override
|
||||||
|
// public void visit(OverlapsCondition overlapsCondition) {
|
||||||
|
// constFlag.set(false);
|
||||||
|
// }
|
||||||
|
// /**
|
||||||
|
// * 用于处理 SafeCastExpression 类型的表达式。
|
||||||
|
// * @param safeCastExpression
|
||||||
|
// */
|
||||||
|
// @Override
|
||||||
|
// public void visit(SafeCastExpression safeCastExpression) {
|
||||||
|
// constFlag.set(false);
|
||||||
|
// }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visit(EqualsTo expr) {
|
public void visit(EqualsTo expr) {
|
||||||
visitBinaryExpression(expr);
|
visitBinaryExpression(expr);
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package org.jeecg.config;
|
package org.jeecg.config;
|
||||||
|
|
||||||
|
|
||||||
import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
|
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.jeecg.common.constant.CommonConstant;
|
import org.jeecg.common.constant.CommonConstant;
|
||||||
import org.springframework.beans.BeansException;
|
import org.springframework.beans.BeansException;
|
||||||
|
@ -19,15 +18,13 @@ import springfox.documentation.builders.ApiInfoBuilder;
|
||||||
import springfox.documentation.builders.ParameterBuilder;
|
import springfox.documentation.builders.ParameterBuilder;
|
||||||
import springfox.documentation.builders.PathSelectors;
|
import springfox.documentation.builders.PathSelectors;
|
||||||
import springfox.documentation.builders.RequestHandlerSelectors;
|
import springfox.documentation.builders.RequestHandlerSelectors;
|
||||||
import springfox.documentation.oas.annotations.EnableOpenApi;
|
|
||||||
import springfox.documentation.schema.ModelRef;
|
import springfox.documentation.schema.ModelRef;
|
||||||
import springfox.documentation.service.*;
|
import springfox.documentation.service.*;
|
||||||
import springfox.documentation.spi.DocumentationType;
|
import springfox.documentation.spi.DocumentationType;
|
||||||
import springfox.documentation.spi.service.contexts.SecurityContext;
|
import springfox.documentation.spi.service.contexts.SecurityContext;
|
||||||
import springfox.documentation.spring.web.plugins.Docket;
|
import springfox.documentation.spring.web.plugins.Docket;
|
||||||
import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider;
|
|
||||||
import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider;
|
import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider;
|
||||||
import springfox.documentation.swagger2.annotations.EnableSwagger2;
|
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -39,8 +36,7 @@ import java.util.stream.Collectors;
|
||||||
* @Author scott
|
* @Author scott
|
||||||
*/
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
@EnableSwagger2 //开启 Swagger2
|
@EnableSwagger2WebMvc
|
||||||
@EnableKnife4j //开启 knife4j,可以不写
|
|
||||||
@Import(BeanValidatorPluginsConfiguration.class)
|
@Import(BeanValidatorPluginsConfiguration.class)
|
||||||
public class Swagger2Config implements WebMvcConfigurer {
|
public class Swagger2Config implements WebMvcConfigurer {
|
||||||
|
|
||||||
|
@ -152,7 +148,7 @@ public class Swagger2Config implements WebMvcConfigurer {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
|
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
|
||||||
if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) {
|
if (bean instanceof WebMvcRequestHandlerProvider) {
|
||||||
customizeSpringfoxHandlerMappings(getHandlerMappings(bean));
|
customizeSpringfoxHandlerMappings(getHandlerMappings(bean));
|
||||||
}
|
}
|
||||||
return bean;
|
return bean;
|
||||||
|
|
|
@ -173,6 +173,7 @@ public class ShiroConfig {
|
||||||
// 企业微信证书排除
|
// 企业微信证书排除
|
||||||
filterChainDefinitionMap.put("/WW_verify*", "anon");
|
filterChainDefinitionMap.put("/WW_verify*", "anon");
|
||||||
|
|
||||||
|
|
||||||
// 通过注解免登录url
|
// 通过注解免登录url
|
||||||
List<String> ignoreAuthUrlList = collectIgnoreAuthUrl();
|
List<String> ignoreAuthUrlList = collectIgnoreAuthUrl();
|
||||||
if (!CollectionUtils.isEmpty(ignoreAuthUrlList)) {
|
if (!CollectionUtils.isEmpty(ignoreAuthUrlList)) {
|
||||||
|
@ -181,6 +182,7 @@ public class ShiroConfig {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 添加自己的过滤器并且取名为jwt
|
// 添加自己的过滤器并且取名为jwt
|
||||||
Map<String, Filter> filterMap = new HashMap<String, Filter>(1);
|
Map<String, Filter> filterMap = new HashMap<String, Filter>(1);
|
||||||
//如果cloudServer为空 则说明是单体 需要加载跨域配置【微服务跨域切换】
|
//如果cloudServer为空 则说明是单体 需要加载跨域配置【微服务跨域切换】
|
||||||
|
|
|
@ -43,11 +43,10 @@
|
||||||
<version>${dm8.version}</version>
|
<version>${dm8.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!--支持 mysql5.7、mysql8、MariaDB10.3.16-->
|
<!-- flyway支持 mysql5.7、mysql8、MariaDB10.3.16 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.flywaydb</groupId>
|
<groupId>org.flywaydb</groupId>
|
||||||
<artifactId>flyway-core</artifactId>
|
<artifactId>flyway-core</artifactId>
|
||||||
<version>7.15.0</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,136 @@
|
||||||
|
package org.jeecg.config.flyway;
|
||||||
|
|
||||||
|
import com.baomidou.dynamic.datasource.DynamicRoutingDataSource;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.flywaydb.core.Flyway;
|
||||||
|
import org.flywaydb.core.api.FlywayException;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.core.env.Environment;
|
||||||
|
|
||||||
|
import javax.sql.DataSource;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 初始化flyway配置 修改之后支持多数据源,当出现异常时打印日志,不影响项目启动
|
||||||
|
*
|
||||||
|
* @author: wangshuai
|
||||||
|
* @date: 2024/3/12 10:03
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Configuration
|
||||||
|
public class FlywayConfig {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private DataSource dataSource;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private Environment environment;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否开启flyway
|
||||||
|
*/
|
||||||
|
@Value("${spring.flyway.enabled:false}")
|
||||||
|
private Boolean enabled;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编码格式,默认UTF-8
|
||||||
|
*/
|
||||||
|
@Value("${spring.flyway.encoding:UTF-8}")
|
||||||
|
private String encoding;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 迁移sql脚本文件存放路径,官方默认db/migration
|
||||||
|
*/
|
||||||
|
@Value("${spring.flyway.locations:}")
|
||||||
|
private String locations;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 迁移sql脚本文件名称的前缀,默认V
|
||||||
|
*/
|
||||||
|
@Value("${spring.flyway.sql-migration-prefix:V}")
|
||||||
|
private String sqlMigrationPrefix;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 迁移sql脚本文件名称的分隔符,默认2个下划线__
|
||||||
|
*/
|
||||||
|
@Value("${spring.flyway.sql-migration-separator:__}")
|
||||||
|
private String sqlMigrationSeparator;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文本前缀
|
||||||
|
*/
|
||||||
|
@Value("${spring.flyway.placeholder-prefix:#(}")
|
||||||
|
private String placeholderPrefix;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文本后缀
|
||||||
|
*/
|
||||||
|
@Value("${spring.flyway.placeholder-suffix:)}")
|
||||||
|
private String placeholderSuffix;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 迁移sql脚本文件名称的后缀
|
||||||
|
*/
|
||||||
|
@Value("${spring.flyway.sql-migration-suffixes:.sql}")
|
||||||
|
private String sqlMigrationSuffixes;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 迁移时是否进行校验,默认true
|
||||||
|
*/
|
||||||
|
@Value("${spring.flyway.validate-on-migrate:true}")
|
||||||
|
private Boolean validateOnMigrate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 当迁移发现数据库非空且存在没有元数据的表时,自动执行基准迁移,新建schema_version表
|
||||||
|
*/
|
||||||
|
@Value("${spring.flyway.baseline-on-migrate:true}")
|
||||||
|
private Boolean baselineOnMigrate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否关闭要清除已有库下的表功能,生产环境必须为true,否则会删库,非常重要!!!
|
||||||
|
*/
|
||||||
|
@Value("${spring.flyway.clean-disabled:true}")
|
||||||
|
private Boolean cleanDisabled;
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public void migrate() {
|
||||||
|
if(!enabled){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
DynamicRoutingDataSource ds = (DynamicRoutingDataSource) dataSource;
|
||||||
|
Map<String, DataSource> dataSources = ds.getDataSources();
|
||||||
|
dataSources.forEach((k, v) -> {
|
||||||
|
if("master".equals(k)){
|
||||||
|
String databaseType = environment.getProperty("spring.datasource.dynamic.datasource." + k + ".url");
|
||||||
|
if (databaseType != null && databaseType.contains("mysql")) {
|
||||||
|
try {
|
||||||
|
Flyway flyway = Flyway.configure()
|
||||||
|
.dataSource(v)
|
||||||
|
.locations(locations)
|
||||||
|
.encoding(encoding)
|
||||||
|
.sqlMigrationPrefix(sqlMigrationPrefix)
|
||||||
|
.sqlMigrationSeparator(sqlMigrationSeparator)
|
||||||
|
.placeholderPrefix(placeholderPrefix)
|
||||||
|
.placeholderSuffix(placeholderSuffix)
|
||||||
|
.sqlMigrationSuffixes(sqlMigrationSuffixes)
|
||||||
|
.validateOnMigrate(validateOnMigrate)
|
||||||
|
.baselineOnMigrate(baselineOnMigrate)
|
||||||
|
.cleanDisabled(cleanDisabled)
|
||||||
|
.load();
|
||||||
|
flyway.migrate();
|
||||||
|
log.info("【升级提示】平台集成了MySQL库的Flyway,数据库版本自动升级! ");
|
||||||
|
} catch (FlywayException e) {
|
||||||
|
log.error("【升级提示】flyway执行sql脚本失败", e);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
log.warn("【升级提示】平台只集成了MySQL库的Flyway,实现了数据库版本自动升级! 其他类型的数据库,您可以考虑手工升级~");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
|
@ -118,7 +118,9 @@ spring:
|
||||||
resource:
|
resource:
|
||||||
static-locations: classpath:/static/,classpath:/public/
|
static-locations: classpath:/static/,classpath:/public/
|
||||||
autoconfigure:
|
autoconfigure:
|
||||||
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
|
exclude:
|
||||||
|
- com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
|
||||||
|
- org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration
|
||||||
datasource:
|
datasource:
|
||||||
druid:
|
druid:
|
||||||
stat-view-servlet:
|
stat-view-servlet:
|
||||||
|
@ -261,7 +263,7 @@ jeecg:
|
||||||
password:
|
password:
|
||||||
type: STANDALONE
|
type: STANDALONE
|
||||||
enabled: true
|
enabled: true
|
||||||
# ChartGPT对接配置
|
# ai-chat
|
||||||
ai-chat:
|
ai-chat:
|
||||||
# 是否开启;必须。
|
# 是否开启;必须。
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
|
@ -118,7 +118,9 @@ spring:
|
||||||
resource:
|
resource:
|
||||||
static-locations: classpath:/static/,classpath:/public/
|
static-locations: classpath:/static/,classpath:/public/
|
||||||
autoconfigure:
|
autoconfigure:
|
||||||
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
|
exclude:
|
||||||
|
- com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
|
||||||
|
- org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration
|
||||||
datasource:
|
datasource:
|
||||||
druid:
|
druid:
|
||||||
stat-view-servlet:
|
stat-view-servlet:
|
||||||
|
|
|
@ -118,7 +118,9 @@ spring:
|
||||||
resource:
|
resource:
|
||||||
static-locations: classpath:/static/,classpath:/public/
|
static-locations: classpath:/static/,classpath:/public/
|
||||||
autoconfigure:
|
autoconfigure:
|
||||||
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
|
exclude:
|
||||||
|
- com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
|
||||||
|
- org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration
|
||||||
datasource:
|
datasource:
|
||||||
druid:
|
druid:
|
||||||
stat-view-servlet:
|
stat-view-servlet:
|
||||||
|
|
|
@ -73,9 +73,14 @@
|
||||||
<!-- Swagger API文档 -->
|
<!-- Swagger API文档 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.github.xiaoymin</groupId>
|
<groupId>com.github.xiaoymin</groupId>
|
||||||
<artifactId>knife4j-spring-boot-starter</artifactId>
|
<artifactId>knife4j-openapi2-spring-boot-starter</artifactId>
|
||||||
<version>${knife4j-spring-boot-starter.version}</version>
|
<version>${knife4j-spring-boot-starter.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.commons</groupId>
|
||||||
|
<artifactId>commons-lang3</artifactId>
|
||||||
|
<version>3.12.0</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
|
|
32
pom.xml
32
pom.xml
|
@ -40,8 +40,7 @@
|
||||||
<xxl-job-core.version>2.2.0</xxl-job-core.version>
|
<xxl-job-core.version>2.2.0</xxl-job-core.version>
|
||||||
<fastjson.version>1.2.83</fastjson.version>
|
<fastjson.version>1.2.83</fastjson.version>
|
||||||
<pegdown.version>1.6.0</pegdown.version>
|
<pegdown.version>1.6.0</pegdown.version>
|
||||||
<knife4j-spring-boot-starter.version>3.0.3</knife4j-spring-boot-starter.version>
|
<knife4j-spring-boot-starter.version>4.4.0</knife4j-spring-boot-starter.version>
|
||||||
<knife4j-spring-ui.version>2.0.9</knife4j-spring-ui.version>
|
|
||||||
<!-- 数据库驱动 -->
|
<!-- 数据库驱动 -->
|
||||||
<postgresql.version>42.2.25</postgresql.version>
|
<postgresql.version>42.2.25</postgresql.version>
|
||||||
<ojdbc6.version>11.2.0.3</ojdbc6.version>
|
<ojdbc6.version>11.2.0.3</ojdbc6.version>
|
||||||
|
@ -55,10 +54,11 @@
|
||||||
<mybatis-plus.version>3.5.3.1</mybatis-plus.version>
|
<mybatis-plus.version>3.5.3.1</mybatis-plus.version>
|
||||||
<dynamic-datasource-spring-boot-starter.version>4.1.3</dynamic-datasource-spring-boot-starter.version>
|
<dynamic-datasource-spring-boot-starter.version>4.1.3</dynamic-datasource-spring-boot-starter.version>
|
||||||
<druid.version>1.2.19</druid.version>
|
<druid.version>1.2.19</druid.version>
|
||||||
<minidao.version>1.9.5</minidao.version>
|
<minidao.version>1.9.6</minidao.version>
|
||||||
|
|
||||||
<!-- 积木报表-->
|
<!-- 积木报表-->
|
||||||
<jimureport-spring-boot-starter.version>1.7.2-beta</jimureport-spring-boot-starter.version>
|
<jimureport-spring-boot-starter.version>1.7.2-beta</jimureport-spring-boot-starter.version>
|
||||||
|
<commons-io.version>2.11.0</commons-io.version>
|
||||||
<commons.version>2.6</commons.version>
|
<commons.version>2.6</commons.version>
|
||||||
<aliyun-java-sdk-dysmsapi.version>2.1.0</aliyun-java-sdk-dysmsapi.version>
|
<aliyun-java-sdk-dysmsapi.version>2.1.0</aliyun-java-sdk-dysmsapi.version>
|
||||||
<aliyun.oss.version>3.11.2</aliyun.oss.version>
|
<aliyun.oss.version>3.11.2</aliyun.oss.version>
|
||||||
|
@ -66,10 +66,10 @@
|
||||||
<shiro.version>1.12.0</shiro.version>
|
<shiro.version>1.12.0</shiro.version>
|
||||||
<java-jwt.version>3.11.0</java-jwt.version>
|
<java-jwt.version>3.11.0</java-jwt.version>
|
||||||
<shiro-redis.version>3.2.2</shiro-redis.version>
|
<shiro-redis.version>3.2.2</shiro-redis.version>
|
||||||
<codegenerate.version>1.4.6</codegenerate.version>
|
<codegenerate.version>1.4.7</codegenerate.version>
|
||||||
<autopoi-web.version>1.4.7</autopoi-web.version>
|
<autopoi-web.version>1.4.7</autopoi-web.version>
|
||||||
<minio.version>8.0.3</minio.version>
|
<minio.version>8.0.3</minio.version>
|
||||||
<justauth-spring-boot-starter.version>1.3.4</justauth-spring-boot-starter.version>
|
<justauth-spring-boot-starter.version>1.4.0</justauth-spring-boot-starter.version>
|
||||||
<dom4j.version>1.6.1</dom4j.version>
|
<dom4j.version>1.6.1</dom4j.version>
|
||||||
<qiniu-java-sdk.version>7.4.0</qiniu-java-sdk.version>
|
<qiniu-java-sdk.version>7.4.0</qiniu-java-sdk.version>
|
||||||
<!-- Log4j2爆雷漏洞 -->
|
<!-- Log4j2爆雷漏洞 -->
|
||||||
|
@ -365,6 +365,18 @@
|
||||||
<artifactId>commons-lang</artifactId>
|
<artifactId>commons-lang</artifactId>
|
||||||
<groupId>commons-lang</groupId>
|
<groupId>commons-lang</groupId>
|
||||||
</exclusion>
|
</exclusion>
|
||||||
|
<exclusion>
|
||||||
|
<artifactId>commons-collections</artifactId>
|
||||||
|
<groupId>commons-collections</groupId>
|
||||||
|
</exclusion>
|
||||||
|
<exclusion>
|
||||||
|
<artifactId>commons-logging</artifactId>
|
||||||
|
<groupId>commons-logging</groupId>
|
||||||
|
</exclusion>
|
||||||
|
<exclusion>
|
||||||
|
<artifactId>commons-io</artifactId>
|
||||||
|
<groupId>commons-io</groupId>
|
||||||
|
</exclusion>
|
||||||
</exclusions>
|
</exclusions>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- minidao -->
|
<!-- minidao -->
|
||||||
|
@ -394,7 +406,15 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.jeecgframework.boot</groupId>
|
<groupId>org.jeecgframework.boot</groupId>
|
||||||
<artifactId>jeecg-boot-starter-chatgpt</artifactId>
|
<artifactId>jeecg-boot-starter-chatgpt</artifactId>
|
||||||
<version>${jeecgboot.version}</version>
|
<version>${jeecgboot.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!--flyway 支持 mysql5.7+、MariaDB10.3.16-->
|
||||||
|
<!--mysql5.6,需要把版本号改成5.2.1-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.flywaydb</groupId>
|
||||||
|
<artifactId>flyway-core</artifactId>
|
||||||
|
<version>7.15.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</dependencyManagement>
|
</dependencyManagement>
|
||||||
|
|
Loading…
Reference in New Issue