当前位置: 首页 > article >正文

若依前后端分离版配置流程

1.前言

若依框架更新速度很快,新版功能更加完善。我们如果一直用老版本代码,会失去很多功能。但是,我们每次更新版本,配置会很麻烦。本文会详细介绍,如何将快速配置若依前后端分离版。有些内容我已经完成,不会重复介绍,但是我会标明文章链接。本文是完全免费的,如果大家不想浪费时间配置,可以直接下载配置好的资源《若依前后端分离版3.8.9配置资源》。

2.启动配置

关于启动配置,可以查看我的文章《从零开始学若依框架-下载和环境初始化》,里面介绍的非常详细了。如果你使用的脚手架版本过高,导致前端启动失败。可以在package.json文件中,将scripts前三项加上以下代码,并保存。如果没法判断是否需要加,等启动报错时再加即可。

SET NODE_OPTIONS=--openssl-legacy-provider && 

3.日志配置

控制输入日志没有颜色,看起来很不舒服。如果也想让控制台输出日志时带颜色,可以打开ruoyi-admin/src/main/resources/logback.xml,将日志输出格式用以下代码替换。

    <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %green(%5p) %magenta(${PID}) --- [%15.15t] %cyan(%40.440logger) : %msg%n" />

4.集成Mybatis-Plus和代码生成器

如果想使用Myabtis-Plus,并且构建Mybatis-Plus代码生成器,可以查看我的文章《若依前后端分离版创建Mybatis-Plus代码生成器》。

5.基础配置

1.Redis配置

1.本地同时运行多个若依系统后端是没有问题的,但是在一个服务器上同时运行多个若依后端会报错,出现这个原因是多个后端同时用一个Redis配置导致的。为了避免上面问题出现,在Redis保存时,加上项目名称作为前缀,用于区分不同的项目。在com.ruoyi.framework.config.properties包下新增RedisProperties类,同时用以下代码替换。

package com.ruoyi.framework.config.properties;


import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.SerializationException;
import org.springframework.stereotype.Component;

import java.nio.charset.Charset;

@Component
public class RedisProperties implements RedisSerializer<String> {

    @Autowired
    private RuoYiConfig config;

    private final Charset charset;

    public RedisProperties()
    {
        this(Charset.forName("UTF8"));
    }

    public RedisProperties(Charset charset)
    {
        this.charset = charset;
    }

    @Override
    public byte[] serialize(String string) throws SerializationException
    {
        // 通过项目名称ruoyi.name来定义Redis前缀,用于区分项目缓存
        if (StringUtils.isNotEmpty(config.getName()))
        {
            return new StringBuilder(config.getName()).append(":").append(string).toString().getBytes(charset);
        }
        return string.getBytes(charset);
    }

    @Override
    public String deserialize(byte[] bytes) throws SerializationException
    {
        return (bytes == null ? null : new String(bytes, charset));
    }
}

2.打开com.ruoyi.framework.config.RedisConfig类,用以下代码替换。

package com.ruoyi.framework.config;

import com.ruoyi.framework.config.properties.RedisProperties;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.script.DefaultRedisScript;
import org.springframework.data.redis.serializer.StringRedisSerializer;

/**
 * redis配置
 * 
 * @author ruoyi
 */
@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport
{
    @Bean
    @SuppressWarnings(value = { "unchecked", "rawtypes" })
    public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory, RedisProperties redisProperties)
    {
        RedisTemplate<Object, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(connectionFactory);

        FastJson2JsonRedisSerializer serializer = new FastJson2JsonRedisSerializer(Object.class);

        // 使用StringRedisSerializer来序列化和反序列化redis的key值
        //        template.setKeySerializer(new StringRedisSerializer());
        template.setKeySerializer(redisProperties);
        template.setValueSerializer(serializer);

        // Hash的key也采用StringRedisSerializer的序列化方式
        //        template.setHashKeySerializer(new StringRedisSerializer());
        template.setHashKeySerializer(serializer);
        template.setHashValueSerializer(serializer);

        template.afterPropertiesSet();
        return template;
    }

    @Bean
    public DefaultRedisScript<Long> limitScript()
    {
        DefaultRedisScript<Long> redisScript = new DefaultRedisScript<>();
        redisScript.setScriptText(limitScriptText());
        redisScript.setResultType(Long.class);
        return redisScript;
    }

    /**
     * 限流脚本
     */
    private String limitScriptText()
    {
        return "local key = KEYS[1]\n" +
        "local count = tonumber(ARGV[1])\n" +
        "local time = tonumber(ARGV[2])\n" +
        "local current = redis.call('get', key);\n" +
        "if current and tonumber(current) > count then\n" +
        "    return tonumber(current);\n" +
        "end\n" +
        "current = redis.call('incr', key)\n" +
        "if tonumber(current) == 1 then\n" +
        "    redis.call('expire', key, time)\n" +
        "end\n" +
        "return tonumber(current);";
    }
}

2.参数配置

1.由于上面区分不同项目Redis使用了项目名称作为前缀,需要根据实际情况修改项目名称(ruoyi.name)。如果不想使用默认文件上传地址,也可以修改文件上传地址(ruoyi.profile)。这两个配置均在ruoyi-admin/src/main/resources/application.yml文件中。我这里就先不修改参数配置的内容了,后面我会使用包名修改器根据实际情况进行修改。

