IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 写DA-SPIDER项目遇到的一些报错,SpringCloud异常问题,随笔~ -> 正文阅读

[Java知识库]写DA-SPIDER项目遇到的一些报错,SpringCloud异常问题,随笔~

本人详解
作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》作者
公众号:山峯草堂,非技术多篇文章,专注于天道酬勤的 Java 开发问题、中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯
转载说明:务必注明来源(注明:作者:王文峰哦)

在这里插入图片描述

一、关于java.util.LinkedHashMap cannot be cast to 实体类…问题的出现以及解决办法

解决方案:

restTemplate.getForObject()String类型接受,也即接受的是一个json字符串

// 将响应体内容以String格式接受,即json字符串
String json = restTemplate.getForObject("http://SPRINGCLOUD-EMPLOYEE-PROVIDER/emp/list",
                String.class);

再使用阿里巴巴的fastjson将json字符串转变成list集合

// 将json字符串转集合 
List<EmployeeModel> employeeModels = JSON.parseArray(json, EmployeeModel.class);

现在就是一个正常的List集合了,可以遍历之类的操作

二、ObjectMapper的简单使用

简单介绍
ObjectMapper类(com.fasterxml.jackson.databind.ObjectMapper)是Jackson的主要类,它可以帮助我们快速的进行各个类型和Json类型的相互转换。
常用方法:

ObjectMapper mapper = new ObjectMapper();
String jsonString = "{\"name\":\"Hyl\", \"age\":20}";
 
//将字符串转换为对象
Student student = mapper.readValue(jsonString, Student.class);
System.out.println(student);
 
//将对象转换为json字符串
jsonString = mapper.writeValueAsString(student);
System.out.println(jsonString);
 
 
结果:
Student [ name: Hyl, age: 20 ]
 
{
  "name" : "Hyl",
  "age" : 20
}

三、Cannot deserialize value of type java.util.Date from String “2021-08-21T07:25:20.000Z“

解决方案:
大体意思是说 前台向后台发起请求时,DateTimeFormat 接收到的前台参数为String,无法将String转变为Date
修改 vo层代码:

/**
 * 结束时间
 */
@DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd'T'HH:mm:ss")
private Date endDateTime;

yyyy-MM-dd HH:mm:ss 改为 yyyy-MM-dd’T’HH:mm:ss

问题解决

四、 Spring Cloud Consul应用下线后,健康检查自动删除无效服务

解决方案:
在配置文件中如上配置后可以使得服务下线后自动删除无效服务,而不必像很多的博客中写的那样专门写一个删除失效服务。

其它的配置属性解析:

spring.cloud.consul.host:配置consul地址
spring.cloud.consul.port:配置consul端口
spring.cloud.consul.discovery.enabled:启用服务发现
spring.cloud.consul.discovery.register:启用服务注册
spring.cloud.consul.discovery.deregister:服务停止时取消注册
spring.cloud.consul.discovery.prefer-ip-address:表示注册时使用IP而不是hostname
spring.cloud.consul.discovery.health-check-interval:健康检查频率
spring.cloud.consul.discovery.health-check-path:健康检查路径
spring.cloud.consul.discovery.health-check-critical-timeout:健康检查失败多长时间后,取消注册
spring.cloud.consul.discovery.instance-id:服务注册标识

五、出现这种问题是因为定义实体类的时候指定@id字段不是数据库中的主键,而且数据库中该字段的数据违背唯一性。

解决方案:

  1. 使用@id的字段必须是主键。

  2. Oracle 13 版中可以支持某个字段为主键,同时还可以指定多列组合成约束条件。相当于两个主键。两个主键同时唯一才可以插入新数据。
    ————————————————
    版权声明:本文为CSDN博主「AZFU0BN」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/chence19871/article/details/99985785

六、 @EnableFeignClients 工作原理

解决方案:
注解@EnableFeignClients:扫描和注册feign客户端bean定义
注解@EnableFeignClients告诉框架扫描所有使用注解@FeignClient定义的feign客户端。它又通过注解@Import导入了类FeignClientsRegistrar( feign客户端注册器)

七、微服务之间的互相调用

解决方案:

@FeignClient(value = "dyj-goods" ,url = "localhost:8082")
public interface GoodsClient  extends GoodsApi{
 
}

八、@NotNull、@NotBlank及@NotEmpty和@Size及@Length区别

解决方案:
1 @NotEmpty :不能为null,且Size>0
2 @NotNull:不能为null,但可以为empty,没有Size的约束
3 @NotBlank:只用于String,不能为null且trim()之后size>0

九、stream().filter()的用法

解决方案:
stream.filter一般适用于list集合,主要作用就是模拟sql查询,从集合中查询想要的数据。filter里面的参数user是指集合里面的每一项

public class StreamTest{
    public static void main(String[] args){
        List<User> list = new ArrayList<>();
        //定义三个用户对象
        User user1 = new User();
        user1.setUsername("huxiansen");
        user1.setPassword("123456");
        User user2 = new User();
        user2.setUsername("huxianseng");
        user2.setPassword("123456");
        User user3 = new User();
        user3.setUsername("huxiansen");
        user3.setPassword("12345");
        //添加用户到集合中
        list.add(user1);
        list.add(user2);
        list.add(user3);
?
        //在集合中查询用户名为huxiansen的集合
        List<User> userList = list.stream().filter(user -> "huxiansen".equals(user.getUsername())).collect(Collectors.toList());
        //在集合中查询出第一个用户密码为123456的用户
        Optional<User> user = list.stream().filter(userTemp -> "123456".equals(userTemp.getPassword())).findFirst();
?
        System.out.println(userList);
        System.out.println(user);
    }
}

小结

学习目标(传送门)

1、掌握 JAVA入门到进阶知识(持续写作中……
2、学会Oracle数据库用法(创作中……
3、手把手教你vbs脚本制作(完善中……
4、牛逼哄哄的 IDEA编程利器(编写中……
5、吐血整理的 面试技巧(更新中……

在这里插入图片描述

面试题总结

?第一章:日常_JAVA_面试题集15(含答案)
?第二章:日常_JAVA_面试题集14(含答案)
?往期文章大全……
在这里插入图片描述

??以上就是今天的内容,关注我,不迷路。

?平安壹钱包面试官:请你说一下Mybatis的实现原理

?Java开发-热点-热门问题精华总结-推荐

一键三连 一键三连 一键三连~
在这里插入图片描述

本人详解
作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》作者
公众号:山峯草堂,非技术多篇文章,专注于天道酬勤的 Java 开发问题、中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯
转载说明:务必注明来源(注明:作者:王文峯哦)

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-14 13:11:30  更:2021-09-14 13:13:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 17:05:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码