自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 Post表单提交后端接不到参数

框架:Springboot版本:1.5.6.REAEASE。

2024-04-11 20:54:22 442

原创 Sharding-JDBC实现读写分离实战

场景:1.我本地有localhost:3306,localhost:7306两个mysql服务2.在两个服务中分别创建test数据库3.在两个数据库上创建相同的user表4.我们规定ds1为写库,ds2为读库一、创建一个springboot项目,结构如下二、pom.xml直接粘贴过去(了解一下jar包作用!)<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/

2022-03-05 10:24:47 718

原创 Sharding-JDBC实现水平分库实战

场景:1.我本地有localhost:3306,localhost:7306两个mysql服务2.在端口3306中创建test数据库3.在端口7306中创建test2数据库4.在两个数据库上创建相同的表orders_1,orders_2一、创建一个springboot项目,结构如下二、pom.xml直接粘贴过去(了解一下jar包作用!)<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.a

2022-03-05 10:01:53 862

原创 Sharding-JDBC实现公共表实战

场景:不同数据库存在相同的表,保持数据同步一、创建一个springboot项目,结构如下二、pom.xml直接粘贴过去(了解一下jar包作用!)<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="htt

2022-03-05 09:09:53 536

原创 Sharding-JDBC实现垂直分库实战

场景:订单表和用户表存在不同数据库中一、创建一个springboot项目,结构如下二、pom.xml直接粘贴过去(了解一下jar包作用!)<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:/

2022-03-02 21:42:48 961

原创 Sharding-JDBC实现水平分表实战

Sharding-JDBC实现水平分表

2022-02-28 21:14:03 969 1

原创 Portainer重置密码步骤

以下代码块中的命令依次执行即可1.停止运行的portainerdocker stop '这里写你的portainer id 或者 name'2.下载帮助镜像docker pull portainer/helper-reset-password3.运行重置命令(前提是你安装的时候是根据官网步骤来的)官网地址:https://documentation.portainer.io/v2.0/deploy/ceinstalldocker/如果创建的时候修改了挂载的位置,这边路径也是需要修改的

2022-02-11 09:52:20 5668 1

原创 限流的目标和模式

什么是限流?我们简化一个电商项目,主要分以下4个服务,全部成功走完才算成功,该业务总超时时间是5秒,每个服务平均处理时间是0.5秒,我们通过集群的方式给每个服务部署5个节点 1.客户下单 2.进行扣款 3.物流发货 4.通知客户下单成功以下有几个问题(理想状态下)1.单个用户成功下单需要多长时间?答案:4 × 0.5 = 2 秒 4个服务都成功 乘以 每个服务0.5秒 这里就是我们常说的CPU处理时间2.集群中每个服务每秒最多处理多少个请求?答案:(1 ÷ 0.5)× 5 = 1

2022-01-29 10:20:20 858 1

原创 Linux学习笔记(Java开发使用)

日志查看:1.实时刷新日志tail -f xxx.log2.实时刷新日志的最后20行tail -20f xxx.log3.从日志中检索关键字(例如我们在代码中输出了【任务开始】四个字)tail -100f xxx.log grep [任务开始]文件查看编辑:1.安装nano插件 CentOS系统执行 yum -y install nano Debian/Ubuntu系统执行 apt-get install -y nano2.使用 nano+文件名 即可3.编辑完保存 ctrl

2022-01-13 16:52:48 632

原创 Avue2 wangeditor(富文本) 支持视频上传

1.默认效果2.修改后的效果3.具体步骤如下3.1 源码copy到我们的组件模块下,删掉无用代码,结构如下3.2 修改项目引用,直接引用我们本地组件import AvueUeditor from '@/components/avue-plugin-ueditor';3.3 修改main.vue文件,主要修改两个方法1.initEdit()方法中增加一下代码// 配置 server 接口地址this.editor.config.uploadVideoServer = '/front-

2021-12-22 14:19:30 2634 5

原创 多个docker-compose.yml配置在同一网段

注意点:容器间调用通过container_name,因为每次容器重启IP会变1、创建网络docker network create -d bridge mynetwork2、创建一个mysql的yml文件version: "3"services: mysql: image: mysql:5.7 container_name: mysql networks: - default - mynetworknetworks: mynetwork:

