分类: Java

11 篇文章

Java 反射
反射介绍 概念 反射机制允许程序在执行期间借助于 Reflection Api 获取任何类的内部信息(成员变量、构造器、成员方法等),并能直接操作任意对象的内部属性和方法。当一个类被加载之后,就在堆内存的方法区中产生了一个相应的 Class 类型的对象(一个类只有一个Class对象),这个对象包含了完整的类的结构信息,可以通过这个对象看到类的结构。…
ElasticSearch
安装 安装 ES 下载压缩包 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.14.0-linux-x86_64.tar.gz 解压 tar -zxvf elasticsearch-7.14.0-linux-x86_64.tar.gz 修改配置文件,…
Java 动态代理
动态代理实现: 1、JDK 动态代理 ​ 用 Java 反射包中的类和接口实现动态代理 2、CGLIB 动态代理 ​ 通过第三方库 CGLIB ,以继承类的方式实现动态代理 JDK 代理 由于底层机制的缘故,被代理的目标类必须实现至少一个接口 创建被代理的目标类以及其实现的接口创建 InvocationHandler 接口的实现类,在 invoke…
Java 手写异步调用
前言 今天在写 mirai 机器人的一个小功能时,遇到了这样一个需求:机器人需要先发出一条消息,然后间隔 3 秒钟撤回这条消息 。 当然mirai本身提供了现成的方法,支持异步调用 最朴素的想法是使用Thread.sleep(3000) public class Test { public void A() { System.out.println…
RestTemplate的简单使用
什么是RestTemplate RestTemplate 是 Spring 提供的一个Http请求工具。它支持常见的Rest请求方案的模板,例如 GET 请求、POST 请求、PUT 请求、DELETE 请求以及一些通用的请求执行方法 exchange 以及 execute。说白了,它的功能就类似 HttpClient。在Spring项目中,使用 …
SpringBoot使用HibernateValidator实现参数校验
依赖 Hibernate Validator是Spring Boot集成的参数校验框架; 但从Spring Boot 2.3版本开始默认移除了校验功能,如果想要开启的话需要添加如下依赖。 <dependency> <groupId>org.springframework.boot</groupId> <ar…
RabbitMQ基本操作
docker安装RabbitMQ docker run \ -d --name myrabbitmq \ -p 5672:5672 -p 15672:15672 \ -v rabbitmqData:/var/lib/rabbitmq \ -e RABBITMQ_DEFAULT_USER=username \ -e RABBITMQ_DEFAULT_…
shiro的重定向在前后端分离项目中的解决方案
问题 今天在测试代码的时候突然报了这个异常: 原因 当用户处于未登录状态,向一个需要登录的接口发送GET请求时,shiro自带的拦截器会将这个请求原封不动地重定向到设置地登录接口。而由于登录接口是PostMapping,所以报了这个异常。 ShiroFilterFactoryBean shiroFilterFactoryBean = new Shi…
枚举实现单例模式
public class User { //私有化构造函数 private User(){ } //定义一个静态枚举类 static enum SingletonEnum{ //创建一个枚举对象,该对象天生为单例 INSTANCE; private User user; //私有化枚举的构造函数 private SingletonEnum(){ u…
JDK8 stream处理集合的用法
之前看项目代码时经常发现操作集合时用到了stream,但是看不太懂,于是决定写一篇博客作为学习笔记以便日后查验 概念 Stream是JDK8 API引入的新特性,用于对集合、数组进行复杂的查找、过滤、映射数据等操作。 工作原理: 把数据源(集合、数组等)转化成stream流并且进行一系列中间操作,最后产生一个新流。 特点 1、stream自己不会存…