2.如果想关闭swagger,可以打开ruoyi-admin/src/main/resources/application.yml文件,将swagger.enabled设置为false。

3.如果对目前日志保存位置不满意,可以打开ruoyi-admin/src/main/resources/logback.xml文件进行修改。

4.除了yml文件可以修改一部分参数外,有很多参数保存在com.ruoyi.common.constant.Constants类中。如果有需要,可以根据实际情况进行修改。

6.前端配置

1.滚动条配置

1.用户管理功能,部门树内容过高,下拉查看时,看不见搜索框,并且出现大量空白页面,使用效果很不好。同时,内容过多也是导致整体页面,滑动滚动条,也是导致整个页面下滑,看不见顶部导航标签。前端打开src\assets\styles\sidebar.scss文件,在.main-container样式中以下代码。

// 新增
overflow: hidden;

2.打开src\views\system\user\index.vue文件,在左侧部门树的el-col加上类py-left-tree。并且在文件最后,加上样式下面设置。

<style lang="css" scoped>
.py-left-tree {
  height: calc(100vh - 84px - 20px * 2);
  overflow: auto;
}
</style>

3.打开src\layout\components\AppMain.vue文件,在.app-main类样式设置中,注释掉overflow: hidden配置,同时新增下面配置。

/* 新增 */
  height: calc(100vh - 50px - 34px);
  overflow: auto;

4.配置好上面样式后,滚动条位置更加合理。

2.网页配置

1.如果想修改网站名称,需要修改多处位置。找到.env.development、.env.production和.env.staging三个文件,分别修改里面的VUE_APP_TITLE的值,修改了不同环境下的网页标题。同时,这个三个文件中的VUE_APP_BASE_API的值,用于访问后端接口的前缀,前端路径包含这个值,就会自动访问后端接口。前端路径配置时,应避开这个值,同时这个值在项目部署到服务器时会用到。如果想修改这个值,应保证项目配置和服务器配置同步。

2.修改配置文件中的name后面的名称,这个一般不生效。只有当上面配置文件中VUE_APP_TITLE的值为空时,才生效。

3.新版若依框架,侧边栏的系统名称是从配置文件中读取,如果上面几步名称配置好了,就不用修改了。但是,老版若依框架,系统名称是自己填写的,需要打开src\layout\components\Sidebar\Logo.vue文件,将title修改成需要的网站名称。

4.我不喜欢在侧边栏显示网站名称和网站图标,因为网站名称过长时,并不是十分好看。如果也想和我一样让侧边栏只显示菜单项,可以进行此序号的配置。打开src\layout\components\Sidebar\index.vue文件,将logo显示注释掉。

5.如果想修改网页图标,打开src\assets\logo文件夹,用新图标文件替换logo.png文件即可。

3.菜单配置

1.文档源码和文档地址菜单功能,在项目使用时不需要,可以注释掉。打开src\layout\components\Navbar.vue文件,将源码地址和文档地址相关代码注释掉。

2.一般布局设置功能,我会也会隐藏。如果也需要隐藏此功能,可以打开src\layout\components\Navbar.vue文件,将布局设置功能相关代码隐藏。

3.若依官网菜单功能,一般不使用,可以删除。同时,系统管理、系统监控和系统工具三个功能,一般给管理员使用,可以将三个功能排序依次设置为97、98和99。由于菜单管理删除功能,先要将菜单停用,然后才能删除,我直接删除了数据库sys_dept表中关于若依官网的数据。由于修改原有数据库的数据,可以将现有数据库导出为sql文件,以后直接使用此sql,我将此文件命名为py.sql。

7.包名修改

如果想修改若依框架的模块名称、包名等若依信息,可以使用我的下载资源《飘逸-若依前后端分离版包名修改器》,具体使用方式可以查看我的文章《若依前后端分离版包名修改器》。

8.总结

如果此文章对大家有所帮助的话,希望能点赞支持下,您的支持就是我最大的动力。我会不定时发布关于若依框架、Java、Vue和uniapp等方面的内容,如果大家感兴趣的话,可以关注我。

如果大家不想浪费时间配置,可以直接下载配置好的资源《若依前后端分离版3.8.9配置资源》。


http://www.kler.cn/a/565557.html

相关文章:

  • 重庆市智慧政务服务“渝快办”工作规范标准规范
  • 【2022——暴力DP / 优雅背包】
  • Vue打包(webpack)缓存
  • CodeMeter SmartBind® 软授权智能绑定技术
  • 汽车v型推力杆总成三维5自由度性能及疲劳测试系统
  • 深度学习之-“全连接网络的反向传播”
  • TikTok隐私保护措施:确保用户安全
  • 利用 AWS API Gateway 和 Lambda 节省成本的指南
  • 数据库基础一(初步了解数据库)
  • 分布式锁—1.原理算法和使用建议二
  • 基于Matlab的多目标粒子群优化
  • 从“Switch-case“到“智能模式“:C#模式匹配的终极进化指南
  • 基于大数据的空气质量数据可视化分析系统
  • OpenCV给图像添加噪声
  • Express + MongoDB 实现用户登出
  • DDD 架构之领域驱动设计【通俗易懂】
  • 从零开始用react + tailwindcs + express + mongodb实现一个聊天程序(二)
  • 【洛谷贪心算法题】P1094纪念品分组
  • 10分钟熟练掌握宝兰德中间件部署 iServer
  • Starrocks入门(二)