
java笔记本
文章平均质量分 60
码农记事本
这个作者很懒,什么都没留下…
展开
-
gradle构建springboot多模块项目配置
【代码】gradle构建springboot多模块项目配置。原创 2023-02-07 09:37:37 · 1367 阅读 · 0 评论 -
sprinboot jpa实体支持mysql json字段配置
类型也可以换成自字义实体,并实现。原创 2023-01-07 13:39:28 · 1625 阅读 · 0 评论 -
redis实现API限流
思路自定义注解定义限流片段时间和最大请求个数拦截器拦截所有请求,如果发现使用了限流注解的API,查看redis里是否记录了该接口的请求次数,如果有,就判断没有超过自定义注解的最大阈值,达到阈值就拦截该请求,否则请求次数加1并放行使用到redis key自过过期方法,自增量方法springboot示例代码注解@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface Access.原创 2022-02-25 09:12:55 · 826 阅读 · 0 评论 -
vue+springboot实现大文件分片上传、断点续传
一、前言前一时间没事自己做了个个人网盘小项目,中间遇到大文件分片上传的问题,第一次解决还是比较坎坷,这里记录下我的实现原理及过程。效果图:二、思路VUE前端选择要上传的文件计算选择文件的md5信息调用文件创建接口将文件名、大小、md5等信息传给后台,用来校验文件是否已经上传,如果之前已经上传完成过,这里就停止了如果没上传将选择的文件按提前设定好大小分片得到分反的文件,循环依次调用 文件上传接口上传,片段文件上传成功后,接口会返回已经上传的大小根据已经传文件的大小来判断是否上传成原创 2021-02-05 14:30:17 · 3848 阅读 · 4 评论 -
springboot集成knife4j2.0.8实现自定义md文档及权限控制
一、原由最近在做一个小项目的开入API,文档是用vuepress写的静态md并发布。因为是项目刚起步,对接的接口也会经常改动,每次改动都要修改文档感觉太麻烦,就想到用knife4j来代替。但外部使用的接口和内部使用不一样,需要一些接入引导说明,比如API接入步骤、鉴权说明…等重新翻了knife4j的文档发现2.x版本自2.0.7之后可以使用自定义文档的功能,自定义文档正好也是我喜欢的Markdown文件,再加一个权限验证,目前是很好的解决了我的问题。效果:二、开始knife4j2.x版如果想实原创 2021-01-28 15:50:05 · 3436 阅读 · 0 评论 -
java+vue跨域每次请求获取不同session问题
描述vue在做登录的时候,明明已经把用户数据存入了httpsession中,但在后面的请求拦截中发现获取的session属性size为0断点发现登录用的session和拦截得到的session不是一个id,也就是说不是同一个session查资源得到解决办法java端import org.springframework.stereotype.Component;import javax.servlet.*;import javax.servlet.http.HttpServletRequest原创 2020-12-23 10:32:09 · 600 阅读 · 0 评论 -
优雅的使用JdbcTemplate
一、前言springboot项目中我个人喜欢用JPA,做表的保存或更新非常方便,对于简单的单表查询更是做到了面向对象的思想。但对于前端的列表展示查询,大多数据都是多表关联且还是动态条件,如果使用JPA到处理的话会有点吃力,且出问题不好排查,所以我用了JdbcTemplate替代了这个工作。至于我为什么不用mybaits、tk mybatis、mybatisplus等,是因为我不喜欢和xml打交道,且大多数据前端列表查询是不可复用的,用原生SQL直接上更有效率上的优势。二、用法查询列表数据@Ap原创 2020-12-09 10:04:19 · 514 阅读 · 0 评论 -
docker布署springcloud无法使用feign通信
方法一eureka服务端设置eureka: server: #关闭保护机制,默认true enable-self-preservation: false # 剔除失效服务间隔,默认60000 eviction-interval-timer-in-ms: 3000 client: healthcheck: enabled: true fetch-registry: false register-with-eureka: fal.原创 2020-12-08 08:59:18 · 643 阅读 · 0 评论 -
Springboot集成graylog
graylog配置springboot配置依赖compile group: 'de.siegmar', name: 'logback-gelf', version: '2.0.0'logback.xml<configuration> <!-- 配置控制台的输出日志 --> <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender"> <原创 2020-12-07 12:18:31 · 405 阅读 · 0 评论 -
xxl-job不兼容graylog解决方案
使用项目集成的有graylog且为upd传输日志,会出现不兼通的情况,现象为:执行一次定时任务后,之后就就不会有日志再推入graylog中。我的解决办法是将xxl-job-core源码中XxlJobExecutor类的线程中断oldJobThread.interrupt()改为停止oldJobThread.stop();,然后打成jar包引用,替换原来的依赖虽然方法是过时了,但问题是解决了,也不影响原功能。compile fileTree(include: ['*.jar'], dir: 'l原创 2020-12-05 10:50:30 · 309 阅读 · 1 评论 -
Springboot集成swagger和knife
前言knife4j是在swagger的基本上做做了一次封装,主要体现在ui表现,所有在使用前必须先搭建好swagger2,其实是swagger和knife都可以访问,至于哪个好用全看个人!swagger2依赖包compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2'compile group: 'io.springfox', name: 'springfox-swagger-ui', version:原创 2020-12-05 10:09:38 · 1251 阅读 · 0 评论 -
Springboot集成xxl-Job
一、前言xxl-job一个轻量级的分布的调度中间件,详情介绍自己到官网看:https://www.xuxueli.com/xxl-job/二、客户端(执行器)引入依赖compile group: 'com.xuxueli', name: 'xxl-job-core', version: '2.2.0'配置文件加入如下信息:xxl: job: accessToken: admin: addresses: 'http://127.0.0.1:8080/xxl-job原创 2020-12-04 13:09:07 · 629 阅读 · 0 评论 -
Springboot中redisTemplate乱码或json转换问题
问题1用RedisTemplate存入map值的时候,用rdm可视化打开,看到的是转码之后的数据,如图:存入的方法为:public boolean hmset(String key, Map<String, Object> map) { try { redisTemplate.opsForHash().putAll(key, map); return true; } catch (Exception e) { log.err原创 2020-12-03 20:17:21 · 904 阅读 · 0 评论 -
Springcloud之gateway配置及swagger集成
前言关于引入gateway的好处我网上找了下:性能:API高可用,负载均衡,容错机制。安全:权限身份认证、脱敏,流量清洗,后端签名(保证全链路可信调用),黑名单(非法调用的限制)。日志:日志记录(spainid,traceid)一旦涉及分布式,全链路跟踪必不可少。缓存:数据缓存。监控:记录请求响应数据,api耗时分析,性能监控。限流:流量控制,错峰流控,可以定义多种限流规则。灰度:线上灰度部署,可以减小风险。路由:动态路由规则。配置依赖compile('org.springfra原创 2020-12-03 20:16:12 · 2512 阅读 · 0 评论 -
Gradle上传依赖到私服(nexus)
子模块配置buildscript { repositories { mavenLocal() maven { url "http://maven.aliyun.com/nexus/content/groups/public/" } maven { url "${nexusUrl}" credentials { username "${username}" password原创 2020-12-02 09:52:45 · 1092 阅读 · 1 评论 -
Java获取不到请求的真实IP
问题最近在写博客浏览量的时候,设计了这么一个逻辑:同一个IP浏览一遍文章,5分钟内不刷新次数。就需要在服务器端得到用户的真实IP,我代码是这样写的(从网上找的方法):public static String getRealIp(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); String unknown = "unknown"; if (ip == null || ip.length()原创 2020-12-02 09:50:19 · 1245 阅读 · 1 评论 -
Java对象操作工具
对象复制(反射法)public static void copyProp(Object from, Object to, String... filterProp) { HashSet<String> filterSet = new HashSet<String>(Arrays.asList(filterProp)); Class<?> fromc = from.getClass(); Class<?> to原创 2020-12-02 09:49:08 · 119 阅读 · 0 评论 -
linux用docker安装redis
前言docker安装redis服务比较简单,一行语句就搞定了,我平时都是这样布单节点服务。容器启动docker run -d -p 6379:6379 -v /opt/redis-data:/data -d --name redis-server redis:3.2 --appendonly yes --requirepass "root"参数说明-p 6379:6379端口映射-v /opt/redis-data:/data挂载容器数据磁盘--name red原创 2020-11-30 11:25:15 · 165 阅读 · 0 评论 -
mac使用命令切换jdk版本配置
前言作为java开发你的是否已经在电脑装了多个版本的JDK呢?对于mac机器而言,有更方便的切换方式,只需要简单的配置profile文件,就可以实现终端命令切换JDK版本,非常方便!开始1.查询当前的java的安装版本cd /Library/Java/JavaVirtualMachinesls2.配置profile打开profilevim ~/.bash_profile配置切换变量export JAVA_11_HOME=/Library/Java/JavaVirtualMachi原创 2020-11-23 12:11:02 · 600 阅读 · 0 评论 -
SQL直接生成实体属性,简单粗暴型
在java开发中,不可避免的要碰到根据表生成对应的实体,这个过程是比较机器且繁琐的,我也用过一些逆向工程的工具,比如IDEA自带的生成实体,还有网上开源的工具,用起来也是可以的。我现在开发用的持久层要不是spring-data-jpa要不就是tk-mybatis,而这两个框架根本都由注解完成数据的CRUD的,这里你只要生成一个实体加上相应的注解就行。就单单生成实体而言,每次用第...原创 2020-03-31 14:48:37 · 844 阅读 · 0 评论 -
nginx代理post请求变成get了
今天和队友测试小程序,他说我的接口不能用post调用,我的接口地址是https://abc.com/api/xxx,结果他一直用http调用,没有用https,导致nginx转发的时候post变成get了,被坑了一把,这是记下给后面的人参考下坑!...原创 2019-11-19 14:56:19 · 5362 阅读 · 0 评论 -
java集合操作-Lambda表达式
需要引包: compile group: 'com.google.guava', name: 'guava', version: '28.1-jre'package com.zhuzhuxia.demo;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;import com....原创 2019-10-31 11:26:10 · 425 阅读 · 0 评论 -
通过使用第三方开源jar包sigar.jar我们可以获得本地的信息
1.下载sigar.jarsigar官方主页sigar-1.6.4.zip2.按照主页上的说明解压包后将相应的文件copy到java路径。比如windows32位操作系统需要将lib中sigar-x86-winnt.dll文件拷贝到java SDK目录的bin内参考官方主页上的配置项。 FileLanguageDe转载 2015-05-26 16:58:23 · 1005 阅读 · 0 评论 -
kettle生成ktr文件_数据库密码的加密与解密
private static final int RADIX = 16; private static final String SEED = "0933910847463829827159347601486730416058"; public static final String PASSWORD_ENCRYPTED_PREFIX = "Encrypted "; publ转载 2015-05-26 17:07:12 · 7013 阅读 · 2 评论 -
获得文件的MD5码
获得文件的MD5码翻译 2015-05-28 14:59:45 · 524 阅读 · 0 评论 -
字符串加密与解密
字符串加密与解密=====================================输出结果=====================================66fe21f5f9e6e10771128e627c9977f664896be4d9afae5143c0f48570b332b15e4f26949a28b1764bdbde4e58b2ba8e我是中国人,我爱自己的祖国!========================================================翻译 2015-05-28 15:24:40 · 559 阅读 · 0 评论 -
基于springmvc搭建REST
参考文章:https://www.cnblogs.com/Mr-kevin/p/5806928.htmljar包:链接:https://pan.baidu.com/s/1vVcZeShpe85I12BzdcgTsA 密码:r4mrapplicationRest.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http:...原创 2018-05-21 17:52:21 · 303 阅读 · 0 评论 -
java swing
1.选项卡package example;import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;import javax.swing.ButtonGroup;import javax.swing.ImageIcon...原创 2018-05-21 18:02:11 · 804 阅读 · 0 评论 -
HTTP调用
POST通用 package com.hongware.uitl;import java.io.BufferedInputStream;import java.io.ByteArrayOutputStream;import java.io.PrintWriter;import java.net.HttpURLConnection;import java.net.URL;im...原创 2019-01-07 15:21:32 · 252 阅读 · 0 评论 -
java总结一:JSON转对象
前言前一段时间接手了一个公司比较老的项目,调用别别人接口返回的都是json字串,传统做法是将json的属性一个一个get出来,然后再set到实体对象或视图对象中,这样一个一个get、set实在太烦了,分明是体力活,于是从网上找了下资料,有方法可以将json自动映射到对象上,感觉比较不错。这里做个笔记,也给碰到类似问题的人一个参考,如有错误地方或是有更好的方法,欢迎指正!测试用到的ja...原创 2019-06-13 10:11:15 · 671 阅读 · 0 评论 -
springboot动态数据源之配置数据库
前言前一段时间要把公司的一老项目重构,那项目的逻辑比较简单,就是从n个库里的订单、商品、退款单等数据按照一定的关系抽取到m个mysql集群商家库里,所有商家库都是一样的结构,所以项目就涉及到多数据源。之前作的是hibernate3.2,用动态创建connection,然后用下面的试打开不用的session连接,然后操作数据: @Autowired public Hibe......原创 2019-10-31 11:23:35 · 6896 阅读 · 12 评论 -
PDF转TXT格式
package test;import java.io.File;import java.io.FileOutputStream;import java.io.OutputStreamWriter;import java.io.Writer;import java.net.MalformedURLException;import java.net.URL;原创 2015-05-26 17:13:09 · 755 阅读 · 0 评论