软件研究之Ruoyi分离版

标签: 无 分类: 未分类 创建时间:2022-10-03 01:48:25 更新时间:2023-10-20 11:23:28

1.添加白名单

后端配置白名单,需要在 ruoyi-frameword中的 config SecurityConfig 进行配置。

2.将分离版的Vue2.0改为Vue3.0

我因为项目中使用了Vue3,所以在集成若依框架的时候,需要将ruoyi-ui里面的vue2的代码换成3的,遇到了下面的一些问题。

  • 1.代码覆盖问题

  • 2.验证码问题
    在Ruoyi-Vue3中的验证码的地址是 /code,而Ruoyi-Vue中的登陆的验证码是 /captchaImage

  • 3.用户认证接口问题
    在Ruoyi-Vue3中,将login接口

后来不知道为什么,我发现我可能把代码库复制错了,真是不知道到底为什么复制错了,不知道/code这个接口是哪里来的了。

3.增加mybatis plus

我想着在Ruoyi前后端分离的版本上,增加自己的模块,在自己的模块中使用了mybatis plus 插件,于是我尝试独立的配置mybatis plus,但是似乎没有成功,后来我找了些文章,有一些说明:

根目录的依赖是放到了dependencyManagement标签里了,是声明,并没有真正引用,当子模块用到了相应的依赖时需要在自己的pom里再引用进来,此时不用写版本号,因为声明时已规定好了。现在common模块需要引用mymatis-plus,所以需要在这里添加进来。那为什么之前使用mybatis的时候这个pom里没有引用mybatis的依赖呢?是因为common模块还引用了分页插件,还记得上一步时我移除了分页插件中的mybatis依赖吗?因为分页插件本身依赖了mybatis,所以之前common可以不引用mybatis,但是现在mybatis已被移除,所以必须重新引入mybatis-plus,否则代码会报错。若依单模块版本就不会出现这个问题。

【操作步骤】
1.删除mybatis-spring-boot-starter依赖
注释掉根目录pom.xml文件的 dependencyManagement 里面的 mybatis-spring-boot-starter依赖,参考文章中说还需要注释掉 pagehelper-spring-boot-starter 相关依赖(在ruoyi-common模块和根模块下都有),因为 pagehelper 自带了mybatis的依赖,但是因为 Ruoyi 的BaseCotroller,使用到了这个插件,所以你要是注释掉可能就会报错了。

2.在根目录的pom.xml文件中 dependencyManagement 增加 mybatis-plus 插件声明

1
2
3
4
5
6
<!-- mybatis plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus-spring-boot.version}</version>
</dependency>

3.在ruoyi-common的pom.xml引入 mybatis-plus-boot-starter 插件

1
2
3
4
5
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus-spring-boot.version}</version>
</dependency>

4.注释掉 ruoyi-framework 模块下,MyBatisConfig 文件中的 sqlSessionFactory 函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// @Bean
// public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception
// {
// String typeAliasesPackage = env.getProperty("mybatis.typeAliasesPackage");
// String mapperLocations = env.getProperty("mybatis.mapperLocations");
// String configLocation = env.getProperty("mybatis.configLocation");
// typeAliasesPackage = setTypeAliasesPackage(typeAliasesPackage);
// VFS.addImplClass(SpringBootVFS.class);
//
// final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
// sessionFactory.setDataSource(dataSource);
// sessionFactory.setTypeAliasesPackage(typeAliasesPackage);
// sessionFactory.setMapperLocations(resolveMapperLocations(StringUtils.split(mapperLocations, ",")));
// sessionFactory.setConfigLocation(new DefaultResourceLoader().getResource(configLocation));
// return sessionFactory.getObject();
// }

5.修改 ruoyi-admin 模块下的 application.yml 配置,增加 mybatis-plus 配置
因为我增加了自定义的类,所以 type-aliases-package 需要添加自己的包名和实体所在的位置

1
2
3
4
## MyBatis Plus
mybatis-plus:
type-aliases-package: com.openmap.disaster.domain,com.ruoyi.**.domain
mapper-locations: classpath*:mapper/**/*Mapper.xml

6.修改 ruoyi-admin 模块下的 RuoYiApplication.class 启动类的注解
因为我的自定义的包为 com.openmap.*.mapper,所以需要增加扫描,还需要增加 ComponentScan ,识别 @Service 等注解

1
2
3
4
5
6
@ComponentScan(basePackages = {"com.openmap","com.ruoyi"})
@MapperScan("com.openmap.*.mapper")
public class RuoYiApplication
{
public static void main(String[] args){}
}
参考文章:
1.若依分离版本将mybatis修改为mybatis-plus(去若依化六) 这篇文章写的非常的好,但是有一个地方没有提到,就是注释了 pagehelper-spring-boot-starter 之后,那么在 BaseController 中的 PageHelper 就没有用了。
2.若依前后端分离版本集成Mybatis-plus然
小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。