Java
文章平均质量分 74
java
Persistence___
成为浪漫的现实主义者
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
EasyCode(逆向工程)插件使用
通过easyCode 逆向工程生成对应需要Dao Mapper Dto Service Controller等文件原创 2022-07-19 23:15:42 · 600 阅读 · 0 评论 -
Sharding-jdbc 概念及Demo(4.0.0-RC1版本Demo)
shardingjdbc 分库分表 读写分离Demo和概念原创 2022-07-15 16:47:04 · 1006 阅读 · 0 评论 -
java设计模式
java设计原则和java设计模式原创 2022-07-11 16:43:21 · 542 阅读 · 0 评论 -
java反射
java反射学习原创 2022-07-06 22:10:20 · 313 阅读 · 0 评论 -
使用AOP实现防止表单重复提交问题,解决后端幂等性问题
在最近的工作开发中,需要设计到防止表单重复提交的问题。在前端的js中做了点击置灰的效果,但是无法防止使用postmain等刷新页面进行恶意攻击 ,就想用后端的技术来完成防止表单提交于是在网上找了一下。特此记录一下自己写的过程与碰到的问题。借鉴了某位大神的博客后写的忘记保存地址了。。。。。首先定义一个注解类。/** * 可以防止表单提交的注解 */@Retention(RetentionPolicy.RUNTIME)//指定该注解在运行时可以获取@Target(ElementType.METHO转载 2022-02-19 18:05:04 · 720 阅读 · 0 评论 -
Java实现AOP的两种方式
知道Spring的都知道Spring的切面编程AOP(Aspect Oriented Programming),这里我们不讲Spring的切面,后面有机会我们再来解剖Spring的切面编程,我们想讲解一下普通的Java代码中怎么实现AOP,有两种方式实现AOP切面,一种是原生SDK实现,一种是基于三方包cglib。1.原生jdk实现方式先介绍一下JDK原生的,JDK原生的是基于接口编程:先定义一个接口:public interface ISayHelloWorld { public Stri转载 2021-11-26 22:20:57 · 1618 阅读 · 0 评论 -
部署私服gitlab代码仓库
1.部署版本rpm下载https://packages.gitlab.com/gitlab/gitlab-ee/packages/el/7/gitlab-ee-13.10.2-ee.0.el7.x86_64.rpm2.将rpm包上传到服务器上并且安装rpm -i gitlab-ee-13.10.2-ee.0.el7.x86_64.rpm3.修改配置文件修改 vim /etc/gitlab/gitlab.rbexternal_url -> 服务器http://IP:端口4.执行配置g原创 2021-11-23 17:14:16 · 970 阅读 · 0 评论 -
jvm指令与工具jstat/jstack/jmap/jconsole/jps/visualVM
1.jpsjps查看java进程,java进程号2.jconsole图形化界面在linux上面无法显示,在本机可以查看1.查看对应cpu和内存使用情况2.查看jvm堆里面内存使用状况和gc情况3.查看对应进程中线程情况4.加载类情况5.jvm参数等信息6.所有加载的bean情况3. jstat1.jstat -gcutil 进程查看java进程内存使用情况jstat -gcutil 进程号 时间间隔jstat -gcutil 2284 1000 1秒钟打印一次内存原创 2021-11-23 00:07:06 · 383 阅读 · 0 评论 -
JVM及GC
1.JVM概述本地库接口 和C打交道 Java Native Interface JNI例如java的native方法 交给操作系统去干,操作系统去找本地方法库,所以native方法不用实现原创 2021-11-20 00:18:04 · 560 阅读 · 0 评论 -
JWT实践原理以及自己生成token案例
JWT实践jwt教程网站 https://jwt.io/JWT引入依赖 <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.9.0</version> </dependency>原创 2021-11-06 11:07:46 · 580 阅读 · 0 评论 -
RocketMQ集群原理及集群搭建
RocketMQ各个角色信息集群搭建模式集群工作流程集群搭建同步双写1. 主机规划序号ip角色架构模式110.211.55.10namesrv,brokerserverMaster1,Slave2210.211.55.8namesrv,brokerserverMaster2,Slave22. Host配置如下#nameserver10.211.55.10 rocketmq-nameserver110.211.55.8 rocket原创 2021-10-07 14:33:58 · 663 阅读 · 0 评论 -
dubbo
1.dubbo设计架构2.dubbo设计架构原创 2021-08-29 23:22:13 · 233 阅读 · 0 评论 -
Java Web之过滤器(Filter)
过滤器(Filter)过滤器实际上就是对web资源进行拦截,做一些处理后再交给下一个过滤器或servlet处理通常都是用来拦截request进行处理的,也可以对返回的response进行拦截处理大概流程图如下应用场景自动登录统一设置编码格式访问权限控制敏感字符过滤等创建Filter在Servlet中我们一般都会对request和response中的字符集编码进行配置,如果Servlet过多字符集编码发生变化时修改起码会很麻烦,这些通用的字符集编码配置等工作我们可以放到Filter中来实转载 2021-08-05 11:40:13 · 306 阅读 · 0 评论 -
java8新特性
Lambda表达式java8 内置的四大核心函数式接口Consumer : 消费型接口 void accept(T t)Supplier : 供给型接口 T get();Function<T,R> : 函数型接口 R apply(T t);Predicate :断言型接口 boolean test(T t);// Predicate<T>断言型接口 @Test public voi原创 2021-06-04 18:25:39 · 220 阅读 · 0 评论 -
自定义注解
相信很多人对Java中的注解都很熟悉,比如我们经常会用到的一些如@Override、@Autowired、@Service等,这些都是JDK或者诸如Spring这类框架给我们提供的。在以往的面试过程中,我发现,关于注解的知识很多程序员都仅仅停留在使用的层面上,很少有人知道注解是如何实现的,更别提使用自定义注解来解决实际问题了。但是其实,我觉得一个好的程序员的标准就是懂得如何优化自己的代码,那在代码优化上面,如何精简代码,去掉重复代码就是一个至关重要的话题,在这个话题领域,自定义注解绝对可以算得上是一个大转载 2021-05-13 15:37:02 · 216 阅读 · 0 评论 -
Spring AOP配置 之 @Aspect
@Aspect一、AOP概念(百度)二、AOP基本术语三、Advice类型四、Sping @Aspect开发步骤五、执行顺序六、试例代码一、AOP概念(百度)AOP(Aspect Oriented Programming):面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低转载 2021-05-13 11:34:42 · 695 阅读 · 0 评论 -
jstack排除java进程中cpu占用高
jstack介绍:jstack是jdk自带的线程堆栈分析工具,使用该命令可以查看或导出 java 应用程序中线程堆栈信息。jstack用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。如果java程序崩溃生成c转载 2021-05-12 12:49:44 · 2184 阅读 · 0 评论 -
Jstack线程状态BLOCKED/TIMED_WAITING/WAITING解释
一、线程5种状态1.新建状态(New) 新创建了一个线程对象。2.就绪状态(Runnable)线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。3.运行状态(Running) 就绪状态的线程获取了CPU,执行程序代码。4.阻塞状态(Blocked)阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态。阻塞的情况分三种: 1.等待阻塞:运行的线程执行wait()方法,JVM转载 2021-05-12 12:20:47 · 4399 阅读 · 0 评论 -
彻底理解Java的Future模式
先上一个场景:假如你突然想做饭,但是没有厨具,也没有食材。网上购买厨具比较方便,食材去超市买更放心。实现分析:在快递员送厨具的期间,我们肯定不会闲着,可以去超市买食材。所以,在主线程里面另起一个子线程去网购厨具。但是,子线程执行的结果是要返回厨具的,而run方法是没有返回值的。所以,这才是难点,需要好好考虑一下。模拟代码1:复制代码package test;public class C...转载 2019-02-20 22:45:41 · 307 阅读 · 0 评论
分享