Java-开发日常
文章平均质量分 70
Java-开发日常
Leo187
行者常至,为者常成
展开
-
websocket在分布式场景的应用方案
websocket在分布式场景的应用方案原创 2023-05-29 17:36:41 · 1721 阅读 · 0 评论 -
java 使用反射动态赋值
java 使用反射动态赋值原创 2022-04-25 14:09:47 · 4530 阅读 · 0 评论 -
java多线程、线程池、常见线程问题
java多线程、线程池介绍原创 2020-10-27 18:29:12 · 204 阅读 · 0 评论 -
烟囱式到SOA再到微服务
烟囱式到SOA再到微服务转载 2021-02-05 16:05:22 · 1345 阅读 · 0 评论 -
项目运行指标:micrometer自定义metrics
micrometer自定义metricsmicrometer提供了基于Java的monitor facade,其与springboot应用和prometheus的集成方式如下图展示上图中展示的很清楚,应用通过micrometer采集和暴露监控端点给prometheus,prometheus通过pull模式来采集监控时序数据信息。之后作为数据源提供给grafana进行展示。micrometer支持的度量方式及在springboot中的应用示例CounterCounter(计数器)简单理解转载 2021-01-21 17:24:19 · 4042 阅读 · 0 评论 -
tkmybatis使用不当导致全表数据更新!快检查你的用法正确吗
tkmybatis使用不当导致三十万数据被洗,生产环境一度瘫痪!快来看看你的用法正确吗原创 2021-01-17 20:39:59 · 3030 阅读 · 0 评论 -
java 常用注解知识分享
学习工作常用的注解知识,这一系列文章就够啦!原创 2020-11-22 21:16:54 · 295 阅读 · 0 评论 -
Spring Bean 管理注解解析
@ComponentScan、@Component、@Repository、@Service、@Controller、@Configuration、@Aspect等注解解析翻译 2020-08-27 20:50:16 · 210 阅读 · 0 评论 -
Spring 任务调度相关注解解析
@EnableAsync、@EnableScheduling、@Async、 @Scheduled、@Schedules等注解解析翻译 2020-08-27 20:46:20 · 434 阅读 · 0 评论 -
Spring Boot 注解讲解
@SpringBootApplication、@EnableAutoConfiguration、@ConditionalOnClass 、@ConditionalOnMissingClass、 @ConditionalOnBean、@ConditionalOnMissingBean、@ConditionalOnProperty、@ConditionalOnResource、@ConditionalOnWebApplication 等注解讲解翻译 2020-08-27 20:38:34 · 170 阅读 · 0 评论 -
Spring 核心常用注解解析
@Autowired、@Bean、@Qualifier、@Required、@Value、@DependsOn、@Lazy、@Lookup、@Primary、@Scope、@Profile、@Import、@ImportResource、@PropertySource、@PropertySources 等注解讲解翻译 2020-08-12 18:09:54 · 928 阅读 · 0 评论 -
Spring Web 常用注解解析
@RequestMapping、@RequestBody、@PathVariable、@RequestParam、@ResponseBody、@Controller、@RestController、@ModelAttribute、@CrossOrigin 等注解讲解翻译 2020-08-07 15:46:57 · 1322 阅读 · 0 评论 -
海量数据的甄别工具---布隆过滤器
考虑两个业务场景:1.某商城有一千万件商品存放到redis中,商品id区间是1-1000万,现在有恶意用户访问商品id不在此区间内的商品,程序查redis中不存在,就去查数据库,当这样的恶意请求量大时会拖垮数据库,怎么去解决呢?2.如何快速在亿级黑名单数据中快速定位url是否在黑名单中?原创 2020-07-05 18:00:05 · 366 阅读 · 0 评论 -
“撸啊”不止能秒杀!| lua+redis实现高并发抢令牌
目录1.什么是lua2.为什么是lua3.抢令牌的业务场景 + 代码实现1.什么是lua撸啊(Lua)是一门小巧的脚本语言,它的主要特点是轻量级、可扩展。主要应用场景是:游戏开发、独立应用脚本、Web 应用脚本。lua还有一个重要的特点是可以轻松嵌入到其他开发语言中。lua脚本语句比较简单,语句风格和C语言类型,可以通过Lua在线工具进行语言试验。Redis 2.6.0 版本开始的,使用内置的 Lua 解释器,可以对 Lua 脚本进行求值。2.为什么是lua介绍了这么...原创 2020-05-17 19:54:44 · 18135 阅读 · 0 评论 -
ConnectTimeout和ReadTimeout 含义及区别
ConnectTimeout指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间。在java中,网络状况正常的情况下,例如使用HttpClient或者HttpURLConnetion连接时设置参数connectTimeout=5000即5秒,如果连接用时超过5秒就是抛出java.net.SocketException: connetct time out的异常。Re...转载 2020-04-29 18:05:58 · 17192 阅读 · 1 评论 -
String 转json对象、转实体类、String 转数组 | alibaba.fastjson
目录说明String转数组string 转jsonObjectstring 转mapstring 转实体string转list常见错误说明常用的json工具类有alibaba.fastjson、net.sf.json,两个工具的使用方法不同。本文使用alibaba.fastjson工具类经行数据处理,引入了com.alibaba.fastjson.JS...原创 2020-03-25 15:07:30 · 10250 阅读 · 0 评论 -
你的唯一ID生成器适用于多线程吗
昨天逛博客,看到一篇"Java生成唯一ID"的文章,转载率很高。正好前段时间项目也遇到了多线程情况下唯一键重复的问题,正好学习一波大神的代码。代码拷贝自Java中生成唯一ID的方法中的Snowflake算法的变化.public class MinuteCounter { private static final int MASK = 0x7FFFFFFF; private...原创 2020-03-05 15:07:55 · 2580 阅读 · 2 评论 -
使用Enum类处理代码中的枚举
《Effective Java 》对使用枚举代替常量的做法推崇备至,专门拿出一篇文章分析使用枚举类的好处,我在实际使用中感受到Enum类的好处可以总结为如下几点: 代码简洁,不易和同名类型混淆 ,避免用错 符合单一职责。以前将很多的类型都放到一个常量类,不易维护,不符合单一职责。使用枚举类可以将不同字段的枚举分开,避免拓展导致错误 容易当字段类型扩展了,但是数据库的COM...原创 2020-01-06 15:16:35 · 542 阅读 · 0 评论 -
使用equals对比有小数位的Bigdecimal
public static void main(String[] args) { BigDecimal qtyActual = new BigDecimal(0).setScale(2,BigDecimal.ROUND_UP); System.out.println(qtyActual.equals(BigDecimal.ZERO)); q...原创 2019-08-21 16:23:18 · 1065 阅读 · 0 评论 -
使用CountDownLatch模拟并发
我们有时会使用java循环模拟并发请求,但for循环的实际情况是完成上一次循环后才进入本次循环,不同请求之间还是有细微的时间差,无法真正模拟出同时请求的场景。我们把并发场景比作百米赛跑。现在假如有八名运动员参加百米赛,正常情况下裁判会等所有选手准备就绪后,扣响发令枪,所有运动员一起出发。我们以for循环来实现这一场景。public class ForTestThread extends T...原创 2019-08-06 19:40:05 · 677 阅读 · 0 评论 -
JDK1.8 lambda处理stream 常用代码示例
处理集合建一个商品实体@Builder@Datapublic class Goods { private Integer id; //商品名称 private String goodsName; //商品单价 private int unitPrice; //spu private String spu; //属性集合...原创 2019-12-12 19:37:10 · 536 阅读 · 0 评论 -
JavaArrayList和数组间的相互转换
一、ArrayList转换为数组ArrayList提供public T[] toArray(T[] a)方法返回一个按照正确的顺序包含此列表中所有元素的数组,返回数组的运行时类型就是指定数组的运行时类型。import java.util.ArrayList;import java.util.List;public class Test { public static void...转载 2019-03-13 12:34:00 · 24381 阅读 · 0 评论 -
eclipse 编译后无class文件
myeclipse编译项目后,没有生成对应的class文件夹及.class文件,jsp、js、css、config文件路径正常。解决方案如下:项目右键—>properties—>Java Build Path选择Source,修改Default output folder为"项目名称“/binJava Build Path功能含义如下,转自eclipse build path功能总结...原创 2019-02-25 14:14:38 · 8284 阅读 · 0 评论 -
直连服务,绕过dubbo和zookeeper
在dubbo或者zooleeper出现问题,或者服务器拦截通过dubbo调取服务的情况下,可以通过ip直连的方式调取服务正常情况下消费者配置:<dubbo:reference id="orderService" interface="com.object.tmall.service.orderService" />直连服务情况下消费者配置:<dubbo:referen...原创 2018-11-30 18:44:56 · 2540 阅读 · 0 评论 -
Maven打war包提示单元测试出错
SpringBoot项目调用了分布式服务,项目在打war包时提示找不到对应提供者的错误。通过排查发现打war包时会逐个验证服务是否存在,但是打war包并不应该调用服务。解决方案,修改pom文件中的maven插件:&amp;lt;!--修改前--&amp;gt; &amp;lt;build&amp;gt; &amp;lt;plugins&amp;gt; &amp;lt;plugin&原创 2018-11-07 18:22:15 · 407 阅读 · 0 评论 -
SQL Server 解决sql查询快,代码查询慢
项目里一个对数据统计的功能,用到了多表关联查询,最后把汇总数据展示在页面上。最近因为并发量比较大,这个功能变的异常的慢,但是将底层代码里的sql摘出来在SqlServer窗口运行时3秒就可以出结果。经过对网络、数据库连接情况排查后发现没有问题,最终定位到是因为参数字段类型有误导致了检索缓慢,具如下:入参未store_id,int类型解决前:AND s.STORE_ID = #{order...原创 2018-09-06 20:28:18 · 4459 阅读 · 3 评论 -
解决控制台大量输出“[localhost-startStop-1] DEBUG“
排查maven项目启动后控制台输出了大量DDBUG日志,导致项目启动缓慢甚至无法访问。log4j的日志级别是ERROR,显然不是这个原因。最后排查发现项目lib中有两个logback的jar包,虽然在pom中没有引用,但它作为其他jar包的依赖包被引入了。 - 解决删除lib下logback开头的jar包,重启项目。...原创 2018-07-19 16:05:56 · 20859 阅读 · 7 评论 -
spring-boot定时器
spring-boot框架中集成了一个轻量级的定时器框架,配置简单,容易上手。在spring-boot项目能够正常启动的前提下,保证pom文件中有如下配置:&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt; &amp;lt;art原创 2018-07-08 14:39:36 · 653 阅读 · 0 评论 -
基于角色的权限访问控制(RBAC-Java)
业务场景管理型的网站会存在一个定制化的业务需求,即不同的用户拥有不同的角色,不同的角色又能访问到不同的功能模块,并且要保证用户不能操作权限之外的功能。基于这样的考虑需要设计出一套多用户、多角色、多种功能、用户&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;–&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;角色&amp;amp;amp;原创 2018-09-10 20:19:14 · 36874 阅读 · 28 评论 -
解决并发数据重复
背景介绍数据库出现了单个字段数据重复问题。例如用户表中的userName字段,虽然不是主键,但也不允许数据重复。此处就此问题的排查进行一个记录,希望可以给遇到了相同问题的朋友提供一个解决思路。代码的业务逻辑如下图问题定位在网络拥堵、或者数据库反应迟缓、或是同时有多个请求同时请求时就会出现数据重复问题,也就是同时出现了多条用户名为【xiaoming】的数据。出现错误是因为a请刚...原创 2018-03-20 18:16:08 · 3012 阅读 · 0 评论 -
JDK定时器
Java项目中常使用的定时器有JDK Timer、Quartz、Spring Task等三种。Quartz的功能强大,配置也比较复杂,适合大型、多定时任务的项目使用。Spring Task配置较为简单轻量,需要Spring框架支持。JDK自带的定时器Timer使用灵活,配置简单,适合中小型项目。项目需要引入的类:java.util.Timer、java.util.TimerTask;定时需要...原创 2018-03-06 17:00:43 · 1381 阅读 · 0 评论 -
SpringTask 基于注解方式的实现定时器
SpringTask是一个集成在Spring框架中的轻量级的定时器功能。支持注解和配置文件两种实现方式。本文介绍使用注解方式实现定时器。SpringTask默认是单线程执行的,无论有多少方法都要排队执行。 多任务并行执行需要设置’pool-size’参数。用到的jar包: - 配置文件:spring-mvc.xml<?xml version="1.0" encoding="U...原创 2018-02-26 12:55:56 · 269 阅读 · 0 评论 -
JAVA生成略缩图
-为节省网络或者存储资源,需要将像素大的图片生成缩略图,以便展示 -具体实现如下(util类摘自网络)import java.awt.image.BufferedImage;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.util.HashMap原创 2018-01-29 17:41:46 · 9886 阅读 · 3 评论 -
JAVA 设置Session失效时间
- JAVA设置Seeion失效时间的三种方式1.java代码控制//秒为单位HttpSession session = request.getSession(); session.setMaxInactiveInterval(3600);2.项目配置文件web.xml控制 session-config&gt; session-timeout&gt;60ses原创 2018-01-20 18:41:25 · 1382 阅读 · 0 评论 -
JAVA生成图片验证码
JAVA生成图片验证码效果 Util代码package com.project.util;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.RenderingHints;import java.aw原创 2018-01-18 11:41:20 · 544 阅读 · 0 评论 -
java项目遇到风险漏洞示例与解决方案
在十九大召开之前,出于安全生产的考虑,公司的项目遭受了各种途径的测试,检出了一堆bug,然后就是加班、修改、测试、加班。。。。。。在此把项目的一些风险漏洞和解决方案记录下来。1. 敏感信息泄露 漏洞描述:敏感信息泄露漏洞,是一种通过提交错误请求,使系统出现异常处理并报错,并且将系统程序、配置 等敏感信息泄露出来的漏洞。工程师发现系统搜索功能模块中普遍将系统的报错通printStackTrac原创 2019-10-23 09:48:35 · 4721 阅读 · 0 评论 -
java 项目导出压缩文件
项目中有一个将用户的订单导出的功能,之前做的是将订单以excel的形式导出。但是随着订单量的增加在查询的时候会出现内存溢出,以及内容会超过单个excel文件的限制数,所以现在的解决办法是以压缩文件的形式导出,在程序中设定单个文件最大数据量,以这个数作为分页条件去数据库查询也可以大大减轻数据库压力。具体代码如下:public void exportOrder(HttpServletReque原创 2017-08-27 14:47:57 · 4014 阅读 · 0 评论 -
JAVA ftp服务器上传文件
最近在做一个同步数据的项目时遇到了附件要保存在单独的文件服务器的状况。而文件服务器采用的是ftp服务器,我了解到除了ftp服务器外还可以创建共享目录来保存文件。那使用ftp保存文件的具体方法就是:package control.util;import java.io.File; import java.io.FileInputStream; import ja原创 2017-07-16 14:00:47 · 528 阅读 · 0 评论