java

Java 多线程并发FutureTask

2022-06-28
本文基于最新的 OpenJDK 代码,预计发行版本为 19 . Java 的多线程机制本质上能够完成两件事情,异步计算和并发.并发问题通过解决线程安全的一系列 API 来解决:而异步计算,常见的使用是 Runnable 和 Callable 配合线程使用. FutureTask 是基于 Runnable 实现的一个可取消的异步调用 API . 基本使用 Future 代表了异步计算的结果,通过 ExecutorService 的 Future<?> submit(Runnable task)

java如何把逗号分隔的String字符串转int集合

2022-06-28
目录 把逗号分隔的String字符串转int集合 集合或数组转变为逗号分隔的字符串的几种方式 1.自己编码实现 2.org.apache.commons.lang3.StringUtils 3.StringJoiner, JDK1.8+ 4.String.join(), JDK1.8+ 5.Stream, Collectors.joining(), JDK1.8+ 把逗号分隔的String字符串转int集合 代码通过Java 8 Stream实现起来非常容易! String ids = "1,2

SecurityUtils.getSubject().getPrincipal()为null的问题

2022-06-28
目录 SecurityUtils.getSubject().getPrincipal()为null 解决办法 shiro SecurityUtils.getSubject()深度分析 SecurityUtils.getSubject().getPrincipal()为null 我在项目中获取getUserId(),和getUserName()获取不到值. 他们都是通过SecurityUtils.getSubject().getPrincipal()去获取的. 反复测试发现原因是 :在shiroC

Java中实现String字符串用逗号隔开

