Java
文章平均质量分 53
大锅睿
起飞
展开
-
Flyway 入门教程
Flyway 是一款开源的数据库版本管理工具。它可以很方便的在命令行中使用,或者在Java应用程序中引入,用于管理我们的数据库版本。原创 2022-09-21 10:37:07 · 1425 阅读 · 0 评论 -
RSA加密算法的常用工具类
这里提供一个RSA加密算法的工具类,其中包含生成密钥、加密、解密、加签、验签等RSA常用的方法,可以直接使用原创 2022-06-24 15:12:18 · 2583 阅读 · 1 评论 -
RabbitMQ重试机制+死信队列
现在想实现一个功能,消息消费失败重试三次,重试三次后仍失败,则发送至死信队列踩坑按照之前找到的资料,RabbitMQ支持的重试机制需要添加配置rabbitmq: host: 127.0.0.1 port: 5672 username: xxx password: xxx virtual-host: xxx listener: simple: # 开启手动ACK acknowledge-mode: man原创 2022-05-25 16:11:54 · 7637 阅读 · 2 评论 -
EasyExcel的使用
1、什么是EasyExcelEasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目它有以下优势:注解式自定义操作 输入输出简单,提供输入输出过程的接口 支持一定程度的单元格合并等灵活化操作 可以基于对象的方式操作Excel 节省内存 EasyExcel 能大大减少占用内存的主要原因是在解析 Excel 时没有将文件数据一次性全部加载到内存中,而是从磁盘上一行行读取数据,逐个解析二、基本使用1、简单导出GoodsSimpleVo.java..原创 2022-03-30 18:34:57 · 5796 阅读 · 0 评论 -
Java8 Stream流
Steam流是Java8新增的特性,对于集合的处理更加简洁,有更高的可读性和可维护性,可以使用Lambda表达式作为参数Goods.classpackage priv.cwr.model;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import priv.cwr.enums.GoodsTypeEnum;import java.math.BigDecimal;原创 2021-10-29 14:18:33 · 277 阅读 · 1 评论 -
Java 下载网络图片到项目目录
第一步引入依赖<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.8.0</version></dependency>第二部原创 2021-08-06 11:32:57 · 420 阅读 · 0 评论 -
SpringBoot注入Feign失败
今天在再注入Feign的时候启动失败了在启动类上加入扫描Feign路径的直接即可@EnableFeignClients(basePackages = "...")原创 2021-07-26 11:01:25 · 758 阅读 · 0 评论 -
Mybatis @Select in
要在Mybatis中使用in查询主要有三种方式:1.XML2.Mybatis-plus里的QueryWrapperqueryWrapper.lambda().in(ToolUtil.isNotEmpty(ids), User::getId, ids);3.@Select注解XML的方式编写SQL从功能上来说是非常完备的,但是最大的缺点就是编写成本高,复杂,QueryWrapper写SQL比较便捷,可以使用Lambda,但是对多表查询以及自定义返回值不太友好,个人比较偏好于使用@原创 2021-07-01 17:24:30 · 8642 阅读 · 1 评论 -
SpringBoot 文件下载
使用场景:前端调用接口然后触发浏览器下载后端代码/** * 文件下载 * * @param id 文件id * @return */@GetMapping("/download/{id}")public ResponseEntity<?> download(@PathVariable(value = "id") String id) { // 通过id获取文件信息 FileManageViewModel viewModel = fileManageService原创 2021-03-17 13:54:02 · 705 阅读 · 0 评论 -
开启独立事务循环入库
今天遇到一个开发场景,导入一个excel(多个sheet),将里面的每行数据入库,入库成功则直接保存,失败则返回各行异常信息,也就是行与行直接互不影响,是独立的事务大概的结构是这样的,有两个service,一个是ExcelImportService,另一个是MaterialService,调用过程就是ExcelImportService作为入口调用MaterialService,二话不说直接上代码ExcelImportService.java/** * Excel导入 *原创 2021-02-10 10:10:17 · 536 阅读 · 1 评论 -
Parameter 0 of constructor in XXX required a bean of type ‘XXX‘ that could not be found.
今天在搭建微服务项目的时候遇到了一个问题项目结构实际的场景是OperationLogService需要注入OperationLogMapper,也就是最常见的业务层注入数据层,但是项目启动的时候报了这个错误,最开始我还以为是Mapper没有注入到注册到Spring中,检查了之后我确定Service和Mapper是没有问题的,然后找了好久也没有找到原因,这时候我想到会不会是Mapper没有被扫描到?于是我检查了一下Applicaiton启动类的位置,发现真的是这个问题我各个模块的包命名规则原创 2020-09-08 10:43:46 · 21103 阅读 · 2 评论 -
Could not autowire. No beans of 'xxxx' type found 的一种解决方案
今天在注入一个bean的时候遇到一个问题然后我就在想是不是没有把它注册到Spring容器里面,然后一检查发现注册了经过了半个小时的思考和寻找之后,发现了可能的原因,因为我搭建的是一个微服务架构,而RedisHelper是另外一个基础项目里面的类,所以我在当前项目的启动类上加了扫包的范围,然后就搞定了这只是我遇到的其中一种可能出现的情况,具体问题,具体分析...原创 2020-03-31 15:44:19 · 1167 阅读 · 0 评论 -
List深度克隆
/** * @Description: List深度克隆 * @Param: source 源集合 * @Return: java.util.List<T> * @Author: CWR * @Date: 2019/12/26 16:17 */public static <T> List<T> deepCopy(List<T> sou...原创 2020-03-24 13:34:03 · 609 阅读 · 0 评论 -
SpringBoot整合Swagger2自动生成Api文档
现在前后端分离式的开发已经成为一种趋势,在这样的一种开发模式下,对于前端来说接口文档就显得尤为重要,回想起在我之前的公司,我们都是在word里写接口文档,这样其实会存在很多问题,比如繁琐,风格不统一,极大的增加了后端开发的工作量,后来接触了Swagger,是真的非常的方便好用,所以分享一下。生成后的文档大概是这个样子页面非常的干净简洁,也很美观,接下来就开始搭建这个Api文档一...原创 2020-03-24 11:37:18 · 410 阅读 · 0 评论 -
SpringBoot 使用RestTemplate实现调用服务
SpringBoot的搭建可以看一下我之前写的一篇博客https://blog.csdn.net/cwr452829537/article/details/81351987准备工作要使用RestTemplate需要引入依赖,web依赖也可以在创建项目时选择Web -> Web<!-- web --><dependency> <groupI......原创 2018-08-02 10:47:56 · 25073 阅读 · 6 评论 -
搭建Spring Cloud Eureka服务注册中心(一)基本配置
1、Eureka简介首先,大概介绍一下Eureka,Spring Cloud Eureka是Spring Cloud Netflix微服务套件中的一部门,它基于Netflix Eureka做了二次封装,主要负责完成微服务架构中的服务治理功能,服务治理可以说是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册与发现,二话不说,开始搭建环境。我使用的开发工具是IDEA,...原创 2018-10-11 15:27:56 · 2658 阅读 · 0 评论 -
Java方法参数的传递方式
C和C++提供了两种参数传递方式,一种是值传递,一种是引用传递,但是在Java中总是使用值传递的方式传递参数,一种是值的拷贝,一种是引用的拷贝,这两者都是值的拷贝,接下来举例子说明。二话不说直接把测试代码贴上来再分析:import lombok.Data;/** * User: R * Date: 2018/10/18 * Time: 10:22 * Created with...原创 2018-10-18 11:15:42 · 286 阅读 · 0 评论 -
SpringBoot + JPA的自学之路(一)基本配置
由于现在的项目要使用JPA,所以也需要学习一下JPA的使用,之前一直使用的是Mybatis,不得不说JPA要上手确实比Mybatis要复杂一些,难一些,Mybatis和JPA的比较我这里就不多说了,关于这个网上有很多总结的非常好的文章,大家有兴趣可以去看一看,这里就主要分享一下在SpringBoot下使用JPA。1、环境搭建这里主要需要引入JPA和MySQL的依赖<depend...原创 2018-12-19 18:18:35 · 657 阅读 · 0 评论 -
SpringBoot + JPA的自学之路(二)简单使用
上一节大概说了一下JPA的基本配置、项目结构以及数据库的结构,这一节说一下JPA的简单使用这节主要以用户管理作为例子,完成用户的添加和查询(包括分页查询)。控制层UserController.javapackage priv.cwr.controller;import org.springframework.data.domain.Page;import org.springf...原创 2018-12-20 14:04:57 · 527 阅读 · 0 评论 -
SpringBoot + JPA的自学之路(三)多表连接查询
上一节分享了一下JPA的基本操作,但是有时候这些基本操作并不能满足业务的需求,用惯了Mybatis的我觉得多表查询也是挺容易的一件事情,不用修改实体,自己写sql非常的灵活也非常的方便,但是在JPA中要实现多表查询就稍微麻烦一点,需要对实体进行修改,加上一些注解表示与其他实体的关联关系(一对一、一对多、多对一,多对多),下面我们就通过例子来讲解一下。现在我们假设有这样的一个需求:查询一个用户列...原创 2018-12-20 16:00:46 · 15635 阅读 · 8 评论 -
使用反射加载类以及方法的调用
反射很大的一个优点就是灵活性高,能够动态(运行时)加载资源,这里分享一下如何使用反射加载类以及调用方法二话不说,直接上代码,目的是使用反射创建ReflexDemo类对象以及调用它的方法。目录结构如下(普通Java项目)ReflexDemo.javapackage priv.cwr.demo;import java.util.Map;import java.util.UU...原创 2018-12-18 18:25:01 · 598 阅读 · 0 评论 -
Java 8 Optional详解
在进行Java开发的时候NullPointerException已经算是我们的老朋友了,有些情况没有考虑到就很有可能出现空指针异常,即使考虑到了也要使用类似 if (obj != null){ } 去判断是否为空,这样确实会让代码看上去复杂一些.现在Java8有了Optional之后,空指针的校验就变得非常的方便和简洁,可以理解为将数据作为泛型封装到Optional对象中而形成的空指针预防机制,下...原创 2019-01-15 15:22:58 · 369 阅读 · 0 评论 -
ArrayList初始化容量对性能的影响
ArrayList是我们最常用的类集框架之一,它的本质是一个数组,有时候我们也把它称为动态数组,但是这个"动态"只是表象,因为数组的大小是不能扩大或缩小的,数组的大小在数组被创建的时候就已经确定了。所谓"动态"其实是在要向ArrayList中新增元素但是数组容量已经满了的时候,会创建一个更大的数组然后将原数组的内容拷贝到新创建的数组中,这里也可以称为"扩容",所以扩容是非常耗费时间以及内存的,...原创 2019-01-31 11:51:20 · 1986 阅读 · 0 评论 -
关于调用entityManager.persist()方法报错,cannot reliably process 'persist' call
最开始出现这个错误的时候,查询了一些资料,发现是没有在方法上面加@Transactional注解,加上之后发现还是出现同样的异常,再次查询资料,发现@Transactional只对公有的方法有效,其他权限访问修饰符的方法无效但是不报错(如果放在类上,则只有公有方法会生效),而我的方法是默认的修饰符,改为public之后仍然报错,代码逻辑大概是这个样子(因为代码比较复杂,就大概举个例子)pub...原创 2019-04-28 12:22:00 · 5297 阅读 · 0 评论 -
微服务架构定义全局异常处理(@ControllerAdvice + @ExceptionHandler)没有生效
最近在学习基于SpringCloud和SpringBoot的微服务架构,想实现全局异常处理这样一个功能,实现后的效果就是所有服务抛出的异常都在这个全局异常处理里面统一处理,而不是在每个服务里面都写一套异常的处理,先大概说一下我的项目结构,既然要做一个全局异常处理,那么肯定要写在一个公用的地方,这里我有一个基础服务,它不是一个独立的服务,没有启动类,也不需要注册到Eureka,它的作用是提供...原创 2019-08-06 10:50:50 · 7571 阅读 · 7 评论 -
IDEA 搭建SpringBoot项目
现在越来越多的人选择SpringBoot,它的优点这里就不多说了,大家可以去了解一下,今天主要分享一下如何通过IDEA搭建SpringBoot项目。IDEA左上角 File —> New —> Project...选择Spring Initializr,然后Next然后进行一些基本配置,下拉框选择默认的就可以这里可以选择一些常用依赖,如果是Web项目,需...原创 2018-08-02 09:07:51 · 490 阅读 · 0 评论