java0基础
文章平均质量分 60
liuhm~
代码搬运工
展开
-
Springboot+mybatis-plus+dynamic-datasource+继承DynamicRoutingDataSource切换数据源
dynamic-datasource 跨库进行切换数据源可以用DynamicDataSourceContextHolder.push()在过滤器[filter]里切换拦截器里切换数据源方法内部硬编码切换通过service,mapper加注解进行切换@DS (不推荐,有切面没有切成功的,如本类调用自己的方法)重写DynamicRoutingDataSource选择器,自定义上下文获取租户id获取对应的DataSource。原创 2024-05-10 09:51:20 · 1038 阅读 · 1 评论 -
Hikari 讲解
前言现在已经有很多公司在使用HikariCP了,HikariCP还成为了SpringBoot默认的连接池,伴随着SpringBoot和微服务,HikariCP 必将迎来广泛的普及。下面带大家从源码角度分析一下HikariCP为什么能够被Spring Boot 青睐,文章目录如下:目录零、类图和流程图开始前先来了解下HikariCP获取一个连接时类间的交互流程,方便下面详细流程的阅读。获取连接时的类间交互:图1一、主流程1:获取连接流程HikariCP获取连接时的入口是HikariDat转载 2021-08-05 18:03:59 · 12360 阅读 · 0 评论 -
Redis哨兵模式(一主两从三哨兵)
Redis哨兵模式Sentinel(哨岗、哨兵)是Redis的高可用性(high availability)解决方案:由一个或多个Sentinel实例(instance)组成的Sentinel系统(system)可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令请求。 ——《Red原创 2021-07-19 15:50:03 · 3411 阅读 · 3 评论 -
netty-socketio 集群测试
socket.io官网地址服务端Java: https://github.com/mrniko/netty-socketioJava: https://github.com/trinopoty/socket.io-server-javanetty-socketiodemoClass - Web client pagecom.corundumstudio.socketio.demo.ChatLauncher - /client/index.htmlcom.corundumstudio.s原创 2021-06-17 12:10:34 · 2449 阅读 · 7 评论 -
Minio搭建私有图床
Minio搭建私有图床Minio install安装docker、docker-compose见 docker在线安装.md安装Minio创建统一目录mkdir /home/minio创建docker-compose.ymldocker-compose.yml 内容如下:version: '3.7'services: minio: image: minio/minio hostname: mysql container_name: mysql v原创 2021-01-05 10:56:19 · 2021 阅读 · 3 评论 -
线程池研发学习笔记
线程池研发原创 2020-11-30 09:05:25 · 1423 阅读 · 1 评论 -
解析sql里面select的字段where里面使用的字段,替换字段
引入pom <dependency> <groupId>com.github.jsqlparser</groupId> <artifactId>jsqlparser</artifactId> <version>0.9</version> </dependency>代码看测试代码package com.liuhm原创 2020-11-26 10:43:31 · 1603 阅读 · 0 评论 -
开放和禁止docker的服务
解决思路,开启防火墙,禁止该端口开放出去使用方法复制changeMagic.sh到目录里面授权chmod +x changeMagic.sh查看帮助./changeMagic.sh --help查看某个服务的防火墙状态 redis-host 是服务名称./changeMagic.sh status redis-host查看所有的服务防火墙状态./changeMagic.sh status禁止某个服务的外网访问./changeMagic.sh forbid redis-host允许某原创 2020-11-12 11:17:14 · 342 阅读 · 0 评论 -
token 登录途中自动延迟失效时间
token 登录途中自动延迟失效时间方法一 refresh token前端所谓多请求,就是指在短时间内同时发生多个请求,如果此时token已经过期,那么这些请求都会出现token过期请求失败的情况。为了避免反复刷新token,需要设置一个刷新token的开关isRefresh,当一个请求出现token过期的时候,这个时候会调用token刷新函数,与此同时关闭开关将isRefresh的值设置为false,避免后续请求去调用token刷新函数。当发现token过期时,咱们将请求延缓到token刷新原创 2020-11-02 10:08:05 · 5100 阅读 · 0 评论 -
csv读取
cvs读取写入业务流程切割cvs多线程读取多线程写入 生产者消费者模式使用univocity工具解析读取cvs文件<dependency> <groupId>com.univocity</groupId> <artifactId>univocity-parsers</artifactId> <version>2.9.0</version></dependency>@Te原创 2020-10-30 16:10:58 · 274 阅读 · 0 评论 -
后端经纬度 点聚合
后端经纬度 点聚合一、概述1) 什么是地图综合?地图综合所要解决的问题是把一个空间目标集合按照专题内容转换为一个最能代表该集合主要空间特征的更抽象的空间目标集合,并符号化该抽象后的空间目标集合,以最有效的方式传输地理空间知识。2) 什么是点聚合?点聚合(point cluster),或又叫点聚类,是地图综合的其中一种方法,主要解决地图中点要素很多时候的表示困难的问题。点聚合可以用少量的点或图标来表示地图中的所有点,让地图显示更清晰明朗。如图 1所示3)本文关注的重点 本文主要关注二原创 2020-09-23 14:17:44 · 7146 阅读 · 3 评论 -
导出生成有水印的excel文件
上代码跑一下即可pom <poi.ooxml.version>4.1.2</poi.ooxml.version> <ooxml.schemas.version>1.4</ooxml.schemas.version> <dependency> <groupId>org.apache.poi</groupId> <artifactId>p原创 2020-08-24 18:03:02 · 12403 阅读 · 3 评论 -
Minio安装使用及集成springboot
官方文档本文档不详细的地方在官网查看https://docs.min.io/cn/一键安装 执行里面的installMinio.sh关闭防火墙sudo firewall-cmd --zone=public --add-port=9000/tcp --permanentfirewall-cmd --list-alldocker安装miniodocker run -it -p 9000:9000 --name minio \-d --restart=always \-e "MINIO_A.原创 2020-08-20 17:41:50 · 12086 阅读 · 0 评论 -
SpringBoot+Redis分布式锁
本篇内容主要讲解的是redis分布式锁,这个在各大厂面试几乎都是必备的,下面结合模拟抢单的场景来使用他redis的increment生成锁引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId>原创 2020-06-08 11:33:38 · 12511 阅读 · 0 评论 -
linux上activiti工作流成图中文乱码
activiti的工作流项目在windows系统本地搭建的tomcat上一切显示正常,但是将war包部署到linux上时,发现工作流框图中的中文显示乱码,经过搜索得到下面的解决方案,亲自验证可行:1,进入C:\Windows\Fonts,找到“宋体 常规”文件simsun.ttc2,进入cd /usr/local/java/jdk1.8.0_181/jre/lib/fonts,新建...原创 2020-05-07 18:20:44 · 12362 阅读 · 0 评论 -
IDEA 简单自动化部署 Alibaba Cloud Toolkit
在没有jenkins环境下,特别是在快速更新版本的情况下,来回部署很花时间,所以博主找到了这个方法。注意:最好是简单的单应用部署首先,在IDEA插件库搜索Alibaba Cloud Toolkit,如下图,安装完成后重启IDEA即可用如果在内网环境下,先下载【离线包】确保 IntelliJ 版本 2018.2.* 及以上http://toolkit.aliyun.com/i...原创 2020-01-07 16:42:06 · 10597 阅读 · 0 评论 -
springboot 将文档转换为pdf进行在线浏览
实现想法是将文档转换为pdf进行在线浏览,上代码pom <!--文件转pdf工具类--> <dependency> <groupId>com.aspose</groupId> <artifactId>aspose-words</artifactId&g...原创 2019-10-14 15:05:43 · 7245 阅读 · 10 评论 -
SSH(Struts,Spring,Hibernate)框架学习
1、hibernate资料 2、Struts2资料3、Spring资料转载 2018-08-09 20:50:15 · 3716 阅读 · 0 评论 -
Java设置接口跨域(类配置)
配置类@Configurationpublic class CorsConfig { private CorsConfiguration buildConfig() { CorsConfiguration corsConfiguration = new CorsConfiguration(); corsConfiguration.addAllowed...原创 2019-03-04 09:13:25 · 5067 阅读 · 0 评论 -
动态切换jdk版本(linux和Mac系统下)
在当前系统开发下,由于不同的jdk版本,我们常常需要更改配置切换我们的jdk环境,所以博主学到了一个简单的技巧适用于我们动态的切换jdk版本步骤1、编写配置文件配置jdk的JAVA_HOME2、设置动态改变的变量值3、重新初始化配置4、测试linux (vi /etc/profile) Mac(vim ~/.bash_profile)ex...原创 2019-04-01 13:17:43 · 4453 阅读 · 0 评论 -
java递归获取某个父节点下面的所有子节点
一.举个栗子1.menu实体类package com.dafy.insureagent.bean; public class Menu { private String id; private String name; private String pid; public String getId() { return id; } public v...原创 2019-04-19 18:26:00 · 11325 阅读 · 2 评论 -
微服务部署 windows 多服务的区别
在实际开发过程中很多公司运用微服务搭建项目,然而部署的时候又在一台windows服务器上部署,当窗口开多个过后,谁也分不清谁是谁的服务,所以博主运用所学知识整理了一个简单的操作,给每个窗口定义一个进程名字一、多服务部署现状无法区别二、运用bat脚本start.bat::控制台出现乱码chcp 65001::将java.exe复制到当前目录下 打开窗口运行copy ...原创 2019-05-22 09:09:03 · 5957 阅读 · 3 评论 -
枚举设置 初始化字典
一、枚举/** * @ClassName:EnumModel * @Description: 系统枚举类,包括枚举大类,具体单个枚举类 * @Description: 运行 http://localhost:8089/anonymous/initDB * @Author: liuhm * @Date: 2019/5/5 09:12 */public class EnumM...原创 2019-06-14 10:42:44 · 5440 阅读 · 0 评论 -
提升10倍生产力:IDEA远程一键部署SpringBoot到Docker
IDEA是Java开发利器,springboot是Java生态中最流行的微服务框架,docker是时下最火的容器技术,那么它们结合在一起会产生什么化学反应呢?一、开发前准备1.Docker安装可以参考:https://docs.docker.com/install/2.配置docker远程连接端口vi/usr/lib/systemd/system/docker....转载 2019-07-30 09:07:03 · 5507 阅读 · 0 评论 -
上传文件,读取文件目录保存为树形结构
将要上传的文件夹目录压缩,前端传给后端,后端解压文件目录,读取文件目录,保存文件目录文件上传,解压文件,读取文件,删除文件 // 文件上传 String fileName = EvString.getUUID() + fileViewModel.getFileName(); FileUtils.decryptByBase64(fileVie...原创 2019-09-27 13:45:08 · 5730 阅读 · 0 评论 -
将spring boot项目成jar包,并把配置文件等放在jar包外部
博主遇见过这种问题,在分布式项目中,我们常常会通过配置文件的更改达到部署项目,增加项目,实现负载均衡等一系列操作,我们常常用的是springboot打成的jar部署(方便快捷),要是配置文件在jar,外面不能更改,那么我们的操作将变得麻烦注意如果用的querydsl 必须注释 pom文件中的配置 <build> <plugins> ...原创 2019-03-08 16:50:21 · 8600 阅读 · 0 评论 -
获取文件 jar和本地的不同
String path= packageName.replaceAll("\\.","/"); URL url = this.getClass().getClassLoader().getResource(path); System.out.println(url); if(url==null) { retu...原创 2019-03-05 14:54:45 · 4070 阅读 · 0 评论 -
java 接收前端混合数据的操作
开发过程中经常遇见接收前端参数过多的情况,如后台管理系统的多条件查询,比如时间段查询,有些同学是直接写一个又一个的参数慢慢接收,效率过低,我们可以通过Map进行接收我们有个需求,需要查询一个列表,传入分页的页码,分页的个数,和类型看出来全部是char类型然而这个案例需要接收Interger类型的两个参数所以必须有以下操作最有意思的是this.putAll(params...原创 2018-12-21 10:30:57 · 4806 阅读 · 0 评论 -
Hibernate_day1(转载传智播客的老师讲义,博主只图查看方便)
Hibernate_day01Hibernate课程安排 第一天 hibernate入门和基本操作 第二天 hibernate概念和api使用 第三天 hibernate配置一对多和多对多 第四天 hibernate查询操作 今天内容介绍 1 web内容回顾 (1)javaee三层结构 ...转载 2018-08-09 21:14:03 · 4153 阅读 · 4 评论 -
Struts2day4(转载传智播客的老师讲义,博主只图查看方便)
Struts2_day04上节内容 1什么是值栈 (1)action和servlet区别 2 如何获取值栈对象 3 值栈内部结构 (1)root和context 4 向值栈放数据 (1)向值栈放字符串 (2)向值栈放对象 (3)向值栈放list集合 5 从值栈获取数...转载 2018-08-09 20:57:18 · 3843 阅读 · 0 评论 -
Struts2day3(转载传智播客的老师讲义,博主只图查看方便)
Struts2_day03上节内容 1 在action获取表单提交数据 (1)使用ActionContext类获取 (2)使用ServletActionContext类获取 (3)接口注入 2 结果配置 (1)全局结果页面和局部结果页面 (2)result标签type属性 - type属性值: -- 默认值是...转载 2018-08-09 20:53:20 · 4006 阅读 · 0 评论 -
Struts2day2(转载传智播客的老师讲义,博主只图查看方便)
Struts2_day02上节内容 1 struts2概述 2 struts2入门案例 3 struts2底层执行过程 4 struts2相关配置 5 struts2的action创建 6 struts2的action方法访问 今天内容 1 结果页面配置 ...转载 2018-08-09 20:52:19 · 3840 阅读 · 0 评论 -
Struts2day1(转载传智播客的老师讲义,博主只图查看方便)
Struts2_day01Struts2课程安排 struts2入门 struts2数据操作 第三天 struts2值栈 第四天 struts2拦截器 今天内容 1 struts2概述 (1)应用在web层 2 struts2入门案例 3 struts2底层执...转载 2018-08-09 20:51:16 · 3844 阅读 · 0 评论 -
html js
html5的特性:http://www.runoob.com/html/html5-intro.htmljavascript教程 http://www.runoob.com/js/js-tutorial.htmlHTML DOM 教程:http://www.runoob.com/htmldom/htmldom-tutorial.html原创 2018-07-26 22:28:05 · 3603 阅读 · 0 评论 -
flex 布局
网页布局(layout)是 CSS 的一个重点应用。布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地...转载 2018-07-26 22:15:09 · 3576 阅读 · 0 评论 -
mysql第二份完整笔记(只浏览一下sql操作和一些概念)
关系型数据库数据是每个企业的最核心的、最重要的灵魂--------优点: > 方便查询 > 可存储的数据量大 > 保证数据的完整、一致 > 安全可靠数据可以保存到地方1)数据保存在内存: 优点:数据的读写速度快 缺点:断电或者程序关闭的情况下,数据就丢失2)数据保存在文件: ...转载 2018-07-26 22:12:48 · 3761 阅读 · 0 评论 -
Mysql
MySQL数据库: 数据仓库,存放数据的地方,用管理复杂大量的数据,相比与 手工管理更加高效。数据存储经历的阶段: 手工记录(使用纸质记录) ,软件记录(Excel) , 数据库系统(MySQL)数据库软件: MySQL : 开源免费,最新mysql 8.x SQLServer: 微软收费。 ...转载 2018-07-24 21:22:36 · 3775 阅读 · 0 评论 -
javaScript 上
JavaScript介绍Javascript是一门脚本语言,用于编写网页效果的编程语言,是现目前最为流行的脚本语言,浏览器默认的脚本语言就是javacript。 入门案例<!-- 编写js脚本的标签 --> <script> alert('大吉大利,今晚吃鸡!'); </script> <!--引入独立js...转载 2018-07-16 21:42:25 · 3599 阅读 · 0 评论 -
java0基础day1
1、java 编写语言简介: java编程语言是sun公司开发出来的编程语言。现目前sun 被Oracle收购了,Java由Oralce维护。 目前最新JDK为jdk 10,目前最主流的jdk为 jdk8. java 语言平台: java SE: java 核心版本(囊括了java核心语法,常用类库) ...转载 2018-08-01 15:15:49 · 4127 阅读 · 0 评论 -
java0基础day2
12、流程控制: 顺序: 按照代码的编写次序依次执行. 选择: 根据条件选择性执行满足要求的语句. if switch 循环: 根据条件使某些语句重复执行. for while do-while 12.1: if 语法 a. if( 条件表达式 ){ ...转载 2018-08-01 15:28:52 · 3667 阅读 · 0 评论