![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
神奇的凹凸曼
路漫漫其修远兮,吾将上下而求索。
展开
-
2021-12-29 Java玩转Pdf还得从合并开始
java使用itext合并pdf,可以当做自行改为一个工具类原创 2021-12-29 11:45:06 · 378 阅读 · 0 评论 -
日常工作小技巧(日常更新)
JPA开发技巧&日常工作中所遇到的问题时如何解决的原创 2021-11-29 09:52:30 · 169 阅读 · 0 评论 -
2021-11-19 ZonedDateTime与字符串互转
因为经常要使用ZonedDateTime,涉及到与字符串的相互转换一、ZonedDateTime转为字符串ZonedDateTime now = ZonedDateTime.now();DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");String time = now.format(formatter);log.info(time);执行结果2021-11-19 14:09:0原创 2021-11-19 14:17:53 · 2458 阅读 · 0 评论 -
2021-10-26 使用TaskScheduler延迟执行
需求:当我们在开发一个api时,响应速度太慢了,因为这api中开发的某些功能消耗了大量的时间,我们可以将这些功能提取出来延迟执行这样做是有个前提的,不是必要的一些功能,也就是说cms执行成功,但是在没有执行TaskScheduler之前其实并没有成功,只是说提高了响应速度,这会是工作当中的一种优化如果使用1、加入注解,引入Bean@ RequiredArgsConstructorfinal private TaskScheduler scheduler;2、延迟执行scheduler.原创 2021-10-26 10:08:49 · 448 阅读 · 0 评论 -
2021-10-21 FFmpeg截取视频第一帧
今天有个需求:前端只需要传一个视频,后端需要截取视频的第一帧作为封面,将这封面图片上传到对象存储中,然后把地址存在数据,最后要返回封面地址这种情况许多面对视频的业务很可能会遇到使用我们先把效果给整出来,再看细节...原创 2021-10-22 09:30:28 · 2289 阅读 · 0 评论 -
2021-10-19 websocket长连接以及项目实例
为什么要使用websocket?有时候我们需要频繁地去调用一个API,就会发送一些无关的信息比如像header里面的信息、效率降低了;使用websocket只需要连接一次,除非你客户端或者是服务端挂了,它才结束...原创 2021-10-19 11:41:13 · 243 阅读 · 0 评论 -
2021-10-18 JPA多表查询返回自定义实体类
在网上查阅了很多种连表查询返回自定义的实体类的方法第一种方法使用hql直接写sql语句,这种也是比较方便的,就是代码不好看,实例如下case:摄像头可以发现一些突发事件,我需要将一个摄像头最后发现的事件查询出来摄像头Camera实体类:public class Camera extends AbstractAuditingEntity implements Serializable { private static final long serialVersionUID = 1L;原创 2021-10-19 11:24:18 · 1739 阅读 · 0 评论 -
2021-10-14 如何在本地启动服务,前端进行访问
今天有个需求:项目还没有部署,API已经完成了,在等前端做完;我以为会在部署之后才进行联调,然后说叫我本地启动服务让前端来访问这种情况我也是第一次遇到,所以记录下。怎么做呢?问题:1、报403 forbid2、跨域...原创 2021-10-14 10:54:45 · 1097 阅读 · 0 评论 -
2021-10-12 消息中间件(RabbitMQ)
1、什么是消息中间件?这里解释的很好: 消息中间件的理解 1)什么是中间件? 非底层操作系统软件,非业务应用软件,不是直接给最终用户使用的,不能直接给客户带来价值的软件统称为中间件。关注于数据的发送和接收,利用高效可靠的异步消息传递机制集成分布式系统2、消息中间件可以做什么?将某一消息推送给各个需要的业务流程3、消息中间件有什么特点?1、分布式:消息中间件要求分布式部署,满足大规模数据并发能力,同事要求可扩展2、可靠性:可靠,数据一致性要求很高,要求避免数据丢失,提供持久化(数据库)3原创 2021-10-12 10:49:19 · 310 阅读 · 0 评论 -
2021-10-09 Lombok @RequiredArgsConstructor 注解
目前使用最广泛的spring注入方式一、Autowired注解@Servicepublic class CameraService { @Autowired private UserService userService;}二、构造器注入@Servicepublic class CameraService { private UserService userService; public CameraService(UserService userServi原创 2021-10-09 10:12:23 · 280 阅读 · 0 评论 -
2019-12-18 IDEA使用jdbc连接数据库(1)
JDBC是接口 是规范,本身sun公司没有实现 需要各大数据库厂商实现;为什么要使用JDBC?因为要把数据库持久化,持久化数据最好的方式就是把数据保存到数据库中,而java要把数据保存到数据库中就需要使用jdbc…步骤: 写配置文件propertiesDriver = com.mysql.jdbc.Driver写一个工具类用来加载驱动和其他一些固定的字符串private stati...原创 2019-12-18 23:01:10 · 259 阅读 · 0 评论 -
2019-12-20 IDEA使用jdbc连接数据库(2)
结合上篇jdbc连接数据进行增删改查记忆 statement为什么使用preparedstatement?不需要拼接sql字符串,爽,方便;防止sql注入;效率更高,因为预编译sql上次是使用加载配置文件进行优化的,今天是使用连接池,连接池有DBCP,c3p0等等,这次我们使用DBCP项目基本结构使用dao层:见名知义,这次主要是util和实现类的改动,直接上代码private...原创 2019-12-20 00:20:55 · 169 阅读 · 0 评论 -
2021-9-27 Redis的缓存穿透、缓存击穿、雪崩原因及解决方案
1、缓存穿透我就直接说得简单易懂点哈。缓存穿透就是指用户发起一个查询请求,但是后端在redis和数据库都没查到。也许根据业务逻辑会抛出异常之类的,对业务逻辑没有什么影响;但是你想想,假如用户频繁地请求,后端就会频繁地去查数据库了,是吧问题也就明显了,这样恶意请求会导致数据库宕机的解决方案1、如果从redis和数据库中都没有查询到该数据的话,你就手动在redis中先放入一个空的结果,并设置一个失效时间,这个失效时间不能太长。下次请求该数据时,就可以直接返回了2、对用户的请求进行校验,对恶意请求进原创 2021-09-27 14:22:17 · 103 阅读 · 0 评论 -
2021-5-19 通过RestTemplate请求第三方服务(API)
RestTemplate常用方法请求:Http GET请求如果你不需要请求头中的信息,使用getForObject可以获取对象getForObject @GetMapping("/getForObject") public ResponseEntity<?> getForObject() { //请求远程的Url String url = "http://localhost:8080/restgFO"; //准备参数原创 2021-05-19 09:51:32 · 298 阅读 · 0 评论 -
2021-5-18 SpringBoot + QueryDsl Maven依赖
第一步:配置pom.xml <!-- 使用jpa连接数据库--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>原创 2021-05-18 22:00:12 · 456 阅读 · 0 评论 -
2021-3-3 cmd、git代理设置
使用cmdsetset http_proxy=http://127.0.0.1:1080set https_proxy=http://127.0.0.1:1080testcurl -vv google.comunsetset http_proxy=set https_proxy=使用git bashsetexport http_proxy=http://localhost:8080export https_proxy=http://localhost:8080testcurl -原创 2021-03-03 17:45:38 · 217 阅读 · 1 评论 -
2021-3-1 POI使用SAX模式读取大量数据
package com.cdroulian.warlock.util;import org.apache.poi.openxml4j.exceptions.InvalidFormatException;import org.apache.poi.openxml4j.exceptions.OpenXML4JException;import org.apache.poi.openxml4j.opc.OPCPackage;import org.apache.poi.xssf.eventusermodel原创 2021-03-01 17:01:10 · 1446 阅读 · 1 评论 -
2020-12-25 java获取系统临时目录等计算机信息
System.getProperty(“java.io.tmpdir”) 是获取操作系统的缓存临时目录java.version Java运行时环境版本java.vendor Java运行时环境供应商java.vendor.url Java供应商的 URLjava.home Java安装目录java.vm.specification.version Java虚拟机规范版本java.vm.specification.vendor Java虚拟机规范供应商java.vm.specification.原创 2020-12-25 09:59:18 · 363 阅读 · 1 评论 -
2020-12-10 Java实现日志功能简便方法
第一步:配置pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>第二步:编写切面@Component@Aspectpublic class LogAspect原创 2020-12-10 15:31:01 · 324 阅读 · 0 评论 -
2020-12-10 SpringBoot 项目集成Swagger 详细教程
第一步:pom.xml配置 <!-- swagger引入--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </de原创 2020-12-10 15:17:36 · 157 阅读 · 0 评论 -
2020-12-03 Could not connect to SMTP host: localhost, port: 25;
解决:修改mail配置host: smtp.163.comport: 25username: 18782870626@163.compassword: IVLTRNOKUNHJGHUB这是163邮箱发送给qq邮箱的,username为发送者邮箱账号,password为发送者邮箱授权码参考文章:https://blog.csdn.net/Tomwildboar/article/details/83027864...原创 2020-12-03 10:47:37 · 541 阅读 · 0 评论 -
2020-09-15 Git拉取代码提示:Please commit your changes or stash them before you merge(已解决)
git stashgit pullgit stash popgit status .git add .git commit -m “”git push原创 2020-09-15 10:05:46 · 375 阅读 · 0 评论 -
2020-7-30 MappedSuperclass注解
总结哈1)在使用springboot – jpa时,有遇到多个实体类有相同的字段,这时我们可以使用MappedSuperclass定义基类,提取公共的字段,其他需要基类的的字段的实体类就继承它,使用MappedSuperclass的类不会被映射到数据库2)如果你使用了MappedSuperclass注解,就不能使用@Entity和@Table,很好理解,使用MappedSuperclass的类不会被映射到数据库,为啥还要给他配置实体映射和表映射呢3)如果一个标注了MappedSuperclass的类继原创 2020-07-30 17:51:36 · 291 阅读 · 0 评论 -
2020-07-10 回顾SpringdataJPA之实体关联关系
首先先提出三个注解@Transient我们知道domain层中的只要你在类上写了@Entity注解,就会给你映射到数据库中,类的字段对应数据库的列,但是我们有时候会在domain层中写一些方法这时候这个注解就可以帮助我们,在方法上面写这个注解,便可以不让他映射到数据库中@Temporal这个注解是针对Date类型的,只要你domain层的字段是Date类型,它默认映射到数据库中是datetime类型,如果添加一个值,都是精确到秒的,但是有时候我们不希望精确到秒,比如生日这些那么我们如何精确原创 2020-07-10 12:22:22 · 407 阅读 · 0 评论 -
2020-07-09 Springboot的Controller中常用注解
@Controller@Controller注解标注类的方法,return时会被视图处理器识别成静态文件的路径。默认为templates文件夹下。如return "test/hello"表示的是默认路径下的test文件夹中的名叫hello的文件,带上后缀名.html或btl等也可以识别。@Controller和@ResponseBody的结合体@RestController是@Controller和@ResponseBody的结合体,只能注解类,return返回的值将被转换成json,字符串除外原创 2020-07-09 13:31:32 · 1179 阅读 · 0 评论 -
2020-07-09 回顾SpringdataJPA之错误日志 No value present
今天在做添加时,因为有关联对象原因,导致一直失败java.util.NoSuchElementException: No value present 错误原因定位错误原因所在代码是,productInfo.findone()方法中,使用了Optional类,调用了get()方法,Optional类是JDK8中新添加的类,用来简化判空操作,如果使用对象为空,调用get()会产生以上错误。检查所传参数,是否为空。解决方案将主键设置为空,因为entity.setId(null);设置为空重新运行原创 2020-07-09 11:08:44 · 1833 阅读 · 0 评论 -
2020-07-04 java8新特性系统学习之Stream API
Stream 流的概念(自己的理解)流就是用来操作数据源的。比如,工厂的流水线,数据源就是一些零件,然后工厂里面有流水线,流水线是做什么的呢?他会对这些零件进行加工,最后得到一个新的产品。对应过来Stream流就是对集合、数组等进行流水线式的操作,最后得到一个新的流,在这个流水线上,我们可以对这个流进行一些操作,比如筛选切片排序等。Stream的操作三个步骤1、创建一个流一个数据源(集合、数组),获取到一个流2、中间操作一个中间操作链,对数据源的数据进行处理3、终止操作(终端操作)一个终原创 2020-07-04 12:17:51 · 197 阅读 · 1 评论 -
2020-07-03 java8新特性系统学习之Lombda表达式
因工作需要,系统学习java8新特新,主要有Lomda表达式,stream API为什么要是用Lomda表达式?Lambda是-一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码(将代码表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为- -种更紧凑的代码风格,使Java的语言表达能力得到了提升。注意使用Lomda表达式需要函数式接口的支持java8引入了一个符号:-> ,箭头符号也叫Lomda符号,->左侧的是函数式原创 2020-07-03 21:28:46 · 1282 阅读 · 0 评论