java
文章平均质量分 51
DM搬运工
梦想还是要有的
展开
-
在idea中将未初始化的项目推送到git上
idea将未初始化的项目推送到git远程分支原创 2022-10-13 21:57:15 · 502 阅读 · 1 评论 -
JUC之线程池学习
1、计算完成时回调1.1、runAsync()无返回值//创建线程池并设置大小public static ExecutorService executor = Executors.newFixedThreadPool(10);public static void main(String[] args) throws ExecutionException, InterruptedException { System.out.println("main执行"); Completable原创 2022-02-20 22:43:38 · 257 阅读 · 0 评论 -
springboot整合redis实现分布式锁
redis常见问题:缓存穿透:程序中没有缓存null值;当大量请求获取一个不存在的数据时,由于缓存中没有缓存到null值,大量请求直接访问数据库,数据库压力陡增,从而出现穿透问题!解决方案:将查询结果为null的值缓存到redis中缓存雪崩:大量缓存同一个时间内失效;解决方案:在设置数据有效时间时,增加一个随机数缓存击穿:大量请求同时访问同一个缓存数据(如电商中的热点商品)!解决方案:添加分布式锁一、原生方式参考文档:https://github.com/re原创 2022-02-15 14:50:22 · 2284 阅读 · 2 评论 -
JMeter压力测试
JMeter压力测试原创 2022-02-10 23:12:41 · 227 阅读 · 0 评论 -
解决本地新建项目推送到码云失败的问题
1、问题重现在idea上新建spring项目接着在码云上新建仓库找到步骤1中代码所在文件夹,将码云上的仓库clone到项目路径下在idea上提交代码,出现如下问题:! refs/heads/master:refs/heads/master [rejected] (fetch first)hint: not have locally. This is usually caused by another repository pushingDonehint: to the same ref.原创 2022-01-17 15:44:03 · 2779 阅读 · 0 评论 -
初识码云 -- 利用git将代码推送到码云上
前言:将本地代码推送到码云上一、初始化本地git在电脑桌面,点击鼠标右键进入git操作页面:初始化用户名和邮箱:#用户名$ git config --global user.name "your name"#邮箱$ git config --global user.email "[email protected]"二、生成ssh密钥并配置到码云上$ ssh-keygen -t rsa -C "[email protected]"查看密钥:$ cat ~/.ssh/id_rsa.pub原创 2021-11-29 17:54:38 · 418 阅读 · 0 评论 -
zookeeper + kafka + OpenRestry + Lua + Apache Druid实现日志收集与分析
前言:本文基于springboot分布式系统实现日志的收集与分析,多用于电商项目的秒杀等热点数据。文章中的内容涉及zookeeper(注册中心)、kafka(队列)、Lua语言(日志收集)以及Apache Druid(实时分析)等热门技术。一、zookeeper安装注意:安装zookeeper前,需确保已安装jdk1.8_92以上到虚拟机!安装jdk参考上一篇文章 Linux安装jkd1.8。下载地址:https://zookeeper.apache.org/releases.html1、上原创 2021-11-15 23:13:19 · 3202 阅读 · 2 评论 -
Linux安装jdk1.8
一、下载安装包注:本文章的安装目录为/usr/local,jdk版本为jdk1.8.0_131,采用wget方式下载。1、如虚拟机尚未安装wget,则需先下载安装:[root@localhost local]# yum install -y wget2、下载jdk[root@localhost local]# wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup.原创 2021-11-15 09:30:29 · 1781 阅读 · 0 评论 -
springMVC实现的两种方式
前言:springMVC实现的两种方式一、环境准备1、导入依赖<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>5.2.0.RELEASE</version> </dependen原创 2021-07-08 21:12:15 · 299 阅读 · 2 评论 -
springboot整合mybatis、swagger、redis、thymeleaf-shiro、异步、定时任务以及mail邮件发送
前言:springboot整合mybatis、swagger、redis、thymeleaf-shiro、异步、定时任务以及mail邮件发送项目结构:一、整合mybatis1、准备测试数据SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for user-- ----------------------------DROP TABLE IF原创 2021-07-07 20:56:32 · 1418 阅读 · 11 评论 -
springboot整合spring-jdbc
前言:springboot 整合spring-jdbc一、spring-jdbc整合1、准备测试数据SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for user-- ----------------------------DROP TABLE IF EXISTS `user`;CREATE TABLE `user` ( `id` in原创 2021-07-07 10:10:42 · 442 阅读 · 0 评论 -
ssm整合
前言:ssm整合一、整合mybatis1、创建数据库SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for books-- ----------------------------DROP TABLE IF EXISTS `books`;CREATE TABLE `books` ( `bookID` int(11) NOT NULL AU原创 2021-07-06 19:48:00 · 101 阅读 · 0 评论 -
spring整合mybatis两种方式
前言:参考mybatis-spring官网:http://mybatis.org/spring/zh/index.html一、环境准备1、准备测试数据SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for user-- ----------------------------DROP TABLE IF EXISTS `user`;CREATE原创 2021-07-06 10:46:47 · 118 阅读 · 0 评论 -
springboot中整合POI实现报表的导入导出
前言:目前世面上的Excel分为两个大的版本Excel2003和Excel2007及以上两个版本,两者之间的区别如下:Excel2003是一个特有的二进制格式,其核心结构是复合文档类型的结构,存储数据量较小;Excel2007 的核心结构是 XML 类型的结构,采用的是基于 XML 的压缩方式,使其占用的空间更小,操作效率更高Java中常见的用来操作Excl的方式一般有2种:JXL和POI。JXL只能对Excel进行操作,属于比较老的框架,它只支持到Excel 95-2000的版本。现在已经原创 2021-06-22 16:58:15 · 1217 阅读 · 0 评论 -
springboot中实现shiro的会话管理(redis缓存)
前言:在分布式系统或者微服务架构下,都是通过统一的认证中心进行用户认证。如果使用默认会话管理,用户信息只会保存到一台服务器上。那么其他服务就需要进行会话的同步。SessionManager(会话管理器):管理所有Subject的session包括创建、维护、删除、失效、验证等工作。SessionManager是顶层组件,由SecurityManager管理,shiro提供了三个默认实现:DefaultSessionManager:用于JavaSE环境ServletContainerSession原创 2021-06-21 16:19:22 · 769 阅读 · 0 评论 -
springboot中实现shiro的认证与授权
前言:在springboot中有两种方式可以实现shiro的授权,分别是基于配置的授权和基于注解的授权。注:详细请观看B站视频(传智播客)https://www.bilibili.com/video/BV18A411L7UX一、环境搭建1、准备数据库数据DROP TABLE IF EXISTS `pe_permission`;CREATE TABLE `pe_permission` ( `id` varchar(40) NOT NULL COMMENT '主键', `name` v原创 2021-06-20 12:08:22 · 604 阅读 · 0 评论 -
springboot整合微信支付(完整)
开发环境java1.8maven 3.3.9springboot 2.1.3.RELEASE第一步:开通JSAPI支付1、登陆已认证企业服务号,开通微信支付注册微信商户号请参考官方文档,参考地址如下:https://pay.weixin.qq.com/index.php/apply/applyment_home/guide_normal#none2、开通JSAPI开通微信支付后即可在微信商户平台(pay.weixin.qq.com)开通JSAPI支付。登录商品平台:进入.原创 2021-06-11 11:34:11 · 10698 阅读 · 7 评论 -
springboot整合支付宝支付
前言:基于支付宝沙箱环境开发开发环境java1.8maven 3.3.9springboot 2.1.3.RELEASEMuMu模拟器支付宝app(沙箱版)第一步:获取支付宝支付所需的公钥和私钥1、登陆支付宝开放平台https://open.alipay.com/platform/home.htm登陆进开放平台后,找到 “研发服务”,点击进去2、生成密钥注意:密钥的生成需要借助支付宝提供的工具来生成。工具下载地址:https://opendocs.alipay.com原创 2021-06-10 22:46:25 · 1242 阅读 · 0 评论 -
在项目中使用mapstruct时报错:java.lang.ClassNotFoundException: Cannot find implementation
前言:MapStruct 是一个可以处理注解的Java编译器插件,可以在命令行中使用,也可以在 IDE 中使用。MapStruc t有一些默认配置,但是也为用户提供了自己进行配置的途径。缺点就是这玩意在使用工具自带的编译器时不会生成实现类,需要通过 maven 的方式来进行编译,然后才会生成实现类。解决方案:引入jar依赖<dependency> <groupId>org.mapstruct</groupId> <artifactId>ma原创 2021-06-09 10:49:20 · 7477 阅读 · 7 评论 -
springboot整合rabbitMQ(注解)
1、消息生产端1、新建一个maven项目,并导入依赖<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.4.RELEASE</version></parent><dependencies&.原创 2021-06-04 10:41:54 · 323 阅读 · 0 评论 -
springboot整合rabbitMQ(2)
前言:RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息中间件,近些年来,在各个企业中进行了广泛的使用。本文是在学习rabbitMQ中进行分类总结。<!--导入依赖--><dependencies> <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId>原创 2021-06-04 10:27:56 · 61 阅读 · 0 评论 -
springboot整合rabbitMQ(1)
前言:RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息中间件,近些年来,在各个企业中进行了广泛的使用。本文是在学习rabbitMQ中进行分类总结。1、简单模式发送消息//简单模式,发送消息public class Producer { public static final String QUEUE_NAME = "simple_queue"; public static void main(String[] args) throws Exception {原创 2021-06-04 10:19:27 · 189 阅读 · 0 评论 -
windows安装rabbitMQ所遇到的问题
前言:erlang安装成功后,rabbitMQ界面一直访问不了1、报错如下:Starting node rabbit@DESKTOP-9J5L1N1 ...Error: unable to perform an operation on node 'rabbit@DESKTOP-9J5L1N1'. Please see diagnostics information and suggestions below.Most common reasons for this are: * Targe原创 2021-05-30 23:37:43 · 2390 阅读 · 2 评论 -
JAVA网络编程之URL下载资源
下载图片public class URLTest { public static void main(String[] args) throws IOException { URL url = new URL("https://imgessl.kugou.com/stdmusic/20200909/20200909112317319417.jpg"); //打开链接 HttpURLConnection urlConnection = (HttpU.原创 2021-04-13 17:11:36 · 99 阅读 · 0 评论 -
JAVA网络编程之UDP实践
1、消息发送发送端:public class UdpClient { public static void main(String[] args) throws IOException { //1、建立一个socket DatagramSocket socket = new DatagramSocket(); /* byte buf[], int offset, int length, .原创 2021-04-13 16:57:11 · 87 阅读 · 0 评论 -
JAVA网络编程之TCP实现聊天及上传文件
1、TCP实现聊天客户端代码:public class TcpClient { public static void main(String[] args) throws IOException { Socket socket = new Socket("127.0.0.1", 9999); OutputStream outputStream = socket.getOutputStream(); outputStream.write("你好呀.原创 2021-04-13 15:01:04 · 252 阅读 · 0 评论 -
JAVA初识多线程五死锁
案例代码------->模拟死锁//死锁,多个线程互相抱着对方的资源,然后形成僵持public class DeadLock { public static void main(String[] args) { EatBreakfast e1 = new EatBreakfast(0, "小红"); EatBreakfast e2 = new EatBreakfast(1, "小明"); e1.start(); e2..原创 2021-04-12 14:31:15 · 77 阅读 · 0 评论 -
JAVA初识多线程四线程不安全三大案例及解决方案(线程同步)
案例一//线程不安全public class BuyTicker { public static void main(String[] args) { Buy buy = new Buy(); new Thread(buy,"小明").start(); new Thread(buy,"小李").start(); new Thread(buy,"小红").start(); }}class Buy implemen.原创 2021-04-12 10:47:58 · 164 阅读 · 0 评论 -
JAVA初识多线程三之内部类和 Lamda表达式
一、推导Lamda表达式//内部类的简化(推导Lamda表达式)public class LamdaTest { //2、静态内部类 static class Interface1 implements MyInterface{ @Override public void test() { System.out.println("I am Interface1"); } } public st.原创 2021-04-09 11:43:12 · 92 阅读 · 0 评论 -
JAVA初识多线程二之静态代理模式
静态代理模式//静态代理模式总结://真实对象和代理对象都要实现同一个接口//代理对象要代理真实角色//好处: //代理对象可以做很多真实对象做不了的事情 //真实对象专注做自己的事情public class StaticProxy { public static void main(String[] args) { //对比下面两种方式,其都是代理对象(Thread实现了Runnable接口,Parent实现了School接口) n.原创 2021-04-09 10:24:24 · 55 阅读 · 0 评论 -
JAVA初识多线程一之线程实现方式
方式一、继承Thread类//创建方式一:继承Thread,重写run方法,调用start开启进程// 总结:注意:线程开启不一定立即执行,由CPU调度执行public class TestThread extends Thread{ @Override public void run() { for (int i=0; i < 10 ;i++){ System.out.println("我重写了父类的run方法"+i); .原创 2021-04-08 17:39:34 · 80 阅读 · 0 评论 -
JAVA基础之打印九九乘法表、三角形及实现冒泡排序法
打印九九乘法表 /** * 打印九九乘法表 */ @Test public void test(){ for (int i = 1; i <= 9; i++) { for (int j = 1 ; j<=i ;j++){ System.out.print(""+j+"*"+i+"="+(i*j)+"\t"); } System.out.println(); }}打印三角形/** .原创 2021-04-07 11:35:51 · 368 阅读 · 0 评论