【问题记录】

这篇博客记录了Java开发中遇到的各种问题及解决方案,包括虚拟机网卡丢失、访问解析流程、ElasticSearch与MYSQL数据同步策略、HTTP状态码、Feign调用问题等,涉及Spring Boot、Mybatis、数据库操作等多个方面。
摘要由CSDN通过智能技术生成
19、虚拟机网卡丢失

2022/8/21
重启即可
在这里插入图片描述

18、访问解析流程

2022/8/19
通过域名访问 ————》 本地 :C:\Windows\System32\drivers\etc 下 的 hosts 文件 是否有对应的IP地址 ————》 本地没有就联网查找DNS

17、项目使用不同的环境启动

2022/8/10

jar -jar xxx.jar --spring.profiles.active=dev
jar -jar xxx.jar --spring.profiles.active=pro
jar -jar xxx.jar --spring.profiles.active=test
16、ElasticSearch 与 MYSQL 数据同步

2022/8/8
方案一:同步调用
在这里插入图片描述
【优点:适合于增量同步,简单,缺点–》耦合度高】

方案二:异步通知
在这里插入图片描述
【优点:适合于增量同步,低耦合,实现难度一般 ; 缺点:依赖mq的可靠性】

方案三:监听binlog
在这里插入图片描述
【优点:适合于增量同步,完全解除服务间耦合 ; 缺点:开启binlog增加数据库负担、有性能损耗,实现复杂度高,且仅支持MYSQL】

方案四:
在这里插入图片描述


增量 --》(定时任务查询)导入ES
全量 --》(线程池+redis+分页+锁)导入ES

15、状态码

503 ==》 服务不可用 【注册中心没有】

14、业务准备

1、要什么结果
2、关联的表有哪些【多值字段含义、表关联】
3、

13、feign调用问题

2022/7/20
1、405——>关联微服务未开启
2、404——>远程调用时传递参数错误或者为null
3、路径问题:
在这里插入图片描述
4、可能是注解没加【规范开发,都加上就行】
在这里插入图片描述
5、在参数里最好不要单独传递时间
如若要用
1、 转为字符串
2、放在对象中

LocalDate 年月日
LocalDateTime 年与日时分秒 【会丢失秒

3、改feign源码…

12、数据库插入乱码
url: jdbc:mysql://localhost:3306/hmall?useSSL=false&useUnicode=true&characterEncoding=utf8
11、JSON

JSON字符串:网络中传递的字符串的格式符合JSON格式
e1.
var obj = { “name”:“zs”, “age”:30, “info”:{ “email”:“xxxx” } }
e2.
var objs = [ obj , obj2 ]

10、请求中不带斜杠 / 的是相对路径【带斜杠的是绝对路径(推荐)】

在这里插入图片描述

9、Token伪造

2022/07/01

场景:假设盐被别人知道了,也知道加密方式
正常使用过程:
1.页面发起登录请求
2.后台校验账号密码
3.校验通过后,生成token(jwt技术生成token)
4.将token返回给前端,需要进行保存
5.请求再次发送请求,需要携带token,
6.后台需要进行校验token(jwt技术校验token)


伪造token
1.请求再次发送请求,需要携带token(伪造的)
2.后台需要进行校验token(jwt技术校验token)---可以正常通过
3.校验账号密码通过后,生成token--存入redis
4.后台需要进行校验查看redis是否存在---如果是伪造token不可以通过

在这里插入图片描述

8、mybatis 只传递一个参数时,名称可以任意

2022/07/01

【单个参数】:mybatis不会做特殊处理,【返回的是数组】
         #{参数名/任意名}:取出参数值。
【多个参数】:mybatis会做特殊处理。 【返回的是Map】
				多个参数会被封装成 一个map,
									key:param1...paramN,或者参数的索引也可以
									value:传入的参数值
				#{}就是从map中获取指定的key的值;

源码:
在这里插入图片描述

7、i++在两个线程分别执行100次,最大值和最小值分别多少 === 【2-200】

链接

b的第一次+1覆盖了a的前99次+1
a的最后一次+1覆盖了b的后99次+1
【相当于各自+1都只成功一次】

6、Spring Boot 2.2.x Junit4 升级为Junit5 后的变化、对比 找不到 org.junit.jupiter.api.Test 【空指针】

链接:https://blog.csdn.net/kmesky/article/details/102984592
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

5、springBoot Web 项目启动访问404问题

2022/6/14
原因:springbBoot启动类与目标代码不在同一级目录下 -----》导致访问不到
解决:
① :放置同级目录下
② :在启动类上添加@ComponentScan(basePackages = {"com.controller"}) 注解进行扫描
在这里插入图片描述
归结于创建项目时,Package路径不需要加入项目名
在这里插入图片描述

4、SSM整合流程

2022/6/3

  1. 创建数据库,创建Maven工程【javaweb】,添加依赖
  2. 添加页面
  3. SSM整合
    • Spring
      • applicationContext.xml
    • MyBatis
      • db.properties
    • SpringMVC
      • springmvc.xml
      • web.xml
  4. 功能模块
    • 表与实体类
    • 工具类(Result、Code)
    • dao(接口+自动代理)
    • service(接口+实现类)
      • 业务层接口测试(整合JUnit)
    • controller
      • 表现层接口测试(PostMan)
3、注解记忆:

2022/6/1
① 在方法上打上@ResponseBody, springMVC会把返回值看成是字符串,否则会被看成是页面的路径
② @RequestParam:将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解)

2、spring@Autowired自动注入

2022/5/30
问题:@Autowired要打在接口上,不能打在具体的实现类上
原因: 通过IOC容器创建的对象相当于接口的实现类,和其他实现类为【兄弟关系】,所以接收不了

     //调用service
    @Autowired
    private UserService userService;

    //@Autowired
    //private UserServiceImpl userService2;   // 代理对象和实现类【兄弟关系————接收不了】
    // Bean named 'userService2' is expected to be of type 'com.yellow.service.impl.UserServiceImpl' but was actually of type 'com.sun.proxy.$Proxy15' 

1、登录验证

2022/5/26
问题:
①思路错误:获取用户输入信息,封装成对象后,遍历所有用户信息进行匹配。
改进: 封装用户登录信息为对象,将对象作为查询对象传入,数据库获取对象参数作为where条件查询。
②过滤器不熟悉
答:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值