2022-06-28
目录 String字符串用逗号隔开 1.如果我们的需求是要让分隔符号可以兼容中英文逗号 2.如果我们的需求是取到第一个逗号前面的字符串 以逗号为分割符拼接字符串的技巧 实现代码如下所示 String字符串用逗号隔开 在Java中,有两个方法可以用逗号把String分开 一个是 public String[] split(String regex) { return split(regex, 0); } 另一个是 public String[] split(String regex, int li

如何解决Webservice第一次访问特别慢的问题

2022-06-28
目录 Webservice第一次访问特别慢问题 问题知道了那么就说说如何解决 cxf动态调用Webservice接口 Webservice第一次访问特别慢问题 最近做一个项目遇到首次加载webservice的时候特别慢,于是Google一番,得到结果是 <system.net> <defaultProxy enabled="false" useDefaultCredentials="false"> <proxy/> <byp

JavaWeb&nbsp;Maven详解相关配置

2022-06-28
目录 1.Maven项目架构管理工具 2.下载安装Maven 3.配置环境 4.阿里云镜像 5.本地仓库 6.在IDEA中使用Maven 7.创建一个普通的Maven项目 8.idea中标记文件夹功能 9. 在IDEA中配置tomcat 10. pom文件 为什么学习这个技术 1.在javaweb开发中,需要使用大量的jar包,我们手动去导入: 2.如果能够让一个东西自动导入jar包 1.Maven项目架构管理工具 我们目前用来方便导入jar包的! Maven的核心思想:约定大于配置 有约束,不

解决SpringBoot中的Scheduled单线程执行问题

2022-06-28
目录 问题描述 原因分析: 解决方案: 补充: 问题描述 在一次SpringBoot中使用Scheduled定时任务时,发现某一个任务出现执行占用大量资源,会导致其他任务也执行失败.类似于以下模拟场景,test1定时任务模拟有五秒钟执行时间,这时会同步影响到test2任务的执行,导致test2任务也变成五秒执行一次. @Scheduled(fixedRate = 1000) public void test1() throws InterruptedException { log.info(Th

详解Spring中BeanUtils工具类的使用

2022-06-28
目录 简介 Spring的BeanUtils方法 Spring的BeanUtils与Apache的BeanUtils区别 实例 简介 说明 本文介绍Spring的BeanUtils工具类的用法. 我们经常需要将不同的两个对象实例进行属性复制,比如将DO对象进行属性复制到DTO,这种转换最原始的方式就是手动编写大量的 get/set代码,很繁琐.为了解决这一痛点,就诞生了一些方便的类库,常用的有 Apache的 BeanUtils,Spring的 BeanUtils, Dozer,Orika等拷贝

Java实现二叉查找树的增删查详解

2022-06-28
目录 定义 增加节点 查询节点 删除节点 定义 二叉查找树(ADT)是一个具有对于树种的某个节点X,它的左节点都比X小,它的右节点都比X大的二叉树.如下就是一个符合 要求的二叉查找树: 增加节点 1.定义节点类: class Node{ int val; Node left; Node right; public Node(int val){ this.val=val; } } 2.插入元素 我们采用递归的方法: 1.判断与根节点是否相同,相同无需操作 2.比根元素小往左边查找,左节点不存在的话

springboot使用redis的详细步骤

2022-06-28
目录 springboot使用redis springboot使用redis步骤 StringRedisTemplate和RedisTemplate 总结 springboot使用redis redis-service.exe : 服务端,启动后不要关闭 redis-cli.exe : 客户端,访问redis中的数据 redisclient-win32.x86_64.2.0.jar : redis的图形界面客户端,执行方式是在这个文件的目录执行 java -jar redisclient-win

SpingCloud集成zookeeper实现服务注册并访问功能

2022-06-28
目录 SpingCloud整合zookeeper实现服务注册 前言: 一.环境准备 1.linux环境下的zookeeper环境 2.一个简单的springcloud父项目环境 二.编写服务提供者模块 1.在cloud2022下创建一个cloud-provider-payment8004作为服务提供者 2.在pom.xml文件中添加常规依赖和zookeeper.springboot整合zookeeper客户端等依赖 3.编写application.yaml 4.编写主启动类PaymentMain

Java多线程并发FutureTask使用详解

2022-06-28
目录 基本使用 代码分析 继承关系 Future RunnableFuture FutureTask 状态 属性 内部类 构造方法 检索 FutureTask 状态 取消操作 计算结果 立刻获取结果或异常 run 方法组 本文基于最新的 OpenJDK 代码,预计发行版本为 19 . Java 的多线程机制本质上能够完成两件事情,异步计算和并发.并发问题通过解决线程安全的一系列 API 来解决:而异步计算,常见的使用是 Runnable 和 Callable 配合线程使用. FutureTask

java.util.NoSuchElementException原因及两种解决方法

2022-06-28
java输入流报错: Exception in thread "main" java.util.NoSuchElementException    at java.base/java.util.Scanner.throwFor(Unknown Source)    at java.base/java.util.Scanner.next(Unknown Source)    at java.base/java.util.Scanner.nextInt(Unknown Source)  

深入了解Java中的过滤器Filter和监听器Listener

2022-06-28
目录 Filter:过滤器 概念 快速入门 过滤器细节 Listener:监听器 Filter:过滤器 概念 生活中的过滤器:净水器,空气净化器,土匪. web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能. 过滤器的作用: 一般用于完成通用的操作.如:登录验证.统一编码处理.敏感字符过滤... 快速入门 步骤 1.定义一个类,实现接口Filter 2.复写方法 3.配置拦截路径 web.xml 注解 代码 @WebFilter("/*")//访问所有资

FeignClient如何脱离eureka自定义URL

2022-06-28
目录 FeignClient脱离eureka自定义URL 需求 方法一: FeignClient注解中添加URL属性 方法二: eureka禁用ribbon,并手动配置服务列表 feign不使用eureka main server端代码 Client端代码 FeignClient脱离eureka自定义URL 需求 Spring Cloud环境中的FeignClient有时候需要调用特定主机的接口,但是默认是从eureka上的注册列表自动获取到的负载均衡过后的URL,这时怎么办呢? 方法一: Fe

feign开启日志Logger.Level feignLoggerLevel()中Level爆红的解决

2022-06-27
目录 开启日志Logger.Level feignLoggerLevel()中Level爆红 feign开启日志 配置和说明 如果只想让某一个feign调用的时候有日志怎么办 开启日志Logger.Level feignLoggerLevel()中Level爆红 今天在学习feign时测试其配置日志的功能,发现Logger不存在Level方法,百度了一圈没有找到方法 结果自己摸索发现是导错了包,如下是错误的包 应该导入feign中的Logger包,如下 feign开启日志 配置和说明 配置 fe

Springboot详解如何整合使用Thymeleaf

2022-06-27
目录 引入Thymeleaf 取值 有无转义 循环 模板引擎的作用就是我们来写一个页面模板,比如有些值呢,是动态的,我们写一些表达式.而这些值,从哪来呢,就是我们在后台封装一些数据.然后把这个模板和这个数据交给我们模板引擎,模板引擎按照我们这个数据帮你把这表达式解析.填充到我们指定的位置,然后把这个数据最终生成一个我们想要的内容给我们写出去,这就是我们这个模板引擎 如果我们没有模板引擎的话,在页面中会提示500 引入Thymeleaf 在项目中加入依赖 <!--thymeleaf--> <

Java分布式服务框架Dubbo介绍

2022-06-27
目录 1.什么是Dubbo? 2.Dubbo核心组件是? 3.Dubbo的工作原理是? 4.介绍一下Dubbo框架分层? 5.Dubbo支持哪些协议? 1.dubbo默认协议: 2.rmi协议: 3.hessian协议: 4.http协议: 5.webservice协议: 6.thrift协议: 7.redis协议: 8.memcached协议: 6.Dubbo核心配置有哪些? 7.Dubbo有哪几种集群容错方案.哪几种负载均衡策略? 8.Dubbo用到哪些设计模式,简要介绍? 9.Dubbo有

使用FeignClient设置动态Url

2022-06-27
目录 FeignClient设置动态Url 1. 需求描述 2. 实现方案 3. 细节分析 FeignClient注解配置url属性实现指定服务方 FeignClient设置动态Url 1. 需求描述 一般情况下,微服务内部调用都是通过注册中心,eureka,zookeeper,nacos等实现动态调用,但是对于一些外部http调用,对于不在同一微服务内,不在同一注册中心的服务调用,可以考虑SpringCloudOpenFeign,而且可以实现动态URL,通过参数动态控制. 2. 实现方案 服务

SpringBoot参数校验之@Valid的使用详解

2022-06-27
目录 简介 依赖 代码 测试 测试1:缺少字段 测试2:不缺少字段 测试3:缺少字段,后端获取BindResult 简介 说明 本文用示例说明SpringBoot的@Valid的用法. 依赖 <dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> </dependency> 代码 Contr