疯狂的狮子Li
2023-06-15 9bc1e4ac1e140e4bc68d33d3774489c029cc26a3
update 重构 将系统内置配置放置到common包内独立加载 不允许用户随意修改
已添加3个文件
已修改3个文件
122 ■■■■■ 文件已修改
ruoyi-admin/src/main/resources/application.yml 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/factory/YmlPropertySourceFactory.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/config/MybatisPlusConfig.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-mybatis/src/main/resources/common-mybatis.yml 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/config/SaTokenConfig.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-satoken/src/main/resources/common-satoken.yml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application.yml
@@ -96,20 +96,14 @@
sa-token:
  # token名称 (同时也是cookie名称)
  token-name: Authorization
  # token有效期 è®¾ä¸ºä¸€å¤© (必定过期) å•位: ç§’
  timeout: 86400
  # token临时有效期 (指定时间无操作就过期) å•位: ç§’
  # token固定超时 è®¾ä¸ºä¸ƒå¤© (必定过期) å•位: ç§’
  timeout: 604800
  # token活跃超时时间 30分钟(指定时间无操作则过期) å•位: ç§’
  activity-timeout: 1800
  # æ˜¯å¦å…è®¸åŒä¸€è´¦å·å¹¶å‘登录 (为true时允许一起登录, ä¸ºfalse时新登录挤掉旧登录)
  is-concurrent: true
  # åœ¨å¤šäººç™»å½•同一账号时,是否共用一个token (为true时所有登录共用一个token, ä¸ºfalse时每次登录新建一个token)
  is-share: false
  # æ˜¯å¦å°è¯•从header里读取token
  is-read-header: true
  # æ˜¯å¦å°è¯•从cookie里读取token
  is-read-cookie: false
  # token前缀
  token-prefix: "Bearer"
  # jwt秘钥
  jwt-secret-key: abcdefghijklmnopqrstuvwxyz
@@ -156,39 +150,12 @@
  mapperLocations: classpath*:mapper/**/*Mapper.xml
  # å®žä½“扫描,多个package用逗号或者分号分隔
  typeAliasesPackage: org.dromara.**.domain
  # å¯åŠ¨æ—¶æ˜¯å¦æ£€æŸ¥ MyBatis XML æ–‡ä»¶çš„存在,默认不检查
  checkConfigLocation: false
  configuration:
    # è‡ªåŠ¨é©¼å³°å‘½åè§„åˆ™ï¼ˆcamel case)映射
    mapUnderscoreToCamelCase: true
    # MyBatis è‡ªåŠ¨æ˜ å°„ç­–ç•¥
    # NONE:不启用 PARTIAL:只对非嵌套 resultMap è‡ªåŠ¨æ˜ å°„ FULL:对所有 resultMap è‡ªåŠ¨æ˜ å°„
    autoMappingBehavior: FULL
    # MyBatis è‡ªåŠ¨æ˜ å°„æ—¶æœªçŸ¥åˆ—æˆ–æœªçŸ¥å±žæ€§å¤„ç†ç­–
    # NONE:不做处理 WARNING:打印相关警告 FAILING:抛出异常和详细信息
    autoMappingUnknownColumnBehavior: NONE
    # æ›´è¯¦ç»†çš„æ—¥å¿—输出 ä¼šæœ‰æ€§èƒ½æŸè€— org.apache.ibatis.logging.stdout.StdOutImpl
    # å…³é—­æ—¥å¿—记录 (可单纯使用 p6spy åˆ†æž) org.apache.ibatis.logging.nologging.NoLoggingImpl
    # é»˜è®¤æ—¥å¿—输出 org.apache.ibatis.logging.slf4j.Slf4jImpl
    logImpl: org.apache.ibatis.logging.nologging.NoLoggingImpl
  global-config:
    # æ˜¯å¦æ‰“印 Logo banner
    banner: true
    dbConfig:
      # ä¸»é”®ç±»åž‹
      # AUTO è‡ªå¢ž NONE ç©º INPUT ç”¨æˆ·è¾“å…¥ ASSIGN_ID é›ªèб ASSIGN_UUID å”¯ä¸€ UUID
      # å¦‚需改为自增 éœ€è¦å°†æ•°æ®åº“表全部设置为自增
      idType: ASSIGN_ID
      # é€»è¾‘已删除值
      logicDeleteValue: 2
      # é€»è¾‘未删除值
      logicNotDeleteValue: 0
      # å­—段验证策略之 insert,在 insert çš„æ—¶å€™çš„字段验证策略
      # IGNORED å¿½ç•¥ NOT_NULL éžNULL NOT_EMPTY éžç©º DEFAULT é»˜è®¤ NEVER ä¸åŠ å…¥ SQL
      insertStrategy: NOT_NULL
      # å­—段验证策略之 update,在 update çš„æ—¶å€™çš„字段验证策略
      updateStrategy: NOT_NULL
      # å­—段验证策略之 select,在 select çš„æ—¶å€™çš„字段验证策略既 wrapper æ ¹æ®å†…部 entity ç”Ÿæˆçš„ where æ¡ä»¶
      where-strategy: NOT_NULL
# æ•°æ®åР坆
mybatis-encryptor:
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/factory/YmlPropertySourceFactory.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
package org.dromara.common.core.factory;
import org.dromara.common.core.utils.StringUtils;
import org.springframework.beans.factory.config.YamlPropertiesFactoryBean;
import org.springframework.core.env.PropertiesPropertySource;
import org.springframework.core.env.PropertySource;
import org.springframework.core.io.support.DefaultPropertySourceFactory;
import org.springframework.core.io.support.EncodedResource;
import java.io.IOException;
/**
 * yml é…ç½®æºå·¥åŽ‚
 *
 * @author Lion Li
 */
