Java
文章平均质量分 56
程治铭
如果不能帮助到你的亲人,你好有什么用。
展开
-
arthas基本概念
arthas,jvisualvm原创 2023-02-03 18:12:31 · 924 阅读 · 1 评论 -
dubbo和zookeeper概念简介
互联网项目目标,dubbo,zookeeper原创 2023-02-02 16:20:33 · 700 阅读 · 0 评论 -
DDD领域驱动大白话简介
领域驱动设计,四层架构原创 2023-01-31 17:55:41 · 323 阅读 · 0 评论 -
架构演进之路
访问层架构知识,api网关层架构知识,核心服务层架构知识,数据存储及接入层知识,监控,限流,降级知识。原创 2023-01-31 17:31:58 · 477 阅读 · 0 评论 -
SpringBoot - Log4j2异步日志
Log4j2异步性能高于logback环境springboot 2.4.5 java 81 配置maven <!--log4j2--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId>原创 2022-05-27 18:41:03 · 347 阅读 · 0 评论 -
springboot 统一异常日志记录
通过注解@ControllerAdvice和@ExceptionHandler({Exception.class})捕获异常,利用注解@ModelAttribute获取请求参数代码如下:import org.apache.commons.io.IOUtils;import javax.servlet.ReadListener;import javax.servlet.ServletInputStream;import javax.servlet.http.HttpServletRequest.原创 2022-05-27 09:43:12 · 659 阅读 · 0 评论 -
设计模式之三种工厂模式-----简洁易懂版
抽象工厂:抽象产品类Product负责定义产品的共性,实现对事物最抽象的定义 抽象创建类Creator即为抽象工厂 具体创建类ConcreteCreator为具体的实际工厂一个通用的模板代码如下。product:public abstract class Product { //产品类的公共方法 public void method1(){ //业务处理逻辑 } //抽象方法 public abstract void metho.原创 2022-05-07 09:57:01 · 267 阅读 · 0 评论 -
NoClassDefFoundError解决方案
报错原因:NoClassDefFoundError错误的发生,是因为Java虚拟机在编译时能找到合适的类,而在运行时不能找到合适的类导致的错误。与ClassNotFoundException的不同在于,ClassNotFoundException发生在编译时。很多Java开发者很容易在这里把这两个错误搞混。解决方案:此方法需要将包以外部的方式引入,如果有更好的排查解决方案可推荐。第一步:引入本地的第三方jar。<dependency> <groupId>c原创 2022-05-05 17:05:27 · 61757 阅读 · 3 评论 -
通过jad/mc/redefine命令,在docker容器中实现动态更新代码的功能:
通过jad/mc/redefine命令,在docker容器中实现动态更新代码的功能:demos_dockerfile:from openjdk:8u232-jdkmaintainer czm<chengzhiming06@163.com>add demo-0.0.1-SNAPSHOT.jar demo.jarWORKDIR /appCOPY ./demo-0.0.1-SNAPSHOT.jar demo.jarVOLUME /tmpEXPOSE 8080ENTRYPOINT ["原创 2022-04-04 19:47:14 · 2389 阅读 · 0 评论 -
IDEAL编码常用工具
1 MybatisX 与 EasyCode 一键自动生成代码2 Lombok Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法3 Alibaba_Java_Coding_Guidelines 自动核实代码规范4 Commit_Template git提交模板5 ke_ Promoter_X 快捷键提示工具6Power Mode ii 装逼神器......原创 2022-03-21 16:27:48 · 333 阅读 · 0 评论 -
vue+springboot 跨域跨 session+cookie失效失 问题
主要介绍了前后端分离 vue+springboot 跨域 session+cookie失效问题的解决方法,解决过程也很简单 前端 vue ip地址:192.168.1.205 后端 springboot2.0 ip地址:192.168.1.217 主要开发后端。 首先登陆成功时将用户存在session中,后续请求在将用户从session中取出检查。后续请求取出的用户都为null。 首先发现sessionID不一致,导致每一次都是新的会话,当然不可能存在用户了。然后发现cook原创 2021-09-30 17:48:01 · 2928 阅读 · 0 评论 -
mysql 常用语句记录
索引-- 修改字段名alter table TABLE_NAME rename column A to B; -- 修改字段类型(版本)alter table TABLE_NAME alter column COLUMN_NAME COLUMN_TYPE not null ;alter table TABLE_NAME modify column COLUMN_NAME COLUMN_TYPE not null ; -- 添加字段类型alter table TABLE_NAME add原创 2021-08-16 11:52:12 · 109 阅读 · 0 评论 -
生成订单号-根据时间阶段性递增不重复
直接上代码,只需要生成对应pay_trade_code表 selectById(systemTime)和saveOrUpdate(payTradeCode)方法CREATE TABLE `pay_trade_code` (`system_time` varchar(50) NOT NULL COMMENT '系统来源时间编号',`serial_code` int(10) NOT NULL COMMENT '递增流水号',PRIMARY KEY (`system_time`)) E...原创 2021-08-03 10:44:06 · 454 阅读 · 0 评论 -
初始化spring静态对象方法
@Componentpublic class TestClass { private static AutowiredTypeComponent component; @Autowired public TestClass(AutowiredTypeComponent component) { TestClass.component = component; } // 调用静态组件的方法 public static void testM...原创 2021-07-23 15:16:16 · 266 阅读 · 0 评论 -
多线程之线程池详细讲解
ExecutorServiceexecutorService=Executors.newFixedThreadPool(10);for(inti=0;i<10;i++){finalintfinalI=i;executorService.submit(newRunnable(){...原创 2019-11-20 11:14:31 · 170 阅读 · 0 评论 -
paypal支付与退款
官方提供的apihttps://developer.paypal.com/docs/?countries=C2PayPal有v1、v2两个版本的SDKv1支付请求步骤1 请求三方paypal接口,获取tokenid。2 获取token成功之后,会回调预先设置好的returnUrl方法,并带上tokenId和paryId进行token验证3 同样在returnUrl方法中,验证token通过之后再次调用paypal三方触发支付4 ipn回调通知(通知支付结果,防止paypal支付成功因原创 2021-07-08 19:46:32 · 4876 阅读 · 20 评论 -
stripe信用卡支付与退款
该篇文章提供的是一个简化版的stripe支付,纯后端Java,需引用对应的maven<dependency> <groupId>com.stripe</groupId> <artifactId>stripe-java</artifactId> <version>20.62.0</version></dependency>1 stripe调用根据公钥----获取tokenIdStri原创 2021-07-07 16:54:43 · 1947 阅读 · 2 评论 -
支付宝扫码支付与退款_直接上代码
1 支付宝支付https://opendocs.alipay.com/open/194/106078 //获得初始化的AlipayClient AlipayClient alipayClient = new DefaultAlipayClient ( "https://openapi.alipay.com/gateway.do" , APP_ID , APP_PRIVATE_KEY , "json" , CHARSET ,原创 2021-07-07 13:53:36 · 1799 阅读 · 0 评论 -
微信扫描支付与退款_直接上代码
在开发微信支付的过程中,微信官方提供了wxpay-sdk以及README.MD文件中开发demo。官方暂时未提供maven项目依赖,我们需要自己将wxpay-sdk代码引入项目或者自己手动打包到本地或者私服通过maven来管理。微信支付官方sdk地址:https://pay.weixin.qq.com/wiki/doc/api/download/WxPayAPI_JAVA.zip1 微信坑之1 抽象类WXPayConfig方法使用默认的修饰符当自己打包到本地或者私服项目通过maven管理w.原创 2021-07-07 10:42:21 · 567 阅读 · 0 评论 -
微信支付二维码生成工具类
调用此方法可直接通过流在浏览器页面生成二维码并触发微信支付。QRCodeUtils.encode(String content, String imgPath,OutputStream output, boolean needCompress) 直接上代码import java.awt.BasicStroke;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Image;import java.awt..原创 2021-07-06 18:13:08 · 1287 阅读 · 0 评论 -
Tomcat优化
Tomcat在各位JavaWeb从业者常常就是默认的开发环境,但是Tomcat的默认配置作为生产环境,尤其是内存和线程的配置,默认都很低,容易成为性能瓶颈.幸好Tomcat还有很多的提升空间.下文介绍一下Tomcat优化,可以分为内存,线程,IO.一:Tomcat内存优化,启动时告诉JVM我要一块大内存(调优内存是最直接的方式)Windows 下的catalina.batLinux 下的catalina.sh 如:JAVA_OPTS='-Xms256m -Xmx512m'-Xms转载 2021-02-04 10:32:07 · 78 阅读 · 0 评论 -
单机事务的理解
事务的四大特性 ACID原子性要求,事务是一个不可分割的执行单元,事务中的所有操作要么全都执行,要么全都不执行。一致性要求,事务在开始前和结束后,数据库的完整性约束没有被破坏。隔离性要求,事务的执行是相互独立的,它们不会相互干扰,一个事务不会看到另一个正在运行过程中的事务的数据。持久性要求,一个事务完成之后,事务的执行结果必须是持久化保存的。即使数据库发生崩溃,在数据库恢复后事务提交的结果仍然不会丢失。事务的隔离级别:更新丢失:也属于第二类数据的更新丢失,第二类丢失更新 A事务覆盖B事务已经提原创 2021-01-29 14:01:22 · 260 阅读 · 0 评论 -
JVM调优之 理论到实战
年轻代都是使用复制算法 YoungGc 时间很短年老代使用标记清除和标记整理算法 OldGc 时间较长 需要触发垃圾回收 有stw时间从串行---到并行 ---到并发收集如何区分垃圾1 引用计数2 对象可达性分析什么时候会触发垃圾回收elden申请伊甸园区空间满的时候-XX:+UseSerialGC-XX:+UseParallelOldGC-XX:+UseConcMarkSweepGC三种模式配置其中任一一种 ...原创 2021-01-27 17:31:33 · 428 阅读 · 0 评论 -
Docker部署
dockers的优势1 环境不一致的问题2 避免在多用户的操作系统下会相互影响3 运维成本过高4 学习成本过高5 安装软件成本过高dockers的思想1 集装箱会将所有需要的内容放到不同的集装箱,谁需要这些环境就直接到这个集装箱2 标准化运输标准化:docker有一个码头,所有上传的集装箱都放在了这个码头上,当谁需要某一个环境 就直接指派大海豚取搬运这个集装箱就可以了命令标准化:docker提供了一系列的命令,帮助我们获取集装箱的操作提供了rest的api...原创 2021-01-21 16:16:07 · 98 阅读 · 0 评论 -
redis分布式锁 以及单机锁 代码套用
类似于单机jvm锁机制// 获取锁Lock lock = new ReentrantLock();if(lock ==null){ throw new Exception("-----------");}try{}catch(Exception e){ }finally{ lock.unlock();}@Resourceprivate Redisson redisson;//分布式锁套用代码RLock redissonlLock = Redisson.getL.原创 2020-12-29 14:11:28 · 198 阅读 · 0 评论 -
github 骚操作
1 根据名称精确查找项目 并且点赞数大于等于5000的 in:name Springcloud stars:>5000转载 2020-12-08 17:47:49 · 173 阅读 · 0 评论 -
BeanUtils对象复制(深度拷贝)
对象复制工具类,实现方法如下:复制对象(深度拷贝)复制集合(深度拷贝)复制对象到指定类(深度拷贝)复制集合到指定类(深度拷贝)POM<!-- 对象拷贝 --><dependency> <groupId>uk.com.robust-it</groupId> <artifactId>cloning</artifactId> <version>1.9.12</version&g原创 2020-11-13 11:09:00 · 2741 阅读 · 0 评论 -
用redis统计在线人数工具类
public class OnlineUserUtil { @Resource private RedisUtils redisUtils; public static final String ONLINE_USER_IDSKEY="ONLINE_USER_IDS"; public void add(String userName){ if(!redisUtils.getTemplate().opsForSet().isMember(ONLINE_..原创 2020-08-27 10:15:18 · 302 阅读 · 0 评论 -
oracle常用语法语法
Oracle语法原创 2020-08-05 14:07:04 · 134 阅读 · 0 评论 -
oracle误删数据如何恢复
select * from CONFIG_PROPERTIES as of timestamp to_timestamp('2020-06-04 16:30:12', 'YYYY-MM-DD HH24:MI:SS');原创 2020-06-04 17:01:19 · 124 阅读 · 0 评论 -
多线程
一多线程介绍现在的操作系统基本都是多用户,多任务的操作系统。每个任务就是一个进程。而在这个进程中就会有线程。真正可以完成程序运行和功能的实现靠的是进程中的线程,线程有自己的栈(stack)、寄存器(Register)、本地存储(ThreadLocal)。多线程:在一个进程中,我们同时开启多个线程,让多个线程同时去完成某些任务(功能)。多线程的目的:充分利用cpu资源,提高程序的运行效率。...原创 2018-11-19 16:50:15 · 112 阅读 · 0 评论 -
jdk1.8新特性总结
一、引言 jdk1.8出来已经一段时间了,现在1.9也已经出来了,但是很多公司(我们公司也一样)不太愿意升级到高版本的jdk,主要是有老的项目要维护,还有升级的话配套的框架也要升级,要考虑的细节事情太多。前段时间去面试,问到了jdk1.8的新特性,博主答得不是很好,今天抽了一段时间把这些都总结一下。二、新特性 1、default关键字 在java里面,我们通常都是认为接口里面是只能...转载 2018-11-14 17:12:27 · 428 阅读 · 0 评论 -
Nginx就那么回事
一为什么使用Nginx1、在分布式项目中,我们专门建立一个图片服务器,用来存储图片(解决tomcat直接数据不同步问题),Nginx常用做静态内容服务和代理服务器,直面外来请求2、解决高并发(能够支持高达 50,000 个并发连接数的响应)二:Nginx使用场景1、http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。2、虚拟主机。可以实现在一台服务...原创 2018-11-13 14:42:59 · 88 阅读 · 0 评论