Java
文章平均质量分 63
java
瑶山
人的一生 必须要学会做一件事 而且要做到透彻 才不枉此生...博客持续更新,欢迎点赞与交流
展开
-
如何使用线上页面调试本地接口?(Nginx反向代理到本地, 并使用原的cookie)
但是授权登录是另外一个服务,需要走测试环境的接口,只用IP的话就不太满足,就想着使用nginx代理下。替换为自己的域名和实际的后端服务器地址。另外,还可以根据需要进行其他配置调整,以满足需求。是常见的头字段,用于指定目标服务器的Host、真实的IP地址和代理服务器链路上的IP地址。在nginx中设置反向代理并且使用原来的Cookie,通过配置。是一个变量,它包含了客户端发送的所有Cookie信息。该指令用于设置请求头中的某个字段。指令来设置请求头中的各个字段。,首先改了本地的hosts文件,原创 2024-01-25 15:54:20 · 755 阅读 · 0 评论 -
Java 反射设置List属性
在上面的代码中,我们首先创建了一个 Person 对象,然后获取了该对象的 Class 对象。接着,我们通过调用 Class 对象的 getDeclaredField() 方法获取了 names 属性对应的 Field 对象,并将属性的可访问性设置为 true,以确保我们可以访问该属性。最后,我们通过调用 Field 对象的 set() 方法将新的 List 对象设置为 names 属性的值。在输出结果中可以看到,我们已经成功地设置了 names 属性的值,并且成功地访问了该属性的值。原创 2023-11-14 10:06:55 · 1027 阅读 · 0 评论 -
Idea远程调试Linux服务器(和docker容器)中的Java服务,实测可用
1,idea远程调试linux上的java服务2, idea远程调试linux上docker中的java服务原创 2023-09-23 21:30:00 · 1040 阅读 · 1 评论 -
Window 下载安装RocketMQ
因为是自己本机测试所以装一个window版本。原创 2023-03-26 22:06:27 · 658 阅读 · 1 评论 -
Windows下载安装Grafana
Grafana 是一个可视化工具,简单点说就是用来展示数据的。它和Zabbix、Prometheus 有本质区别,在于它不能解决监控问题,仅用于展示。也就是说,在监控领域,Grafana 需要配合 Zabbix、Prometheus 等工具一起使用,以获取数据源。简单来说, 配套Grafana 使用可以呈现出非常多样化的图表配置。原创 2023-03-04 15:22:06 · 1988 阅读 · 0 评论 -
SpringBoot项目监控-Prometheus+Grafana
Prometheus是一个开源的系统监控和报警系统,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上万台规模的集群。原创 2023-03-04 15:36:28 · 1800 阅读 · 0 评论 -
系统监控 Windows下载安装Prometheus
只需要下载对应平台的二进制包,解压并且添加基本的配置即可正常启动 Prometheus Server。,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上万台规模的集群。global 配置块:此片段指定的是 prometheus 的全局配置, 比如采集间隔,抓取超时时间等。scrape_interval:拉取数据的时间间隔,默认为 1 分钟默认继承 global 值。scrape_timeout: 抓取超时时间,默认继承 global 值。原创 2023-02-27 09:57:36 · 1880 阅读 · 0 评论 -
自动找Bug/插件-代码静态检查findbugs-idea安装以及使用
idea插件/提升效率/提高代码质量/减少bug...Findbugs是一个静态分析工具,它检查类或者JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。Findbugs自带检测器,其中有60余种Bad practice,80余种Correctness,1种 Internationalization,12种Malicious code vulnerability,27种Multithreaded correctness,23种Performance,43种Dodgy。原创 2023-02-07 20:14:42 · 8902 阅读 · 0 评论 -
简化开发小技巧-Mybatis-Plus的使用和常用操作
简化开发小技巧-Mybatis-Plus的使用和常用操作简化开发、提高效率, 不用写sql也能crud。快速使用常用操作:或操作查询/多条件或查询/更新字段为null/实体类有数据库没有字段忽略/LambdaQueryWrapper原创 2023-01-03 23:45:00 · 2320 阅读 · 0 评论 -
SpringBoot 异步任务-Guava 中EventBus
目录EventBus事件总线模式pom简单使用创建消息接受类测试类:输出结果:结论:结合Spring使用注入BeanMyEventListener消息基类创建监听发送消息项目启动/测试扩展多线程观察者模式和发布订阅模式的区别原创 2022-11-08 23:10:24 · 3011 阅读 · 0 评论 -
Bug记录-freemarker渲染错误Uncaught SyntaxError: Invalid or unexpected token
目录freemarker中js里面取字符串,因为换行导致的报错解决:其他扩展文档freemarker中js里面取字符串,因为换行导致的报错var data = '${(baseDataDO.content)!}';浏览器f12控制台解决:用浅薄的前端知识尝试多种方法后, 才想到FreeMarker是不是有单独的解决方案FreeMarker内置命令(字符串命令) js_string,JavaScript语言规则的字符串转义:var data =...原创 2022-04-11 20:55:49 · 800 阅读 · 1 评论 -
mybatis-plus 自带QueryWrapper自定义sql实现复杂查询
目录常用写法自定义sql补充: 查询条件中使用函数apply补充: 末尾sql追加last补充:排序自定义sql返回结果是一个list, 里面的map key是查询的属性名, value是参数值。伪代码示意:list[0] map[0] (sex=1) map[1] (num=5) map[2] (sexStr=男)list[1] map[0] (sex=1) map[1] (num=5) map[2]原创 2022-03-11 21:44:31 · 37040 阅读 · 3 评论 -
富文本转文本-java过滤字符串html标签的几种方案
场景公告内容是保存的是富文本, 有个地方要展示缩略内容, 过滤下标签方案方案1import java.io.*;import javax.swing.text.html.HTMLEditorKit;import javax.swing.text.html.parser.ParserDelegator;/** * @author admin * @version 1.0 * @date 2022/01/12 09:57 */public class Test extend原创 2022-01-14 01:00:00 · 3583 阅读 · 1 评论 -
转个json还报错? 被转义的json字符串解析
场景fastjson.JSONException:field null expect '[', but string, pos 4, line 1......使用json把一个实体类列表转字符串,输出后双引号被转义, json内容如下, 转回对象的时候报了JSONException"[{\"pCode\":\"1\",\"pValue\":\"大专\",\"code\":\"01\",\"value\":\"大大\"},{\"pCode\":\"2\",\"pValue\":\"本科\",\.原创 2021-12-28 09:01:40 · 8938 阅读 · 2 评论 -
java反射获取注解上的参数值
场景最近写一个文档, 用到了一个导出类的属性释义, 但这些释义定义在导出类属性上的注解上, 如下几十个字段好几个类, 一个个敲是自然万万不可,复制也太慢,最好是写个代码一锅端!方案此处用到了反射, 还有java.lang下的两个方法java.lang.Package.isAnnotationPresent(Class<? extends Annotation> annotationClass) 如果指定类型的注释存在于此元素上,方法返回true j...原创 2021-12-09 23:45:00 · 8490 阅读 · 0 评论 -
SpringBoot 异步任务-使用@Async注解
常见的高并发方案异步,削峰填谷 缓存,缓存相对稳定高频热点数据 并行,缩短业务响应时间 优化你的业务代码 限流和降级,保护你的核心服务在高并发下能正常工作异步场景关联业务的执行结果对主线程的返回结果没有直接影响或无影响。此时,能让主线程更顺畅的执行,并给客户带来好的客户体验,我们一般会将该关联业务做异步处理或类似的处理(如:消息队列)@Async简介该工具可以为你的应用提供方便快捷的异步化执行业务的能力,只需要添加一个注解@Async既可以使你的业务异步执行,这里的异步执行,指的是原创 2021-09-03 18:00:34 · 6901 阅读 · 0 评论 -
idea配置spring boot热部署
实验玩一下热部署,发现没反应idea还需要设置一下,保存后 可以自动重启(貌似也没啥用)idea配置添加pom依赖 <!--devtools热部署--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artif.原创 2021-08-12 11:22:40 · 309 阅读 · 0 评论 -
微服务二、SpringCloudAlibaba(2021版本)+Nacos+Sentinel流量安全控制+OpenFeign+Gateway以及问题解决
上一篇:微服务一、SpringCloudAlibaba(2021版本)+Nacos-从零开始、安装、配置、使用和父子项目搭建继续集成-Sentinel流量安全控制github spring-cloud-alibaba Sentinel文档Alibaba Sentinel 是一款高性能且轻量级的流量控制、熔断降级解决方案。是面向分布式服务架构的高可用流量控制组件。分为两个部分:核心库(Java 客户端)不依赖任何框架/库,能够运行于所有 Java 运行时环境,同时对 Dubbo / ...原创 2021-08-05 13:50:24 · 2577 阅读 · 0 评论 -
微服务一、SpringCloudAlibaba(2021版本)+Nacos-从零开始、安装、配置、使用和父子项目搭建
之前有做过一段时间的SpringCloudEureka的项目,但是Eureka开源版本停止更新有一段时间了,所以抽空扒了扒替代的。停止更新主要是对Eureka 2.0而言的,Spring Cloud Netflix中一直使用的都是1.x,所以跟目前用户其实没多大关系。但是,Eureka将来更多提升是不太会有了。所以,如果希望注册中心有更多强大功能的话,需要另辟蹊径,比如:Spring Cloud Alibaba下的Nacosnacos是阿里巴巴研发的一个集注册中心与配置中心于一体的管理平台,.原创 2021-07-29 14:26:31 · 5221 阅读 · 0 评论 -
阿里巴巴Java 开发手册泰山版的阅读学习与自查
不满足于平时的crud,也想码出高效,码出质量,通过手册的阅读学习记录反省下自身代码习惯等方面的不良习惯Java 开发手册泰山版下载地址:https://developer.aliyun.com/topic/java2020?utm_content=g_1000113424如果变量的初值会被覆盖,就没有必要给变量赋初值// List<UserDO> userList ...原创 2020-04-23 14:05:02 · 588 阅读 · 0 评论 -
Java不固定个数传参
python中 *args代表可变参数列表,**kwargs代表可变关键字参数的字典好奇去看了看java的可变参数,J2SE 1.5提供了“Varargs”机制,可以定义能和多个实参相匹配的形参Varargs:"variable number of arguments" public static void main(String[] args) { test("1","2","3"); } public static void test(Stri...原创 2021-07-01 13:14:18 · 2218 阅读 · 0 评论 -
java - StringJoiner类
目录成员变量公开方法前后缀拼接字符串拼接StringJoiner空值默认输出[],设置空值在不需要指定“开头”和“结尾”的时候,用String.join()更方便StringJoiner是Java8出的一个类,用于构造由分隔符分隔的字符序列,并可选择性地从提供的前缀开始和以提供的后缀结尾。省的我们开发人员再次通过StringBuffer或者StingBuilder拼接。成员变量prefix 拼接后的字符串前缀delimiter 拼接时的字符串分隔符suffix ...原创 2021-04-29 17:40:11 · 1683 阅读 · 0 评论 -
IDEA自动生成Get方法的模板修改-自动处理String null 和去除首尾空格
添加MyGetTemplate内容#if($field.modifierStatic)static ###end$field.type ###set($name = $StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project))))#if ($field.boolean && $f...原创 2021-04-29 11:49:06 · 635 阅读 · 0 评论 -
Java手机号传输加密-中间4位替换成*两种方式
Java手机号中间4位替换成*两种方式 public static void main(String[] args) { String phone = "18830006111"; System.out.println(phone.substring(0, 3) + "****" + phone.substring(7)); System.out.println(phone.replaceAll("(\\d{3})\\d{4}(\\d{4})"..原创 2021-04-29 10:12:19 · 3492 阅读 · 0 评论 -
Redis-redisson工具类使用和常用的锁功能
Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。pom引入<dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <versi原创 2021-04-21 11:27:14 · 5438 阅读 · 0 评论 -
Bug记录-Invalid character found in the request target. The valid characters are defined ...
Springboot版本升级2.0以上后错误信息:Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986原因: SpringBoot 2.0.0 以上都采用内置tomcat8.0以上版本,而tomcat8.0以上版本遵从RFC规范添加了对Url的特殊字符的限制,url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~四个特殊...原创 2021-02-01 13:44:06 · 646 阅读 · 0 评论 -
Bug记录-Request header field token is not allowed by Access-Control-Allow-Headers...
场景:请求头设置token后页面报错:has been blocked by CORS policy:Request header field token is not allowed by Access-Control-Allow-Headers in preflight response.并且后台跨域相关已配置:Access-Control-Allow-Origin: *解决:需要后端在响应头的 Access-Control-Allow-Headers 字段设置允许前端请求时带有的字段.原创 2021-02-02 16:47:05 · 2078 阅读 · 0 评论 -
knife4j-Swagger生成Api文档的增强解决方案
knife4j为 Java MVC 框架生成 Api 文档,是为Java MVC框架集成Swagger生成Api文档的增强解决方案,,前身是swagger-bootstrap-ui,取名kni4j是希望她能像一把匕首一样小巧,轻量,并且功能强悍!更名后主要专注的方面:前后端Java代码以及前端Ui模块进行分离,在微服务架构下使用更加灵活 提供专注于Swagger的增强解决方案,不同于只是改善增强前端Ui部分特点:简洁:基于左右菜单式的布局方式,是更符合国人的操作习惯吧.文档更清晰....原创 2021-02-01 16:27:42 · 1855 阅读 · 2 评论 -
Bug记录-WARNING: An illegal reflective access operation has occurred
项目启动黄牌警告:WARNING: An illegal reflective access operation has occurredWARNING: Illegal reflective access by org.apache.ibatis.reflection.Reflector (file:/D:/szw/repository/org/mybatis/mybatis/3.4.2/mybatis-3.4.2.jar) to method java.lang.Object.finalize(.原创 2021-01-29 18:02:52 · 3193 阅读 · 1 评论 -
Bug记录-OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot ...
IDEA启动SpingBoot项目时警告:OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended搜索async,选择Async Stack Traces,将右侧面板中Instrumenting agent (requires debugger restart)前面的对勾去掉,保存设置..原创 2021-01-29 17:56:15 · 857 阅读 · 0 评论 -
SpringBoot 各个版本yml配置MultipartFile设置指定文件上传大小
Spring Boot 1.3.x或者之前multipart.maxFileSize=100Mb # 单文件大小限制multipart.maxRequestSize=1000Mb # 总上传大小限制Spring Boot 1.4.x and 1.5.xspring.http.multipart.maxFileSize=100Mbspring.http.multipart.maxRequestSize=1000MbSpring Boot 2.0.0.RELEASEspring..原创 2021-01-29 10:28:26 · 7789 阅读 · 4 评论 -
Bug记录-jar包冲突解决!,IDEA 解决 jar 包冲突
***************************APPLICATION FAILED TO START***************************Description:An attempt was made to call the method org.springframework.plugin.core.PluginRegistry.getPluginFor(Ljava/lang/Object;)Ljava/util/Optional; but it does not e.原创 2021-01-27 20:17:21 · 2152 阅读 · 0 评论 -
ip获取与项目负载部署两个服务器,其中一个不执行定时任务
最简单的方法就是其他服务器上的定时任务干点,只在一个服务器上执行定时任务修改服务器配置:message.task.enable=falsemessage.send.enable=true或者直接注释掉相关代码另一种通过代码控制,首先获取到服务器的ip,再定时任务执行前判断: String hostIp = HostUtil.getHostIp(); if (StringUtils.equals("192.168.1.原创 2021-01-25 15:31:35 · 385 阅读 · 0 评论 -
Bug记录-Cannot get Jedis connection
Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool常见的异常:Redis没有启动 防火墙没有关闭 调整JedisPoolConfig中maxActive的值原创 2021-01-13 13:55:51 · 1257 阅读 · 0 评论 -
Java后台接收前端数据的三种请求方式-url、form-data与application/json
其实还有一种请求方式:HttpServerletRequest.getParameter("name")原创 2021-01-13 13:51:34 · 31229 阅读 · 14 评论 -
Linux命令-Linux生产环境故障排查实用命令
linux上查看所有java应用的内存占用情况top -b -n 1 | grep java| awk '{print "PID:"$1",RES:"$6",CPU percent:"$9"%","mem percent:"$10"%"}'top命令:PID:进程的ID USER:进程所有者 PR:进程的优先级别,越小越优先被执行 NInice:值 VIRT:进程占用的虚拟内存 RES:进程占用的物理内存 SHR:进程使用的共享内存 S:进程的状态。S表示休眠,R表示..原创 2021-01-12 13:32:12 · 372 阅读 · 1 评论 -
BUG记录-java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names
java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names2021-01-04 10:53:03.333 INFO 29459 --- [nio-8068-exec-9] o.apache.coyote.http11.Http11Processor : Error parsing HTTP request header Note: further occurren..原创 2021-01-06 15:41:47 · 1385 阅读 · 0 评论 -
java进制转换、字符串与16进制互转/数字进制互转
目录十进制转其他进制其他进制数字转十进制字符串与16进制相互转换十进制转其他进制 /** * 十进制转其他进制 */ public static String conversion(Integer value, int sys) { String code = ""; switch (sys) { case 2: code = Integer.toBinaryStr原创 2021-01-06 13:44:29 · 1403 阅读 · 0 评论 -
java关键字volatile用法、原理、与保证原子性方案(代码示例)
用法:volatile通常被比喻成”轻量级的synchronized“,也是Java并发编程中比较重要的一个关键字。和synchronized不同,volatile是一个变量修饰符,只能用来修饰变量。无法修饰方法及代码块等。volatile的用法比较简单,只需要在声明一个可能被多线程同时访问的变量时,使用volatile修饰就可以了。优点:volatile可以保证可见性,有序性,但是不能保证原子性可见性是指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修.原创 2020-12-21 20:27:38 · 663 阅读 · 0 评论 -
Java 读取src目录下和网络URL路径下的json文件
/** * 读取json文件,返回json串 * @param fileName * @return */ private static String readJsonFile(String fileName) { String jsonStr = ""; try { File jsonFile = ResourceUtils.getFile(fileName); Fil...原创 2020-12-19 14:06:27 · 549 阅读 · 0 评论