Java 开发中遇到的印象深刻的问题


前言

记录下 自己开发中遇到的 印象深刻 被迫加班的bug,也防止面试时被问到!


一、Feign调用服务时,get请求参数异常?

Q:

@Fegin get调用暴露的服务接口时候,请求参数为对象类型, 接收到参数始终都是post请求!!!

原因:

检查feign调用方式与服务端所声明的方式一致,但是为什么为会变成Post请求呢?翻看源码,发现feign默认的远程调用使用的是jdk底层的HttpURLConnection,这在feign-core包下的Client接口中的convertAndSend方法可看到


if (this.method.equals("GET")) {
    this.method = "POST";
}

解决:

服务暴露的feign接口,如果是多参数,都用POST吧,简单粗暴。

get请求,将参数换成一个一个的属性。

或者在@RequestMapping注解中加入consumes的属性。

二、多数据源的时候,mybatsiPlus的分页失效?

Q:

开发中使用多数据源的时候,mybatisPlus的分页插件失效!

解决: 注释部分

 //解决扫包的时候无法扫描mybatis-plus的mapper的问题。
 MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean(); 
        MybatisConfiguration mybatisConfiguration = new MybatisConfiguration();
        mybatisConfiguration.addInterceptor(new PaginationInterceptor());
        // 重点   不可少
        bean.setConfiguration(mybatisConfiguration);    
        bean.setDataSource(ds1);
        bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/ds1/**/*.xml")  );
        return bean.getObject();

三、springBoot项目中maven引入的包不生效?

Q:

maven引入的包,代码扫描不到

解决

加入@ComponentScan,设置扫描路径
在这里插入图片描述

四、Reids master间断性暂停服务?

Q:

Redis master 主线程阻塞,间断性暂停服务?

原因:

Redis 集群模式, master 设置了内存快照。如果 Master 写内存快照,save 命令调度 rdbSave函数,会阻塞主线程的工作,当快照比较大时对性能影响是非常大的,会间断性
暂停服务

解决:

取消master的内存快照设置。

  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值