java
文章平均质量分 78
JohnieLi
cs qq:1187426712
展开
-
SpringBoot整合Kafka
前面两个章节我们把Kafka给安装起来然后使用命令演示是生产和消费的过程,以及Kafka的架构原理,接下来就是Kafka的实战使用,顺应如今企业流行的开发模式,当然要使用SpringBoot和Kafka进行整合。转载 2022-11-29 16:37:22 · 6220 阅读 · 0 评论 -
Spring Boot应用的启动和停止(Service start启动方式)
Spring Boot应用的启动和停止(Service start启动方式)转载 2022-11-29 15:05:04 · 1797 阅读 · 0 评论 -
spring boot使用配置文件对静态变量进行赋值
spring boot @value @ConfigurationProperties 注释静态配置文件变量引用1.@value标签加在set方法上面,注意set方法是非静态 private static String userName; @Value(value = "${user.userName}") public void setUserName(String userName) { HelloWorldServiceImpl.userName = us原创 2021-12-03 15:56:43 · 2738 阅读 · 0 评论 -
Kafka
现代的互联网分布式系统,只要稍微大一些,就一定逃不开3类中间件:远程调用(RPC)框架、消息队列、数据库访问中间件。Kafka 是消息队列中间件的代表产品,用 Scala 语言实现,本文采用的是 Kafka_2.11 0.10.0.0 版本进行实验。 基本概念 首先,Kafka 中有一些基本的概念需要熟悉 1 2。 Topic,指消息的类别,每个消息都必须有;Producer,指消息的产生者,或者,消息的写端;Consumer,指消息的消费者,或者,消息的读端;Producer Group,指产生者组转载 2021-09-08 15:44:56 · 263 阅读 · 0 评论 -
高并发之API接口限流
在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流 缓存 缓存的目的是提升系统访问速度和增大系统处理容量降级 降级是当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉,待高峰或者问题解决后再打开限流 限流的目的是通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待、降...转载 2021-09-08 15:29:12 · 883 阅读 · 0 评论 -
Ribbon 和 Feign
spring cloud的 Netflix 中提供了两个组件实现软负载均衡调用:ribbon 和 feign 。1、Ribbon是一个基于 HTTP 和 TCP 客户端 的负载均衡的工具。它可以 在客户端 配置 RibbonServerList(服务端列表),使用 HttpClient 或 RestTemplate 模拟http请求,步骤相当繁琐。2、FeignFeign 是在 Ribbon的基础上进行了一次改进,是一个使用起来更加方便的 HTTP 客户端。采用接口的方式, 只需要创建一个接口,转载 2021-09-08 14:45:03 · 235 阅读 · 0 评论 -
net.sf.json.JSONObject依赖和各种JSON比较
java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher错误JSONObject所必需的6个jar包:commons-beanutils-1.7.0.jarcommons-collections-3.1.jarcommons-lang-2.5.jarcommons-logging.jarezmorph-1.0.3.jarjson-lib-2.1-jdk15.jar网上有很多的下载jar包地址,但是我个人比较喜欢的是Maven网站,里面一转载 2021-05-11 09:10:42 · 2042 阅读 · 0 评论 -
java中Class.getResource用法,以及获取文件绝对路径的坑
资料项目中获取资源文件路径方法有1、xxx.class.getClassLoader().getResource(“”).getPath(); 获取src资源文件编译后的路径(即classes路径)2、xxx.class.getClassLoader().getResource(“文件”).getPath(); 获取classes路径下“文件”的路径3、xxx.class.getResource(“”).getPath(); 缺少类加载器,获取xxx类经编译后的xxx.class路径4、t转载 2021-04-20 18:32:43 · 2305 阅读 · 0 评论 -
数据库阿里连接池 druid配置详解
java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,有不得不使用数据库连接池。数据库连接池有很多选择,c3p、dhcp、proxool等,druid作为一名后起之秀,凭借其出色的性能,也逐渐印入了大家的眼帘。接下来本教程就说一下druid的简单使用。 首先从 http://repo1.maven.org/maven2/com/alibaba/druid/ 下载最新的jar包。...转载 2021-02-20 14:38:42 · 1374 阅读 · 0 评论 -
SpringBoot整合MyBatis实现乐观锁和悲观锁的示例
这篇文章主要介绍了SpringBoot整合MyBatis实现乐观锁和悲观锁的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧本文以转账操作为例,实现并测试乐观锁和悲观锁。全部代码:https://github.com/imcloudfloating/Lock_DemoGitHub Page:https://cloudli.top死锁问题当 A, B 两个账户同时向对方转账时,会出现如下情况:时刻 事务 1 (A 向 B 转转载 2021-01-29 17:10:33 · 1443 阅读 · 0 评论 -
Spring Boot实现自定义注解
在Spring Boot项目中可以使用AOP实现自定义注解,从而实现统一、侵入性小的自定义功能。实现自定义注解的过程也比较简单,只需要3步,下面实现一个统一打印日志的自定义注解:1、 引入AOP依赖在pom文件中引入AOP的依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifact转载 2021-01-28 17:59:48 · 321 阅读 · 0 评论 -
BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)
一、简介 Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法转载 2020-08-05 10:16:50 · 7552 阅读 · 0 评论 -
IDEA配置tomcat
1.添加tomcat。2.点击Edit Configurations后打开如下界面。|3.点击加号4.在这里配置tomcat信息,5.填写好基本tomcat信息后,点击ok。我们就配置好了Tomcat,此时我们会看到。项目中显示了我们刚才配置的的Tomcat。但是直接运行的话,会报错,所以我们还需要配置6.下面打开Project Structure7.打开后,在Modules中我们可以看到我们项目Module。右键,Add一个Web。8.然后如图所示,我们做相应设置。点击Apply|9..转载 2020-05-26 16:04:02 · 415 阅读 · 0 评论 -
Java List去掉重复对象以及保证添加顺序
JAVA中List对象去除重复值,大致分为两种情况,一种是List、List这类,直接根据List中的值进行去重,另一种是List这种,List中存的是javabean对象,需要根据List中对象的某个值或某几个值进行比较去重。一、去重1、List、List对象去重复值利用Set集合的特性: Set<String> set = new LinkedHashSet<>(); set.addAll(list); list.clear(); list.addA原创 2020-05-25 10:16:55 · 3261 阅读 · 0 评论 -
模糊查询 sql转义
场景拼接sql语句执行like查询解决方案1、将单个单引号('),替换为两个('')2、自定义Escape字符比如(/)3、给关键字符(\_,%,[,])加前缀Escape字符(/\_,/%,/[,/])4、最终sql语句的like部分类似 like 'ni''hao/_wor/%ld' Escape '/'使用 StringEscapeUtils添加依赖<dependency> <groupId>org.apache.commons</groupId>原创 2020-05-12 16:22:25 · 1210 阅读 · 0 评论 -
JAVA使用easyexcel操作Excel
之前写过一篇《JAVA操作Excel》,介绍了jxl和poi读写Excel的实现,今天为大家介绍一下使用easyexcel对Excel进行读写,项目主页地址:https://github.com/alibaba/easyexcel作者对easyexcel的介绍是: Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以转载 2020-05-11 16:46:42 · 726 阅读 · 0 评论 -
POI SXSSFWorkbook 权限不够
之前写了个把某些数据和日志用POI格式化成xlsx的工具给其他人用。一般的文件,用XSSFWorkbook输出成xlsx文件,对于特别大的文件,使用SXSSFWorkbook防止OOM。一直相安无事,直到有一天,抛了个异常给我。Exception in thread "main" java.lang.RuntimeException: java.io.IOException: 权限不够 at org.apache.poi.xssf.streaming.SXSSFWorkbook.createAndReg转载 2020-05-11 09:19:15 · 2180 阅读 · 1 评论 -
SpringBoot几种定时任务的实现方式
定时任务实现的几种方式:Timer:这是java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少。ScheduledExecutorService:也jdk自带的一个类;是基于线程池设计的定时任务类,每个调度任务都会分配到线程池中的一个线程去执行,也就是说,...转载 2020-05-08 09:48:40 · 265 阅读 · 0 评论 -
Need to invoke method 'task' found on proxy for target class
起初在创建定时任务单线程是可用使用私有的修饰方法,后来改成多线程增加注解@EnableAsync@Async启动报错:Need to invoke method ‘task’ found on proxy for target class ,报错原因是因为可能多线程情况下不支持私有的修饰方法,从报错信息来看 应该是task找不到私有的定时任务方法,invoke通过反射获取不到,这样我们只需...转载 2020-05-08 09:14:47 · 7807 阅读 · 0 评论 -
Java使用Cipher类实现加密,包括DES,DES3,AES和RSA加密
一、先看一个简单加密,解密实现1.1 加密/** * content: 加密内容 * slatKey: 加密的盐,16位字符串 * vectorKey: 加密的向量,16位字符串 */public String encrypt(String content, String slatKey, String vectorKey) throws Exception { ...转载 2020-04-28 10:19:46 · 1016 阅读 · 0 评论