Java
文章平均质量分 72
晴天小哥哥
追求卓越, 成功就会在不经意间追上你
展开
-
一个通用的参数校验的工具类
对于请求入参的校验常用方法都是一堆if...else...来进行判空,长度校验。不仅代码又多又长,阅读性极差。本文由博主自己结合hibernate-validate框架,封装的小工具,进行优雅的参数校验。原创 2022-10-14 10:19:08 · 947 阅读 · 1 评论 -
SpringBoot 打包异常:Unable to find main class
SpringBoot 打包异常:Unable to find main class原创 2022-07-11 15:29:28 · 689 阅读 · 0 评论 -
项目启动报错: This is very likely to create a memory leak. Stack trace of thread 解决方案
问题发现The web application [ROOT] appears to have started a thread named [UIC_STATISTIC_THREAD] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread.这个是一个Spring项目启动报的错. 内存泄漏异常.解决方案:跳转Java项目启动内存:-Xms512m ...原创 2021-07-02 17:34:07 · 26228 阅读 · 0 评论 -
CountDownLatch的使用
1. 他是什么?A synchronization aid that allows one or more threads to wait untila set of operations being performed in other threads completes.原创 2021-06-17 15:45:32 · 2959 阅读 · 0 评论 -
Java记录一次百万级别数据扫表统计的任务
一. 需求:统计近200万商家数据, 每日通过查询计费系统更新其余额二. 技术栈:抛开分布式定时任务系统Elastic-Job之外, 我们先优先把单系统极限优化挖掘出来, 由于博主接手的是14年的老项目, 本地甚至都无法启动,所以不尝试用高级玩法(数据分片, 消息中间件).1. Java1.72. Mysql数据库5.7三. 思路分析:流程如下1: 扫表几百万数据表的扫表面临的问题很简单, 当我们分页查询到百万级别以上(甚至几十万)的时候limit 800000, 1原创 2020-11-24 10:53:47 · 2799 阅读 · 0 评论 -
ThreadLocal(三) 线程上下文实战
场景: 某个复杂长链路请求, 例如下单, 需要多组件方法参与,但是对于各种参数聚合, 耦合度很高对于二次开发不方便解决思路: 利用 ThreadLocal 线程变量来完成, 以后每次改造只需要改造,或者向 ThreadLocal 中增加自己的参数即可,注意:禁止参与多线程!!!否则会导致参数丢失!!!!! 注意每个线程必须执行 destroy 操作!!! 建议在入口处进行线程变量初始化和销毁1. 创建业务上下文类package net.xinhuamm.converge.model.原创 2020-06-16 21:57:19 · 748 阅读 · 0 评论 -
使用 AOP 进行切面编程(打印日志)
场景 : 针对 controller 层 使用 AOP 进行日志打印思路: 使用 aop 进行切面编程, 针对 controller 层所有的类,进行方法切面, 打印日志1. 先在 pom.xml 文件中引入 aop 的依赖 <!-- aop --> <dependency> <groupId>org.springframework.boot</groupId> .原创 2020-06-16 21:09:26 · 1401 阅读 · 0 评论 -
Kafka(二) SpringBoot与Kafka集成
配置好环境,接上篇1.配置maven 依赖 <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> <...原创 2019-05-10 14:02:18 · 490 阅读 · 0 评论 -
SpringBoot集成Druid配置(yml版本)
maven 配置 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.8</version>原创 2019-03-02 22:33:26 · 20813 阅读 · 3 评论 -
Java 8 Lambda表达式与Stream 流结合使用
使用Lambdas和StreamsStream是对集合的包装,通常和lambda一起使用。 使用lambdas可以支持许多操作,如 map, filter, limit, sorted, count, min, max, sum, collect 等等。 同样,Stream使用懒运算,他们并不会真正地读取所有数据,遇到像getFirst()这样的方法就会结束链式语法。在接下来的例子中,我们...原创 2018-11-01 13:30:53 · 2866 阅读 · 0 评论 -
Java 8 Lambda表达式的使用
Java 8 Lambda表达式的使用, 让你的代码变得优雅起来-----------------------------------------------------------------------------------简介(译者注:虽然看着很先进,其实Lambda表达式的本质只是一个"语法糖",由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能。...原创 2018-11-01 13:15:39 · 250 阅读 · 0 评论 -
java解决下载时文件名乱码问题
直接上部分代码: String zipFileName = fileNameRoot + System.currentTimeMillis() + ".zip";// 文件名+时间戳+ .zip //得请求头中的User-Agent String agent = httpServletRequest...原创 2018-09-30 10:38:30 · 1047 阅读 · 0 评论 -
SpringCloud(二) Eureka服务器的搭建注册
Eureka是什么? Eureka 是Netflix 的一个子木块, 也是核心模块之一. Eureka是一个基于Rest的服务,用于定位服务, 以实现云端中间层服务的发现和故障转移. 服务注册和发现对于微服务架构而言, 是非常重要的, 有了服务的注册,只需要使用服务的标识符, 就是可以访问到服务, 而不需要修改服务调用的配置文件了. 功能类似于dubbo的注册中心, 比如zookeep...原创 2018-08-10 15:20:54 · 289 阅读 · 0 评论 -
Java对象拷贝(BeanUtil.copyProperties 方法)
一、简介: BeanUtils提供对Java反射和自省API的包装。其主要目的是利用反射机制对JavaBean的属性进行处理。我们知道,一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度。二、用法: 如果你有两个具有很多相同属性的JavaBean,一个很常见的情况就是Struts里...原创 2018-03-23 11:02:18 · 34848 阅读 · 3 评论 -
Java设计模式之工厂设计模式之企业实战
工厂模式可以非常轻松的对接口实现类进行扩展, 符合我们编程思路.试想下我们需要生产一批汽车(接口为car), 能不能用统一的方式去生产各种类型的车呢? 扩展性强不强?新增一条新的扩展, 需要大改么?接下来我们来体会下,神秘的工厂设计模式.工厂模式工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模...原创 2018-03-20 18:34:36 · 727 阅读 · 1 评论 -
Java设计模式之模板模式(Spring编程式事务模板实战)
模板模式在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。介绍意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。主要解决:一些方法通用,却在每一个子类都重新写了这一方法。何...原创 2018-03-22 14:53:36 · 1531 阅读 · 0 评论 -
Spring Aop (MethodInterceptor) (企业实战)
Spring-AOP* AOP 为 Aspect Oriented Programming 的缩写,意为:面向切面编程,通过预编译 方式和运行期动态代理实现程序功能的统一维护的一种技术。* 主要功能* 日志记录,性能统计,安全控制,事务处理,异常处理等等* 主要意图* 将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划 分出来,通过对这些行为的分离,我们希望可以将它们独...原创 2018-04-10 19:44:14 · 4937 阅读 · 0 评论 -
MessageFormat用法:占位符{0}
一、前言 刚开始从.net的转向java的时候总觉得 String.format 用得不习惯,希望格式模版会这样 {0}, this is {1}'s cat.{1},this is {0}'s dog. 而不是 %1$s,this is %2$s's cat.%2$s,this is %1$s's dog. 。后来发现 java.te...原创 2018-04-03 14:45:05 · 4247 阅读 · 0 评论 -
Java设计模式之静态代理模式 (Spring Aop)
Aop 利用 代理模式实现功能增强Aop能做什么? 日志管理, 事务管理, 权限控制定义:代理模式(Proxy或者Surrogate),中文翻译"代理",所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动.一些情况下,一个客户不想或者不能够直接的引用第一个对象,而代理对象可以在客户端对象之间起到中介的作用三种角色: 抽象主题角色:(现实生活中没有的, 代码里存在) ...原创 2018-04-04 16:34:58 · 344 阅读 · 0 评论 -
Java设计模式之代理 -- Cglib动态代理(Spring)
Cglib动态代理,是Spring框架内给的一个代理模式, 由于jdk动态代理, 只能针对 有接口的对象, 而没有接口的对象则不能完成代理. 具体代码如下为 : 主要是针对 代理类进行改造, 实现MethodInterceptor 方法拦截器接口注意导包!!!:import org.springframework.cglib.proxy.MethodInterceptor;public class...原创 2018-04-05 23:04:03 · 342 阅读 · 0 评论 -
Java会话技术之 Cookie与Session
java的会话管理:Cookie和Session1.什么是会话此处的是指客户端(浏览器)和服务端之间的数据传输。例如用户登录,购物车等会话管理就是管理浏览器客户端和服务端之间会话过程产生的会话数据常用的会话技术之前学会了域对象的作用,所以在会话管理的时候也可以使用域对象的概念来找到解决方法。常用的解决方法主要有两种:数据保存在客户端的Cookie技术数据保存在服务端的Session技术2.Cook...原创 2018-04-25 09:35:06 · 206 阅读 · 0 评论 -
2022JAVA面试题附答案(长期更新)
该博客囊括了Java面试中95%的面试题,不包含算法题。如有遗漏或错误,请立刻联系我,十分感谢。原创 2018-05-17 22:53:57 · 148047 阅读 · 40 评论 -
Java自定义异常(优雅的处理异常)
(本文较长,精华部分直接下拉)在复杂业务环境下,java自带的异常可能满足不了我们业务的需求, 这个时候我们可以自定义异常来进行对业务异常的处理;首先,我们先对异常进行基本的解释:Throwable是所有Java程序中错误处理的父类 ,有两种子类:Error和Exception。Throwable是所有异常的根,java.lang.ThrowableError是错误,ja...原创 2018-03-16 15:38:59 · 50240 阅读 · 17 评论