我爱java java爱我
java
豪豪君在此
这个作者很懒,什么都没留下…
展开
-
Spring配置文件application.yml加密
总体来说需要使用jasypt分以下几步选择加密算法将敏感信息使用加密算法加密在配置中使用ENC关机字标记需要解密的敏感信息在启动时/配置时/环境变量中输入公钥用于使用中的解密具体配置可参照以下这两个链接中的文章https://medium.com/@mail2rajeevshukla/hiding-encrypting-database-password-in-the-application-properties-34d59fe104ebhttps://www.geeksforgeeks原创 2021-05-11 15:02:56 · 320 阅读 · 0 评论 -
gradle打包fat jar记录
使用gradle项目打包jar包的时候如果不使用fat jar的打包模式会造成dependency没有全部被打在一个包中的结果譬如在denpendency的情况为如下的情况时dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' compile fileTree(dir:'libs',include:['*.jar']) implementation group: 'commons-v原创 2021-05-10 10:46:44 · 1986 阅读 · 0 评论 -
Spring MVC接受formdata
在日常的工作中有时候我们会需要上传一些文件到服务器。这个时候的接口接受的数据可以使用MultipartHttpServletRequest在requestBody中可以定义string和file类型的入参 @RequestMapping( value = "test", produces = { "application/json" }, consumes = { "multipart/form-data" },原创 2021-04-16 15:03:33 · 3082 阅读 · 1 评论 -
javax.websocket 使用指南
除了https://blog.csdn.net/u011556070/article/details/105844786 的建立ws server方法之外这里在收集一种JSR356的方法javax.websocket需要注意在这种方法中使用spring的bean会需要额外的工作@Configurationpublic class WebConfig { @Bean public ServerEndpointExporter serverEndpointExporter() {原创 2021-03-05 16:42:37 · 2399 阅读 · 2 评论 -
Spring支持跨域
服务端的CORS是一个经典的需要注意的问题。具体CORS原理网上有很多资料不多重复,可参考https://en.wikipedia.org/wiki/Cross-origin_resource_sharing在spring中允许跨域可参考以下代码。下述代码允许所有方法,所有接口被所有origins访问,如果需要改方法和origins可以在参数中修改@Configurationpublic class WebConfig implements WebMvcConfigurer { @Ove原创 2021-03-03 14:53:54 · 466 阅读 · 2 评论 -
调查java中高cpu使用率的进程
两种方法1.最简单的方式是使用图形界面java visualvm 简单快捷2. 使用jstack 配合top和htop等指令具体可参考https://backstage.forgerock.com/knowledge/kb/article/a39551500原创 2021-02-04 11:38:59 · 71 阅读 · 0 评论 -
Java 多线程工作之CompletableFuture.runAsync案例
在实际的工作中,我们会需要执行一些无返回的多线程任务以改善系统的运行效率。接受kafka消息并对这些消息进行处理是一个典型案例,如果这里使用多线程的处理方式可以大大提高系统的处理性能。以下就对CompletableFuture.runAsync的使用方式做一个案例展示先定义一个处理的任务,这里可能是一个Runnable也可能是一个Callable,区别就是在于有无返回值import lombok.extern.slf4j.Slf4j;/** * @author yhgu * @date 20原创 2021-01-26 11:58:17 · 30492 阅读 · 3 评论 -
log输出等级小技巧
使用ch.qos.logback可调整log的输出等级可以方便线上生产环境输出debug级别的日志定位问题在线上环境稳定的时候又可以调整成info等级避免日志杂乱具体做法示例如下package log.test;import ch.qos.logback.classic.Level;import ch.qos.logback.classic.Logger;import ch.qos.logback.classic.LoggerContext;import lombok.extern.slf原创 2020-12-25 14:10:28 · 419 阅读 · 0 评论 -
java 获取resource底下文件的字符内容
避免每次都要查 先记在这里参照https://stackoverflow.com/questions/17351043/how-to-get-absolute-path-to-file-in-resources-folder-of-your-projecthttps://stackoverflow.com/questions/326390/how-do-i-create-a-java-string-from-the-contents-of-a-file```javaURL res = ge原创 2020-12-17 16:20:21 · 557 阅读 · 0 评论 -
探究redis过期机制
redis中有关eviction的几个参数:maxmemory-policy,maxmemory,maxmemory-samples和hz上面这几个参数的具体解释可以参见官网但是redis的expiration其实是假过期, 只有在被读的时候才会去看expiration time是否满足,如满足再删除参见https://stackoverflow.com/questions/36172745/how-does-redis-expire-keysNow, the expiration ...原创 2020-12-08 17:52:01 · 245 阅读 · 0 评论 -
Spring Mongo分页获取方式(附基础MongoTemplate使用案例)
在向应用获取数据的接口通常会面临的一个问题是,获取的数据量级过大。前端无法全部展示。譬如一个日志系统中,前端需要查询一些日志信息就会遇到这样的问题。这个时候可以使用分页的方式,既方便前端页面展示,又避免回复数据的大小过大。下面贴一个简单的使用案例。首先在我们的service层根据controller层传进来pageSize及currentPage做一个PageRequest PageRequest pageRequest = PageRequest .原创 2020-09-23 14:52:00 · 713 阅读 · 0 评论 -
Java gradle项目中日常使用swagger总结
总结一下日常使用的swagger这个东西可是java开发接口的利器,不仅可以根据文档生成可视化网页(swagger-ui),更可以生成相应的接口代码(swagger-codegen)主要是三个文件起作用 上图xxxx.yaml: 定义接口的swagger文档当然根据需求对于swagger oneapi的定义有很多技巧,详细可以参见官网https://swagger.io/docs/specification/about/openapi: 3.0.0info: title: Sample原创 2020-09-12 11:56:01 · 1369 阅读 · 0 评论 -
图片压缩
图片压缩主要可以使用ImageWriter这个类 byte[] input = Base64.getDecoder().decode(sceneImageBase64); InputStream myInputStream = new ByteArrayInputStream(input); BufferedImage img = ImageIO.read(myInputStream); ByteArrayOutputStream outSt原创 2020-06-12 19:46:30 · 190 阅读 · 0 评论 -
多线程工作之Countdown latch样例
package com.example.demo; import lombok.extern.slf4j.Slf4j; import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import j...原创 2020-04-29 17:34:48 · 118 阅读 · 0 评论 -
多线程工作之Completable Future样例
Integer threadNum1 = 100;Integer threadNum2 = 100;ExecutorService taskExecutor1 = Executors.newFixedThreadPool(threadNum1);ExecutorService taskExecutor2 = Executors.newFixedThreadPool(threadNum2);...原创 2020-04-29 17:34:07 · 171 阅读 · 0 评论 -
Spring Websocket使用指南
Spring Websocket使用指南首先需要一个类去实现WebSocketConfigurer, 并且指定ws的地址/*** Represents the web socket configuration.*/@Configuration@EnableWebSocketpublic class WebSocketConfig implements WebSocketConfi...原创 2020-04-29 17:32:29 · 314 阅读 · 0 评论 -
令人欢愉的AOP
先介绍一下不用annotation的方式@Slf4j@Aspect@Componentpublic class RecorderAspect { @Before("execution(* com.a.b.controller.*.methodname*())") public void recordAdvice() { log.info("LOG FROM...原创 2020-04-29 16:56:29 · 119 阅读 · 0 评论 -
JAVA 版本升级
JAVA 版本升级https://stackoverflow.com/questions/55205935/java-version-shows-10-but-java-11-is-installedRemove openjdk 11:sudo update-alternatives --remove "java" "/usr/lib/jvm/java-11-openjdk-amd64/bi...原创 2020-04-29 11:52:15 · 1447 阅读 · 0 评论