public class YmlPropertySourceFactory extends DefaultPropertySourceFactory {
    @Override
    public PropertySource<?> createPropertySource(String name, EncodedResource resource) throws IOException {
        String sourceName = resource.getResource().getFilename();
        if (StringUtils.isNotBlank(sourceName) && StringUtils.endsWithAny(sourceName, ".yml", ".yaml")) {
            YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean();
            factory.setResources(resource.getResource());
            factory.afterPropertiesSet();
            return new PropertiesPropertySource(sourceName, factory.getObject());
        }
        return super.createPropertySource(name, resource);
    }
}
ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/config/MybatisPlusConfig.java
@@ -7,11 +7,13 @@
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.dromara.common.core.factory.YmlPropertySourceFactory;
import org.dromara.common.mybatis.handler.InjectionMetaObjectHandler;
import org.dromara.common.mybatis.interceptor.PlusDataPermissionInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.PropertySource;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
@@ -22,6 +24,7 @@
@EnableTransactionManagement(proxyTargetClass = true)
@AutoConfiguration
@MapperScan("${mybatis-plus.mapperPackage}")
@PropertySource(value = "classpath:common-mybatis.yml", factory = YmlPropertySourceFactory.class)
public class MybatisPlusConfig {
    @Bean
ruoyi-common/ruoyi-common-mybatis/src/main/resources/common-mybatis.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
# å†…置配置 ä¸å…è®¸ä¿®æ”¹ å¦‚需修改请在 nacos ä¸Šå†™ç›¸åŒé…ç½®è¦†ç›–
# MyBatisPlus配置
# https://baomidou.com/config/
mybatis-plus:
  # å¯åŠ¨æ—¶æ˜¯å¦æ£€æŸ¥ MyBatis XML æ–‡ä»¶çš„存在,默认不检查
  checkConfigLocation: false
  configuration:
    # è‡ªåŠ¨é©¼å³°å‘½åè§„åˆ™ï¼ˆcamel case)映射
    mapUnderscoreToCamelCase: true
    # MyBatis è‡ªåŠ¨æ˜ å°„ç­–ç•¥
    # NONE:不启用 PARTIAL:只对非嵌套 resultMap è‡ªåŠ¨æ˜ å°„ FULL:对所有 resultMap è‡ªåŠ¨æ˜ å°„
    autoMappingBehavior: FULL
    # MyBatis è‡ªåŠ¨æ˜ å°„æ—¶æœªçŸ¥åˆ—æˆ–æœªçŸ¥å±žæ€§å¤„ç†ç­–
    # NONE:不做处理 WARNING:打印相关警告 FAILING:抛出异常和详细信息
    autoMappingUnknownColumnBehavior: NONE
    # æ›´è¯¦ç»†çš„æ—¥å¿—输出 ä¼šæœ‰æ€§èƒ½æŸè€— org.apache.ibatis.logging.stdout.StdOutImpl
    # å…³é—­æ—¥å¿—记录 (可单纯使用 p6spy åˆ†æž) org.apache.ibatis.logging.nologging.NoLoggingImpl
    # é»˜è®¤æ—¥å¿—输出 org.apache.ibatis.logging.slf4j.Slf4jImpl
    logImpl: org.apache.ibatis.logging.nologging.NoLoggingImpl
  global-config:
    # æ˜¯å¦æ‰“印 Logo banner
    banner: true
    dbConfig:
      # ä¸»é”®ç±»åž‹
      # AUTO è‡ªå¢ž NONE ç©º INPUT ç”¨æˆ·è¾“å…¥ ASSIGN_ID é›ªèб ASSIGN_UUID å”¯ä¸€ UUID
      idType: ASSIGN_ID
      # é€»è¾‘已删除值(框架表均使用此值 ç¦æ­¢éšæ„ä¿®æ”¹)
      logicDeleteValue: 2
      # é€»è¾‘未删除值
      logicNotDeleteValue: 0
      insertStrategy: NOT_NULL
      updateStrategy: NOT_NULL
      whereStrategy: NOT_NULL
ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/config/SaTokenConfig.java
@@ -4,10 +4,12 @@
import cn.dev33.satoken.jwt.StpLogicJwtForSimple;
import cn.dev33.satoken.stp.StpInterface;
import cn.dev33.satoken.stp.StpLogic;
import org.dromara.common.core.factory.YmlPropertySourceFactory;
import org.dromara.common.satoken.core.dao.PlusSaTokenDao;
import org.dromara.common.satoken.core.service.SaPermissionImpl;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.PropertySource;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
@@ -16,6 +18,7 @@
 * @author Lion Li
 */
@AutoConfiguration
@PropertySource(value = "classpath:common-satoken.yml", factory = YmlPropertySourceFactory.class)
public class SaTokenConfig implements WebMvcConfigurer {
    @Bean
ruoyi-common/ruoyi-common-satoken/src/main/resources/common-satoken.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
# å†…置配置 ä¸å…è®¸ä¿®æ”¹ å¦‚需修改请在 nacos ä¸Šå†™ç›¸åŒé…ç½®è¦†ç›–
# Sa-Token配置
sa-token:
  # å…è®¸ä»Ž è¯·æ±‚参数 è¯»å– token
  is-read-body: true
  # å…è®¸ä»Ž header è¯»å– token
  is-read-header: true
  # å…³é—­ cookie é‰´æƒ ä»Žæ ¹æºæœç» csrf æ¼æ´žé£Žé™©
  is-read-cookie: false
  # token前缀
  token-prefix: "Bearer"