Java
山风岚岚丶
Map一时爽,维护火葬场
展开
-
Java线程池详解
工作流程、参数、类型、任务队列、拒绝策略;原创 2023-03-14 11:29:19 · 616 阅读 · 1 评论 -
Java for和foreach区别及性能选型
3建议ArrayList使用普通for循环,降低上下文和参数的复杂度;LinkedList使用foreach循环更适配链表数据结构。原创 2022-12-07 16:34:11 · 700 阅读 · 0 评论 -
resttemplate无法接收[text/json;charset=UTF-8]
org.springframework.web.client.UnknownContentTypeException: Could not extract response: no suitable HttpMessageConverter found for response type [class java.lang.Object] and content type [text/json;charset=UTF-8]原创 2022-11-14 17:24:25 · 1713 阅读 · 0 评论 -
编译时报错:zip END header not found 解决方法
Java: 读取E:\apache-maven-3.8.2\repository\com\lowagie\itext\2.1.7\itext-2.1.7.jar时出错; zip END header not found原创 2022-11-03 16:10:49 · 21258 阅读 · 2 评论 -
MyBatis整合A.CTable自动建表
实测ACTable能试别到Mybatis-Plus的相关注解,所以如果原项目已经整合的Mybatis-Plus,是不需要在实体类上额外加注解就能自动建表的(如@TableName、@TableId、@TableField这些注解)。这里有的博主用的1.5.0版本,但是实测有的项目下会有bug,所以这里用的1.4.9。原创 2022-09-21 16:04:57 · 441 阅读 · 0 评论 -
使用Arrays.sort方法对对象排序
Arrays.sort()方法对引用类型(对象)排序有两种方法:继承Comparable接口并实现compareTo方法import java.util.Arrays;public class Test { public static void main(String[] args) { Man[] msMans = { new Man(3, "a"), new Man(60, "b"), new Man(2, "c") }; Arrays.sort(msM.原创 2022-05-06 16:46:56 · 1912 阅读 · 0 评论 -
Java实现S3分段上传(解决大文件上传问题)
Amazon S3会限制单次上传的大小,上传过大的文件会导致上传失败(单次上传的最大数据元是5GB),官方建议的是大于100MB的文件就应该考虑分段上传。一般而言,如果您的对象大小达到了 100 MB,您应该考虑使用分段上传,而不是在单个操作中上传对象。官方文档地址网上的代码大部分要么是单线程执行很慢,要么就是本地的临时文件(File)没有删除,这里参考了网上现有的代码做了一些整合,具体代码如下:/** * 分段上传文件至S3 * @param file * @param s3Key.原创 2022-04-13 17:11:44 · 9498 阅读 · 18 评论 -
JPA读不到已提交事务的数据
最近开发碰到一个问题,事务B中的查询需要用到事务A中提交的数据,所以我就让事务B循环查询数据库,等待事务A提交后再继续执行。但是最后发现事务B怎么等也等不到事务A的数据=.= (这里有个前提,事务AB所在方法都是主方法执行完毕后开启的异步方法,事务A和事务B无法控制开启的先后顺序),所以浅看了一下事务是怎么个回事。这里首先要清楚事务的四种隔离级别:事务隔离级别:Read Uncommitted(未提交读);Read Committed(已提交读):解决脏读;Repeatable Read(可.原创 2022-03-30 22:29:30 · 1432 阅读 · 0 评论 -
JDK1.8 HashMap扩容源码(resize()方法)解读
扩容源码 final Node<K,V>[] resize() { Node<K,V>[] oldTab = table; //oldCap:旧数组长度,oldThr:旧扩容阈值,newCap:新数组长度,newThr:新扩容阈值 int oldCap = (oldTab == null) ? 0 : oldTab.length; int oldThr = threshold; int newCap, .原创 2021-09-17 22:12:59 · 229 阅读 · 0 评论 -
SpringCloud实现服务间调用
Eureka注册的服务之间调用不需要指定服务地址,而是通过服务名向注册中心咨询,并获取所有服务实例清单(缓存到本地),然后实现服务的请求访问。Ribbon//tencent是在Eureka中注册的服务名,"meetings/modify"是具体的接口地址ResponseEntity<ResponseResult> response = myRestTemplate.postForEntity("http://tencent/meetings/modify", req, ResponseRe原创 2021-08-30 15:00:33 · 274 阅读 · 0 评论 -
同一个catch代码块捕获多个异常
写try/catch的时候可能有多个异常类型处理方式相同,如果用多个catch代码块的话代码会很冗余,可以用如下写法进行简化:try { //```} catch (ServiceRequestException | AutodiscoverLocalException e) { log.error("Error=============>" + e.getMessage());} catch (Exception e) { log.error("Error=======原创 2021-06-25 10:45:01 · 785 阅读 · 0 评论 -
SpringBoot异步执行方法
SpringBoot中使用@Async注解标记的方法,会在调用方法的当前线程之外的独立线程中执行。Spring使用@Async注解实现异步任务:application类上加@EnableAsync注解:@EnableAsyncpublic class TestApplication { public static void main(String[] args) { SpringApplication.run(TestApplication.class, args); }}.原创 2021-06-18 10:50:46 · 1324 阅读 · 0 评论 -
EWS(Exchange Service)基本使用(Java)
EWS(Exchange Service)基本使用(获取个人会议,会议室会议内容,会议室列表,发送会议,修改会议,删除会议)最近公司要求和exchange服务对接,所以稍微研究了一下官方文档,做出以下总结,欢迎大家补充。先放出exchange官方开发说明文档:https://docs.microsoft.com/zh-cn/exchange/client-developer/exchange-web-services/calendars-and-ews-in-exchange与exchange we转载 2021-06-08 10:10:08 · 2426 阅读 · 2 评论 -
SpringBoot返回文件给前端
主要代码如下:/** * 通过HttpServletResponse将文件流返回给前端 * * @param response HttpServletResponse在Controller层直接接收即可 * @param is 需要返回的文件流 * @param fileName 文件名 * @return */private static ResponseEntity<InputStreamResource> encapsulateResponseEntities(HttpS原创 2021-04-22 10:59:47 · 6844 阅读 · 0 评论 -
JPA原生sql接收自定义实体
JPA写原生sql的时候接收到的返回值可能是不同于定义的实体类的,比如接收到的返回值是从不同表中拿到的不同字段组成的实体,此时用HashMap或者自定义的DTO去接是会报错的。如果不想在某个实体中加大量的@Transient注解标注的字段去接这个返回值,则需要自定义一个接口去接,以下进行举例://比如我这里这段sql是获取某个设备当前在线和离线的数量@Query(value = "Select (Select COUNT(ws.id ) FROM table ws where last_updated原创 2021-04-09 14:46:57 · 1368 阅读 · 0 评论 -
BaseModel(主键用雪花算法生成)
最近项目用的BaseModel,主键生成方案用的雪花算法,感觉通用性比较强,做个存档,有需要直接复制过来用就行了:import com.fasterxml.jackson.annotation.JsonIgnore;import com.fasterxml.jackson.databind.annotation.JsonDeserialize;import com.fasterxml.jackson.databind.annotation.JsonSerialize;import com.fas.原创 2021-01-22 10:54:30 · 323 阅读 · 0 评论 -
JPA findById方法和getOne方法区别
JPA findById方法和getOne方法区别Jpa基础的CRUD方法继承自接口CrudRepository<T, ID>,包含以下方法:<S extends T> S save(S entity);<S extends T> Iterable<S> saveAll(Iterable<S> entities);Optional<T> findById(ID id);boolean existsById(ID id);It原创 2021-01-08 15:21:14 · 1285 阅读 · 2 评论 -
Calendar类常用方法,获取每月最大天数
Calendar类平时用到时间戳主要是用java.sql.Timestamp这个类,但是Timestamp获取年月日时分秒的方法现在都标注不推荐了,为了防止官方哪天突然给他删了,可以用Calendar类做一些替代操作。Calendar对象初始化Calendar cal = Calendar.getInstance(); // 返回一个基于当前时间和默认时区、区域设置的日历对象日历一般配合时间戳使用,所以还需要设置时间cal.setTime(timestamp); //这原创 2020-12-22 10:21:25 · 8200 阅读 · 0 评论 -
自动为类生成sql语句
工作原因要用到原生sql,但是类里的属性太多了,写起来简直要命,所以写了个insert、update的代码生成器,具体代码如下:package com.example.batis.Utils;import java.lang.reflect.Field;import java.util.ArrayList;import java.util.List;import java.util.stream.Collectors;/** * @Project: hello-wolrd * @Pa.原创 2020-12-18 14:26:01 · 645 阅读 · 0 评论 -
JPA写原生SQL
JPA原生sql代码示例@Repositorypublic interface ParticipantRepository extends JpaRepository<Participant,Long> { List<Participant> getByAppointmentId(Long appointmentId); int deleteByAppointmentId(Long appointmentId); Participant getB原创 2020-12-17 14:23:45 · 1099 阅读 · 0 评论 -
Git常用命令
分支$ git branch -a #查看所有分支$ git branch -r #查看所有远程分支$ git branch #查看本地分支$ git branch abc #新建abc分支$ git branch -D master #删除master分支$ git branch -vv #查看本地分支和远程分支关联关系$ git checkout master .原创 2020-12-03 10:03:30 · 76 阅读 · 0 评论 -
SpringBoot同一接口多个实现类配置
SpringBoot项目中可能出现一个接口有多个实现类的情况,如果不进行配置,注入接口时编译器不知道要注入哪个实现类就会报错,因此需要进行配置。以下进行举例:接口如下:public interface NoticeService { public String noticeUser(Long id);}两个实现类如下:@Servicepublic class NoticeServiceImpl1 implements NoticeService { public String.原创 2020-11-12 17:11:05 · 2391 阅读 · 2 评论 -
RestTemplate摘要认证
ResTemplate摘要认证模拟Postman Authorization下Digest Auth(摘要认证)类型的认证方式引入依赖<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.12</version></dependency&g原创 2020-11-27 13:40:12 · 1515 阅读 · 3 评论 -
SpringBoot整合Mybatis(注解+xml)
SpringBoot整合Mybatis文章目录SpringBoot整合MybatisSpringBoot整合Mybatis引入maven依赖配置application.yml文件建实体类、Controller类、Service类官方文档:https://mybatis.org/mybatis-3/zh/getting-started.htmlSpringBoot整合Mybatis引入maven依赖(IDEA建项目的时候直接选就可以了)<dependency> <groupI原创 2020-11-25 10:06:49 · 430 阅读 · 1 评论 -
Lombok安装及常用注解
Lombok用处Lombok项目是一个Java库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来消除Java类中的大量样板代码。仅五个字符(@Data)就可以替换数百行代码从而产生干净,简洁且易于维护的Java类。(百度百科)IDEA安装lombokfile->Settings->plugins,在Marketplace搜索lombok然后安装即可(Eclipse)如果是maven项目,也可以在pom文件中添加依赖:<dependency>原创 2020-11-24 11:48:56 · 127 阅读 · 0 评论 -
equals()和==的区别(Java)
equals()和==的区别(Java)“==”用法基本数据类型:双等号比较的是值引用数据类型:双等号比较的是内存中的地址equals()用法没有重写equals()方法:比较内存中的地址重写了equals()方法:参照重写的方法重写了equals()方法的类:String:重写的equals()方法比较字符串内容;字符串判等全部使用equals()方法,双等号是根据内存地址进行判断。Integer:重写的equals()方法比较整形变量的值;注:当给Integer对原创 2020-11-17 15:44:39 · 109 阅读 · 0 评论 -
SpringBoot整合redis(lettuce)
SpringBoot整合redispom文件导入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>application.yml配置server: port: 8823spring: #redis原创 2020-11-04 15:02:36 · 501 阅读 · 0 评论 -
Java线程池简单应用
Demo: public void testThread() { List<String> test = new ArrayList<>(); int i = 0; while (i < 10001) { i++; test.add(i + ""); } //给List加锁,不加会丢数据 List<String> thre原创 2020-09-29 10:36:25 · 128 阅读 · 0 评论 -
SpringBoot整合Swagger
编写配置类import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.builders.PathSelectors;import springfox.documen.原创 2020-09-10 16:02:48 · 85 阅读 · 0 评论 -
SpringBoot拦截器简单实现
创建拦截器实现类package com.example.helloworld.fAh;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;p.原创 2020-09-09 17:35:13 · 155 阅读 · 0 评论 -
SpringBoot过滤器简单实现
package com.example.helloworld.filter;import org.springframework.stereotype.Component;import javax.servlet.*;import javax.servlet.annotation.WebFilter;import javax.servlet.http.HttpServletRequest;import java.io.IOException;@Component@WebFilter(url原创 2020-09-09 17:25:14 · 174 阅读 · 0 评论 -
SpringBoot 数据库配置
application.propertiesspring.profiles.active=devapplication-dev.propertiesspring.datasource.url=jdbc:mysql://localhost:3306/helloWorld?serverTimezone=UTCspring.datasource.username=rootspring.datasource.password=rootspring.datasource.driver-class-nam原创 2020-09-08 10:31:54 · 158 阅读 · 0 评论 -
JPA简单分页条件查询
分页条件查询Controller层@PostMapping("getUserPage") public Page getUserPage(@RequestBody Map<String,Object> map){ return userService.getUserPage(map); }Service层 public Page getUserPage(Map<String, Object> map) { String ord原创 2020-09-07 15:38:59 · 279 阅读 · 0 评论 -
Java学习笔记
菜鸟教程:https://www.runoob.com/java/牛客网:https://www.nowcoder.com/tutorial/10001/5fc0c07cd9d44e66b3baafd76f1f5b9f尚学堂(视频):https://www.bilibili.com/video/BV1ct411n7oG?from=search&seid=8894375112641202520文档:https://www.sxt.cn/Java_jQuery_in_action/History原创 2020-07-27 10:45:20 · 95 阅读 · 0 评论