2021-12-03 09:55:03 2835

原创 npm 镜像切换

查看本地镜像:npm get registry 设成淘宝镜像:npm config set registry http://registry.npm.taobao.org/切回原镜像:npm config set registry https://registry.npmjs.org/

2021-11-09 11:13:14 920

原创 Springboot使用ThreadPoolTaskExecutor线程池,多线程调用实例

项目场景:15万条数据需要做逻辑处理,然后存入数据库硬件:windows 4核 i7 16G内存问题描述:响应太慢,服务容易出现卡死原因分析:原先是JPA保存,每次与数据库交互都会创建连接,执行完关闭连接,这样是很耗时的解决方案:1.修改存库方式,通过mybatis批量insert,一般每批3000条,语句过长会报错,并不是每批量越大越好,需要根据实际情况分析,笔者这边不做过多解释,有兴趣的可以看下相关知识2.通过多线程执行多线程配置新建一个class,把以下配置文件直接原封不动

2021-07-19 11:19:58 6194 18

原创 通过HSDB讨论Java虚拟机运行时对象存放位置

本地环境:Windows10 jdk1.8本文参考书本《深入礼节Java虚拟机》第四章1 这边直接把书中的代码拿过来了(请看下注释)// 注意这里的包名路径,后面会用到package vip.mate.module.accounting.controller;public class JHSDB_TestCase { static class Test{ static ObjectHolder staticObj = new ObjectHolder();

2021-07-08 16:17:24 552 8

原创 BigDecimal.setScale()方法总结

1. ROUND_UP代码如下(示例):BigDecimal bigDecimal = new BigDecimal("1.221").setScale(2, BigDecimal.ROUND_UP);System.out.println(bigDecimal); // 1.23 不管舍弃位是几 直接进一位2. ROUND_DOWN代码如下(示例):BigDecimal bigDecimal = new BigDecimal("1.2266").setScale(2, BigDecimal.

2021-06-10 17:12:37 2627 6

原创 EasyPOI导出数字格式(type=10)无效

问题:@Excel()中设置了参数type = 10,导出的Excel中还是文本格式代码如下:@Excel(name = "运费",type = 10,isImportField = "true_st")private BigDecimal freight;解决办法:1.新增以下类(原封不动copy到你们项目中,代码中的注释一定要看一下)代码如下:import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;impor

2021-05-25 16:54:07 4117 3

原创 Java统计List中每个元素出现的次数

