1
0
mirror of https://gitee.com/incloudcode/yexuejc-springboot.git synced 2025-10-14 22:17:55 +08:00

2.1.3[原功能的最后一个版本]

This commit is contained in:
2023-09-19 11:26:17 +08:00
parent b8cba48792
commit 15498dafcc
18 changed files with 183 additions and 209 deletions

View File

@@ -9,27 +9,19 @@
<parent>
<groupId>com.yexuejc.springboot</groupId>
<artifactId>yexuejc-springboot-parent</artifactId>
<version>2.1.2</version>
<version>2.1.3</version>
<!-- 本地打包:使用相对关联路径 -->
<!--<relativePath>../</relativePath>-->
</parent>
<name>${project.artifactId}</name>
<!--<properties>-->
<!--<main.basedir>${basedir}/..</main.basedir>-->
<!--</properties>-->
<dependencies>
<!--基础包-->
<dependency>
<groupId>top.yexuejc</groupId>
<artifactId>yexuejc-base</artifactId>
</dependency>
<!--<dependency>-->
<!--<groupId>com.github.yexuejc</groupId>-->
<!--<artifactId>yexuejc-base</artifactId>-->
<!--</dependency>-->
<!-- 使用springMVC -->
<dependency>
@@ -65,7 +57,7 @@
<!-- JJWT -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<artifactId>jjwt-api</artifactId>
<optional>true</optional>
</dependency>
<!-- 使用Redis -->