Collections.frequency(list, key)import java.util.ArrayList;import java.util.Collections;import java.util.List;public class Test { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add

2021-05-18 16:52:09 3548 1

原创 Java对象转Map,Map转对象

1 map 转 对象map中value的值类型 一定要和 对象中的属性一致public class Test { /** * @param map * @param bean 泛型类 * @param <T> * @return */ public static <T> T mapToBean(Map<String, Object> map, T bean) { BeanMap bean

2021-04-30 17:37:38 1847 2

原创 java8 LocalDate

获取年,月,日,周几 public static void main(String[] args) { // 获取当前时间 LocalDate localDateTime = LocalDate.now(); System.out.println("当前时间为:" + localDateTime); // 获取当前月份 System.out.println("当前月份为:" + localDateTi

2021-04-30 17:13:06 452 4

原创 Mysql批量插入数据

需求:向Mysql插入10000条数据环境:Mysql和Java代码都运行在我本地Windows电脑(i7处理器,4核心,16G运行内存,64位操作系统)1 单线程执行代码省略,大概需要39S左右2 多线程执行大概需要37S左右,并没有想象中的快很多原因: 多线程只是大大提高了程序处理数据的时间,并不会提高插入数据库的时间,相反在我这边JPA的框架下,多线程也就意味着多连接,反而更加消耗数据库性能package com.example.demo.controller;import c

2021-04-29 13:57:47 837 8

原创 Java字符串处理

1 字符串截取1.1substring(int beginIndex)提取从索引位置开始至结尾处的字符串部分1.2 substring(int beginIndex,int endIndex)截取的字符串中包括起始索引对应的字符;endIndex 表示结束索引,截取的字符串中不包括结束索引对应的字符 public static void main(String[] args) { // 下标从0开始 String str = "Java"; Syst

2021-04-28 13:53:45 818 9

原创 Spring Security OAuth2--密码模式 实战

1.OAuth2协议简介:OAuth是一种用来规范令牌(Token)发放的授权机制,目前最新版本为2.0,不兼容1.0,主要有四种授权模式:授权码模式、简化模式、密码模式和客户端模式。我这边的前端系统是通过用户名和密码来登录系统的,所以这里只介绍密码模式2.密码模式简介:在密码模式中,用户向客户端提供用户名和密码,客户端通过用户名和密码到认证服务器获取令牌。流程如下:如上图所示,密码模式包含了三个步骤:(A)用户访问客户端,提供URI连接包含用户名和密码信息给授权服务器(B)授权服务器对客户

2021-04-25 14:01:37 3060 19

原创 Mybatis Plus—代码生成器

需求:mybatis项目手动创建Controller,Service,ServiceImpl,Mapper,Mapper.xml太麻烦解决办法:借用MyBatis-Plus代码生成器注意点:代码中加注释的地方都需要改为你们自己的配置官网地址:Mybatis Plus—代码生成器1.导入依赖,两个jar包都需要 <dependency> <groupId>com.baomidou</groupId>

2021-04-13 11:03:29 570 3

原创 MultipartFile转File

需求:前台传入的文件类型是MultipartFile,后台要用到的是File类型解决办法:通过流转化代码如下:import org.springframework.http.MediaType;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.we

2021-04-07 15:30:16 774 8

原创 SpringBoot使用RestTemplate调用第三方接口

系统对接主要就是根据别人提供的接口文档对接口每个系统都有自己的认证方式,如果每个人都能直接调用,服务器很容易就会瘫痪我这边有一个需求是:1.登录对方系统拿到jwtToken2.发送其他请求时,头部中必须携带jwtToken才能发送成功3.我们这边先用postman试一下(不传指定参数),请求成功返回未授权,说明人家系统可以调用并且认证也开启了这边是我代码调用成功的截图代码先引用pom.xml依赖 <dependency> <

2021-03-23 12:39:43 998 8

原创 Array转List,List转Array

##:1、List转Arrayimport java.util.ArrayList;import java.util.List;public class Test { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("张三"); list.add("李四"); list.

2021-03-18 18:06:43 528 2

原创 linux下安装docker,docker-compose,portainer

环境准备:Linux Centos7服务器1、Docker下载参考该链接:https://docs.docker.com/engine/install/centos/$ sudo yum install -y yum-utils$ sudo yum-config-manager \ --add-repo \https://download.docker.com/linux/centos/docker-ce.repo2、执行安装$ sudo yum install docker-

2021-03-16 16:26:50 1532 6

原创 String与JSONObject ,JSONArray 之间的转化及遍历

第一种数据结构(JSONObject )String jsonStr = “{“lng”:120.413354,“lat”:31.298914}”import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;public class JSONDataProcessing { public static void main(String[] args) { String jsonStr =

2021-03-16 14:46:17 2397 19

原创 Map遍历

1、最常用的Map<String, Integer> map = new HashMap<String, Integer>();map.put("java", 100);map.put("c", 100);for (Map.Entry<String, Integer> entry : map.entrySet()) { String key = entry.getKey(); Integer value = entry.getValue();

2021-01-20 17:58:02 621 1

原创 Java日期工具类

1、当天开始时间 /** * 当天开始时间 * @param timestamp 传入 1609230917904 返回 1609171200000 * @return * calendar.getTime().getTime()就可以获取到当前时间戳 */public static Calendar getCalendarStartOfDay(long timestamp) { Calendar calendar = Calendar.getInstance(Tim

2020-12-29 16:42:39 508

原创 JMS(java消息服务) 与ActiveMQ(消息队列)实战

1、基础知识:1、JMS全称Java Message Service(java消息服务),其实就是两个java服务之间发消息2、本文只介绍p2p消息模型(Point-to-Point),百度借个模式图3、每个消息都被发送到一个特定的队列,接收者从队列中获取消息。队列保留着消息,直到他们被消费或超时4、每个消息只有一个消费者5、发送者和接收者之间没有依赖关系,无论接收者是什么状态,发送者都可以向队列发送消息(JMS的客户端之间可以通过JMS服务进行异步的消息传输)6、接收者成功接收后,会向队列报

2020-12-15 20:40:46 688

原创 Docker部署Mongo集群 一主两从

环境:1、准备一个linux服务器(我这边是ubuntu环境)2、确保有docker和docker-compose环境搭建流程第一步// 1 登录进自己的服务器 切到根目录cd /// 2 创建docker 文件夹

2020-12-12 13:29:38 2043 5

原创 Spring Data JPA 命名规则

表结构:import lombok.Data;@Datapublic class User { /** * 主键 */ @Id @GeneratedValue private Long id; /** * 姓 */ private String firstName; /** * 名 */ private String lastName; /** * 年龄 */

2020-12-07 20:51:51 844

原创 Docker部署Redis集群 一主两从

搭建条件1、准备一个linux环境2、确保成功安装好Docker我这边在windows系统上,使用SSH连接服务器,检查docker环境下面开始搭建第一步,下载镜像// 推荐使用网易蜂巢的镜像中心docker pull hub.c.163.com/library/redis:latest第二步,启动三个redisdocker run --name redis-6379 -p 6379:6379 -d hub.c.163.com/library/redisdocker run -

2020-12-03 19:34:31 1245 3

原创 Java 关于锁的灵魂8问,彻底理解锁

1、直接看代码,线程A和线程B谁先执行?public class Lock { public static void main(String[] args) { Phone phone = new Phone(); new Thread(() -> { phone.message(); }, "线程A").start(); new Thread(() -> {

2020-12-02 20:49:43 457 2

原创 Java 入门理解一下栈

总结一下栈:1、 先进后出,后进先出(类似把东西放进一个木桶里,再从里面拿出来)2、栈内存主要负责程序的运行,生命周期和线程同步3、线程结束,栈内存也就释放,所以栈是不存在垃圾回收的问题的4、主要存放8大基本类型 + 对象引用 + 实例的方法我们经常会看到一个错误:StackOverflowError(栈溢出),递归就会产生这个错误,我们现在用代码演示一下...

2020-12-02 12:07:58 1135 21

原创 十分钟搞定SpringBoot集成Swagger

Swagger主要作用:接口可以实时更新给接口增加注解,让前端同事轻松看懂主要步骤1.新建一个SpringBoot Web项目,项目结构如下2.导入相关依赖 <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui --> <dependency> <groupId>io.springfox</groupId> <artifactI

2020-12-01 18:56:44 477

原创 快速搭建一个SpringBoot项目,自动生成相关代码并能实现基础增删改查,一个人撸完一个项目

大佬请直接把代码拿过去用,刚出来的小伙伴请看下面的详细步骤,源码地址也会放在下面package com.example.demo.until;import java.io.File;import java.io.FileWriter;import java.util.Arrays;import java.util.List;import java.util.stream.Collectors;public class CodeGenerator { public static fi

2020-11-27 15:37:19 1048

原创 Java 初识Lock锁和Synchronized

我们模拟一个卖票系统,演示并发1.三个线程同时卖票,我们可以看到控制台圈红的输出信息,剩余的票是杂乱无序的2.以前我们解决这个问题只需要加一个关键字 synchronized即可初识Lock锁,我们同样用代码演示,主要看圈红的步骤Lock锁和Synchronized区别1.Synchronized 是我们java中的关键字,Lock 是一个java类2.Synchronized 无法获取锁的状态,Lock 可以判断是否获取到锁3.Synchronized 可以自动释放锁,Lock 需

2020-11-25 10:41:21 1903 10

原创 Java8常用Lambda表达式

1、表结构package com.example.demo;import lombok.Data;import java.math.BigDecimal;@Datapublic class User { private Long id; private int age; private String name; private BigDecimal money; private String department; }2、方法Li

2020-11-24 15:22:04 6900 41

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除