View File

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.yexuejc.base.util.JsonUtil;
import com.yexuejc.springboot.base.mapper.handler.JsonTypeHandler;
import com.yexuejc.springboot.base.security.inte.User;
import java.io.Serializable;
@@ -27,7 +28,7 @@ public class Consumer extends Model<Consumer> implements User {
/**
* 用户id
*/
@TableId(value = "consumer_id", type = IdType.UUID)
@TableId(value = "consumer_id", type = IdType.ASSIGN_UUID)
private String consumerId;
/**
* 手机号
@@ -92,7 +93,7 @@ public class Consumer extends Model<Consumer> implements User {
/**
* 角色、权限
*/
@TableField(value = "roles", el = "roles,typeHandler=com.yexuejc.guansc.core.mybatis.handler.JsonTypeHandler")
@TableField(value = "roles", typeHandler = JsonTypeHandler.class)
private List<String> roles;
/**
* 支付密码
@@ -157,19 +158,16 @@ public class Consumer extends Model<Consumer> implements User {
return this;
}
public Consumer setEnable(boolean enable) {
this.enable = enable;
return this;
}
public Consumer setNonExpire(boolean nonExpire) {
this.nonExpire = nonExpire;
return this;
}
public Consumer setNonLock(boolean nonLock) {
this.nonLock = nonLock;
return this;
@@ -276,7 +274,7 @@ public class Consumer extends Model<Consumer> implements User {
}
@Override
protected Serializable pkVal() {
public Serializable pkVal() {
return this.consumerId;
}
}

View File

@@ -7,11 +7,9 @@ import com.yexuejc.base.util.JsonUtil;
import com.yexuejc.base.util.StrUtil;
import com.yexuejc.springboot.base.ApplicationRun;
import com.yexuejc.springboot.base.filter.RsaProperties;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.io.IOException;
import java.security.KeyStoreException;
@@ -19,14 +17,12 @@ import java.security.NoSuchAlgorithmException;
import java.security.UnrecoverableKeyException;
import java.security.cert.CertificateException;
import java.security.spec.InvalidKeySpecException;
import java.util.Base64;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ApplicationRun.class)
public class ApplicationTest {
@Autowired
@@ -76,10 +72,8 @@ public class ApplicationTest {
// String strData = "HgTMgxEEFSr6zRLvZQ3U5CAKjJqwKf0lfruZTi32iWObkbJA5mHuOTKU4rXYkej4UsPfArYUA45GfxatwFoB4Q";
String strData = "K9Zyg82WDvIApFmXTxPwjQw_VA041jfBcxMIP6jpMM6xWe1XajGf3__7DqSLrS9MwCra9cYkidcjVJAKZn9cmQ";
String mapData = "cEPfMp7-rim76XFdbNDSIzDRXyHySpz0VOZP6HC8U-JPl-ZxNZKp6ethEQWWITcuUPzIhp4fHiGKNsHA7F6OxCxibpMLj5-ZsgJJvcczw8Liens5kYgciRF1UziR3LFy6vybN9H1CJnqXaddbl3t_41P-_1l5Ev7YYa8woWp7ulaRPeTCDjohEpmx2Vi6aPSrm3hjjmitkD9gb0O6vFDNnclyNhFepKV3oh93tNv50sEQQ_QSBUXSHUtCnhTiBX8VsRX3h58F2tie7bG8VSk-6KFuXI07OiqFZSNpcwDOuq-GfMlEfPL3pX-gYhoOORPNClRlQHwyfHXBJly3gRtNVpVksHWQjr1xutWgYfwRjQPHBHNZwfx4E0XoCTuz9qH1CzFmmz68i63GzCM286zJ-J26MkiTDO1zH4jhglo38tnzz9HLeDcbbCuJg1jzkvpFiWamM-6odWhtCg65BS1tJJVWg023kWygZMu5Ebrm5WBbbatN87_K5zn211tFpKwRq2oVjO_AfJRY90WlQGEIHnzZNz_cf8mAjlmilHDuNdjYlj3axTUqLfgLDVaIkasREnjMI7oe8oAtG2ju2aq-xSAQZ_U-7-rsyBpoy0jnwRmlyUxhXgIX0zrfBQNXEjzPtg-iJ14R5qz1iOAJL7NtQQeuYngGTj6msDlKGEd_MQTLAFDbpiVPwWX00jLT1Ll3_zhivpPCUAmC8Yz58khkqrqi4FdIxJTDkxd0PFOBH8DYicF7ls4UdOHT24mAKDwUF_TfZ32oiiKSzCD9MJB8GEXjzx7tDFok-HsdOjI6ZnSUJCOTj3wne2E6_a8Gq2_vp5CWyW12wthJbH79aa7JVfy5cx-cZmNid7oCe54KYclz1tdUgLPCQ1ajsEevbRJ_NBkTmY2wAmUpHODeocDaYt_2AwAU2DLiv2uZuaVszNSUy593Zrzxq5AaY-oWbEeD24SyEWJObJtz5knYzr4NxjZShcjx9ezwiwkRZMtLZpA_cCPFAK1nOrN8zHCOZquS17CCSLDySLvGbxNqYeBa_lGSq8cQuQo8yybd1WkuLKUjUiJecmH2XcZNTPCtdRe0eLlRtk5928AQGsQugwSig";
// String listData = "X65trOhRSpeaN-2qP0zhdYi2jeJDcrTz2JHkc6UFG17xAho-VO0fkD0cA8wxoxcqyTaulOiSzaidZ2VeIvKjuinlKT2r23kdMJxjJodOZojssxgGSxm5gnry2tq5X8dbP7n-jodvAvLE9Gtq7AaBQ36ZQBQ2RcFB3TiHKHGin0gfn6T6A80orYD7i-Bdc0rh_pBEdLwGt1wWY_C8QuxeBmMWh0jmLVfpa3ZZOXVc9I7wIxzc1taQ7f-8Om9SNfXc";
String listData = "Sf_FO8YC9EUNTeM0n9EVuDzwvLz3DcxOuG4-5UZ9486lLHAx7IOuAhPgVHpQGsQiqJ7Y3fTaWFr6rRFPL12rVg";
@@ -107,7 +101,6 @@ public class ApplicationTest {
)
).isEqualTo("f721e7b0d5415302f5fe7dc5beb2938a");
//list
assertThat(
StrUtil.toMD5(
@@ -120,7 +113,6 @@ public class ApplicationTest {
}
/**
* 证书操作
*
@@ -142,15 +134,13 @@ public class ApplicationTest {
// String dataStr = "{\"ret\":\"0\",\"expireTime\":\"2015/10/28 23:59:59\",\"rettxt\":\"OK\",\"token\":\"69296128A59798E2D423D3B1A9F766F4\"}";
String dataStr = "{\"foodsCode\":\"49\",\"latlng\":\"22.5,114.0\",\"pageIndex\":1,\"pageSize\":10}";
/***************************************************************************************************************************************************************************************************************************************/
//客户端公钥加密
// String publicEncryptResult = RSA.publicEncrypt(dataStr, RSA2.getPublicKey(publicKey));
// System.out.println(publicEncryptResult);
// System.out.println(StrUtil.toMD5(dataStr));
String publicEncryptResult="KHAtNzGkT/Mn7d/Ei6aoZ8KCA04mYJi5b/sxt/Jgzq76jNi0O/EMACDsipgQuwZTJrrys5xOPyy4\n1Gf8LMEldZE3GeY3i92A5jnH7IeWnLojYhNaKdIuLuf4l5uJmFgpzxhoxqSkp2JJ5Vbt8j5Hy4ov\n7tfxPDBwnT6FSfDqGLU\u003d\n";
String publicEncryptResult = "KHAtNzGkT/Mn7d/Ei6aoZ8KCA04mYJi5b/sxt/Jgzq76jNi0O/EMACDsipgQuwZTJrrys5xOPyy4\n1Gf8LMEldZE3GeY3i92A5jnH7IeWnLojYhNaKdIuLuf4l5uJmFgpzxhoxqSkp2JJ5Vbt8j5Hy4ov\n7tfxPDBwnT6FSfDqGLU\u003d\n";
//服务器私钥解密
String privateDecryptResult = RSA.privateDecrypt(publicEncryptResult, RSA2.getPrivateKey(privateKey, privateAlias, privatePwd));
@@ -168,9 +158,9 @@ public class ApplicationTest {
}
/**
* key加解密
*
* @throws NoSuchAlgorithmException
* @throws InvalidKeySpecException
*/
@@ -179,7 +169,6 @@ public class ApplicationTest {
String publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCX9uSsfJeIDIPzxCtwwFh5vrIKar69i3DPUTDEiKPRdtmADa8Ls6KAsPVpzgtQYoYVpYBoMbBtp0cGRoQULO83NWIAhmsU2cvd0nmGlB2xPRz+uGYW1rsYyCM8RSvfAwCVNsJD10A9voLhRQuYHPIDmay1sBA/casvEvYwMqDZtQIDAQAB";
System.out.println(publicKey.length());
// String privateKey = "MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAiSo5blJ9-QJ0_QElcy5AaRTq-3oO4lJ8PvIOIt-Xr5SUFODVj3DUbiy6_0bxQYO3NiYHlXPb37UVV3jjlXJsXwIDAQABAkBE0WOJH2hGs93gRl_0vwLf9ffDfkTTdlER_73p70aad3QZRslEkinQH7G5aE_DgBm5m72TCeH-PD2FZ2lwtavBAiEAvnRown5Lpqbl0tN_OUxr_e1u9d_-8dNL_JEETO7BZCECIQC4XtY-18j0bVVLxaXPjKQ00D59yntwObihDNyRK0nAfwIgHPHEGgrnpGQo-Wl7JFIg925mNqfcLxRVsAS6CpcefQECIQCUsLdsmy6QIhTmNRJSXoSXq1KatE_05DhIekzwLs8eFQIgfMawMiu52ZxBI5_pZ7ancQZ6Dsxl45utFqJShzV1pio";
//// String publicKey = "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIkqOW5SffkCdP0BJXMuQGkU6vt6DuJSfD7yDiLfl6-UlBTg1Y9w1G4suv9G8UGDtzYmB5Vz29-1FVd445VybF8CAwEAAQ";
// String publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCX9uSsfJeIDIPzxCtwwFh5vrIKar69i3DPUTDEiKPRdtmADa8Ls6KAsPVpzgtQYoYVpYBoMbBtp0cGRoQULO83NWIAhmsU2cvd0nmGlB2xPRz+uGYW1rsYyCM8RSvfAwCVNsJD10A9voLhRQuYHPIDmay1sBA/casvEvYwMqDZtQIDAQAB";

View File

@@ -1,7 +1,5 @@
package com.yexuejc.springboot.base.test;
import sun.misc.BASE64Encoder;
import java.io.*;
import java.security.KeyStore;
import java.security.PrivateKey;
@@ -9,8 +7,11 @@ import java.security.PublicKey;
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
import java.security.cert.CertificateFactory;
import java.util.Base64;
/**
* 生成公钥工具; http://bijian1013.iteye.com/blog/2339874
*
* @ClassName: KeyStoreHelper
* @Description:
* @author: maxf
@@ -33,7 +34,7 @@ public class KeyStoreHelper {
byte[] publicKeyBytes = publicKey.getEncoded();
// byte[] privateKeyBytes = privateKey.getEncoded();
String publicKeyBase64 = new BASE64Encoder().encode(publicKeyBytes);
String publicKeyBase64 = Base64.getEncoder().encodeToString(publicKeyBytes);
// String privateKeyBase64 = new BASE64Encoder().encode(privateKeyBytes);
System.out.println("publicKeyBase64.length():" + publicKeyBase64.length());

View File

@@ -4,11 +4,9 @@ import com.aliyun.mns.model.Message;
import com.yexuejc.base.util.JsonUtil;
import com.yexuejc.base.util.StrUtil;
import com.yexuejc.springboot.base.autoconfigure.MnsFacade;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.HashMap;
import java.util.Map;
@@ -20,7 +18,6 @@ import java.util.Map;
* @Description
* @date 2018/11/1 14:25
*/
@RunWith(SpringRunner.class)
@SpringBootTest
public class MnsTest {

View File

@@ -6,11 +6,9 @@ import com.yexuejc.base.util.StrUtil;
import com.yexuejc.springboot.base.autoconfigure.OssFacade;
import com.yexuejc.springboot.base.exception.ImageException;
import com.yexuejc.springboot.base.util.LogUtil;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.io.ByteArrayInputStream;
import java.io.IOException;
@@ -23,7 +21,6 @@ import java.io.InputStream;
* @Description
* @date 2018/11/1 14:58
*/
@RunWith(SpringRunner.class)
@SpringBootTest
public class OssTest {
@Autowired
@@ -32,11 +29,11 @@ public class OssTest {
/**
* 上传图片到oss
* <p>
* 这里是模拟微信登录时获取到微信头像地址缓存到base64然后上传到OSS
* 这里是模拟微信登录时获取到微信头像地址缓存到base64然后上传到OSS
* </p>
*/
@Test
public void put(){
public void put() {
putOss4Head(null, "https://avatar.csdn.net/7/8/1/3_wulex.jpg");
}

View File

@@ -3,8 +3,7 @@ package com.yexuejc.springboot.base.test;
import com.yexuejc.base.util.JsonUtil;
import com.yexuejc.base.util.StrUtil;
import com.yexuejc.springboot.base.autoconfigure.MutiRedisAutoConfiguration;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.test.context.SpringBootTest;
@@ -24,7 +23,6 @@ import java.util.concurrent.TimeUnit;
* @Description
* @date 2018/11/1 11:16
*/
@RunWith(SpringRunner.class)
@SpringBootTest
public class RedisTest {
/**

View File

@@ -7,21 +7,21 @@ logging.path=/logs/yexuejc-springboot-parent
#========================================================================================================================
#========================================================================================================================
#核心
#开启功能 redis webmvc
#\u6838\u5FC3
#\u5F00\u542F\u529F\u80FD redis webmvc
yexuejc.autoconfigure.redis.enable=true
#webmvc 包含以下功能
#webmvc \u5305\u542B\u4EE5\u4E0B\u529F\u80FD
yexuejc.autoconfigure.webmvc.enable=true
#全局异常处理
#\u5168\u5C40\u5F02\u5E38\u5904\u7406
yexuejc.ssl-ignore.enable=true
#开启HTTPSSSL请求证书验证忽略
#\u5F00\u542FHTTPS\uFF08SSL\uFF09\u8BF7\u6C42\u8BC1\u4E66\u9A8C\u8BC1\u5FFD\u7565
yexuejc.global.exception.enable=true
#开启校验过滤器目前校验HTTP Header是否符合规范
#\u5F00\u542F\u6821\u9A8C\u8FC7\u6EE4\u5668\uFF0C\u76EE\u524D\u6821\u9A8CHTTP Header\u662F\u5426\u7B26\u5408\u89C4\u8303
yexuejc.web.validation-filter.enable=true
# 拦截类型请求路径0忽略模式默认拦截全部1拦截模式默认一个都不拦截
# \u62E6\u622A\u7C7B\u578B\uFF08\u8BF7\u6C42\u8DEF\u5F84\uFF09\uFF1A0\u5FFD\u7565\u6A21\u5F0F\uFF0C\u9ED8\u8BA4\u62E6\u622A\u5168\u90E8\uFF1B1\u62E6\u622A\u6A21\u5F0F\uFF0C\u9ED8\u8BA4\u4E00\u4E2A\u90FD\u4E0D\u62E6\u622A
#yexuejc.http.filter=0
yexuejc.http.filter.type=1
#忽略路径:示例放开swagger
#\u5FFD\u7565\u8DEF\u5F84\uFF1A\u793A\u4F8B\u653E\u5F00swagger
#yexuejc.http.filter.ignored=/,/swagger/**,/error,/v2/api-docs,/webjars/**
#========================================================================================================================
#========================================================================================================================
@@ -29,22 +29,22 @@ yexuejc.http.filter.type=1
yexuejc.http.encrypt.encrypt=true
yexuejc.http.encrypt.decrypt=true
#配置密钥方式
#\u914D\u7F6E\u5BC6\u94A5\u65B9\u5F0F
#yexuejc.http.encrypt.private-key=MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAiSo5blJ9-QJ0_QElcy5AaRTq-3oO4lJ8PvIOIt-Xr5SUFODVj3DUbiy6_0bxQYO3NiYHlXPb37UVV3jjlXJsXwIDAQABAkBE0WOJH2hGs93gRl_0vwLf9ffDfkTTdlER_73p70aad3QZRslEkinQH7G5aE_DgBm5m72TCeH-PD2FZ2lwtavBAiEAvnRown5Lpqbl0tN_OUxr_e1u9d_-8dNL_JEETO7BZCECIQC4XtY-18j0bVVLxaXPjKQ00D59yntwObihDNyRK0nAfwIgHPHEGgrnpGQo-Wl7JFIg925mNqfcLxRVsAS6CpcefQECIQCUsLdsmy6QIhTmNRJSXoSXq1KatE_05DhIekzwLs8eFQIgfMawMiu52ZxBI5_pZ7ancQZ6Dsxl45utFqJShzV1pio
#yexuejc.http.encrypt.public-key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIkqOW5SffkCdP0BJXMuQGkU6vt6DuJSfD7yDiLfl6-UlBTg1Y9w1G4suv9G8UGDtzYmB5Vz29-1FVd445VybF8CAwEAAQ
#配置证书方式
#\u914D\u7F6E\u8BC1\u4E66\u65B9\u5F0F
yexuejc.http.encrypt.private-key-path=/lgfishing.keystore
yexuejc.http.encrypt.private-alias=lgfishing
yexuejc.http.encrypt.private-pwd=lgfishing2018
#编码
#\u7F16\u7801
spring.http.encoding.force=true
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
server.tomcat.uri-encoding=UTF-8
#是否开启HTTPSSSL请求证书验证忽略默认false
#\u662F\u5426\u5F00\u542FHTTPS\uFF08SSL\uFF09\u8BF7\u6C42\u8BC1\u4E66\u9A8C\u8BC1\u5FFD\u7565\uFF1A\u9ED8\u8BA4false
yexuejc.enable.ssl-ignore=true
@@ -66,16 +66,16 @@ yexuejc.alibaba.oss.bucket=guansichou
#========================================================================================================================
# security相关
# security\u76F8\u5173
#reids
#开启指定redis库db0默认开启
#\u5F00\u542F\u6307\u5B9Aredis\u5E93db0\u9ED8\u8BA4\u5F00\u542F
yexuejc.redis.db1=true
spring.redis.jedis.pool.max-active=100
spring.redis.jedis.pool.max-idle=10
spring.redis.jedis.pool.min-idle=3
spring.redis.host=121.42.165.89
spring.redis.password=
spring.redis.port=16379
spring.redis.host=192.168.0.107
spring.redis.password=yexuejc2022
spring.redis.port=6379
#db
@@ -93,19 +93,19 @@ spring.datasource.data=classpath:db/data.sql
#========================================================================================================================
#mybatis-plus
mybatis-plus.mapper-locations=classpath*:mapper/*.xml
#实体扫描多个package用逗号或者分号分隔
#\u5B9E\u4F53\u626B\u63CF\uFF0C\u591A\u4E2Apackage\u7528\u9017\u53F7\u6216\u8005\u5206\u53F7\u5206\u9694
mybatis-plus.type-aliases-package=com.yexuejc.springboot.base.security.domain
#主键类型0:"数据库ID自增", 1:"用户输入ID",2:"该类型为未设置主键类型", 3:"全局唯一ID UUID",4:全局唯一ID (UUID),5:字符串全局唯一ID (idWorker 的字符串表示);
#\u4E3B\u952E\u7C7B\u578B0:"\u6570\u636E\u5E93ID\u81EA\u589E", 1:"\u7528\u6237\u8F93\u5165ID",2:"\u8BE5\u7C7B\u578B\u4E3A\u672A\u8BBE\u7F6E\u4E3B\u952E\u7C7B\u578B", 3:"\u5168\u5C40\u552F\u4E00ID UUID",4:\u5168\u5C40\u552F\u4E00ID (UUID),5:\u5B57\u7B26\u4E32\u5168\u5C40\u552F\u4E00ID (idWorker \u7684\u5B57\u7B26\u4E32\u8868\u793A);
mybatis-plus.global-config.db-config.id-type=uuid
mybatis-plus.global-config.db-config.db-type=POSTGRE_SQL
#字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
#\u5B57\u6BB5\u7B56\u7565 0:"\u5FFD\u7565\u5224\u65AD",1:"\u975E NULL \u5224\u65AD"),2:"\u975E\u7A7A\u5224\u65AD"
mybatis-plus.global-config.db-config.field-strategy=not_empty
#驼峰下划线转换
#\u9A7C\u5CF0\u4E0B\u5212\u7EBF\u8F6C\u6362
mybatis-plus.global-config.db-config.column-underline=true
#逻辑删除配置下面3个配置
#\u903B\u8F91\u5220\u9664\u914D\u7F6E\uFF08\u4E0B\u97623\u4E2A\u914D\u7F6E\uFF09
mybatis-plus.global-config.db-config.logic-delete-value=true
mybatis-plus.global-config.db-config.logic-not-delete-value=false
#配置返回数据库(column下划线命名&&返回java实体是驼峰命名)自动匹配无需as没开启这个SQL需要写as select user_id as userId
#\u914D\u7F6E\u8FD4\u56DE\u6570\u636E\u5E93(column\u4E0B\u5212\u7EBF\u547D\u540D&&\u8FD4\u56DEjava\u5B9E\u4F53\u662F\u9A7C\u5CF0\u547D\u540D)\uFF0C\u81EA\u52A8\u5339\u914D\u65E0\u9700as\uFF08\u6CA1\u5F00\u542F\u8FD9\u4E2A\uFF0CSQL\u9700\u8981\u5199as\uFF1A select user_id as userId\uFF09
mybatis-plus.configuration.map-underscore-to-camel-case=true
mybatis-plus.configuration.cache-enabled=false
#========================================================================================================================