java
文章平均质量分 79
hyc2zbj
这个作者很懒,什么都没留下…
展开
-
snowflake雪花算法代码剖析
snowflake雪花算法代码剖析雪花算法:使用long表示一个唯一ID,long类型有64位,第一位恒为0,表示正数 接下来的41位表示时间戳差值,最多可以使用69年 然后是5位数据中心(机房)+5位机器号,共10位,默认可以表示32个机房,每个机房32个机器,共1024台机器 最后是12位序号,每个毫秒内可以生成4096个不同的id 每秒共可以生成的唯一id数量为:1000*4096=4,096,000(约400万)package com.hyc.util;public class原创 2020-08-07 14:56:12 · 519 阅读 · 0 评论 -
SpringBoot集成ShardingSphere(自动配置)
接上一篇,介绍下SpringBoot集成ShardingSphere,基于sharding-jdbc-spring-boot-starter依赖编写配置文件实现自动配置的集成方法,这种方法的优点是简单,缺点是不够灵活。新建项目并导入依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.a...原创 2019-06-28 16:38:50 · 9367 阅读 · 7 评论 -
SpringBoot集成ShardingSphere(手工配置)
在中大型项目开发过程中,如何存储大量的数据是我们不可回避的难题,对这个问题的处理直接关系到系统的稳定性和可用性,我曾经负责过一个公司重点的老项目(交接过来的,哈哈~~),由于开发的时候没能正确预估数据的增长量,两三年之后有若干张表的单表数据量已经达到了五千万以上(未分库分表),我们都知道出于性能考虑mysql的单表数据量不要超过一千万,而且这个系统的数据库还有其他问题,比如和其他系统数据共库等等,...原创 2019-06-28 16:30:15 · 14533 阅读 · 9 评论 -
SpringBoot配置外部Tomcat并支持JSP
1、使用idea创建springboot应用,指定打包方式为war,选择web依赖2、将pom.xml中spring-boot-starter-tomcat的scope属性设置为provided并添加jstl等依赖,此时pom.xml如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://m...原创 2019-06-23 12:49:15 · 844 阅读 · 0 评论 -
在docker中运行web项目并保存日志到宿主机
1、编写一个web工程并输出日志到文件,文件路径配置为:/logs/hello-web.log,项目具体信息见:https://github.com/hycqqzj/projects/tree/master/hello-web2、将项目打成war包并放置在/root/prj目录下,命名为hello-web.war# 在项目pom.xml同级目录下执行mvn clean package ...原创 2019-06-26 11:19:35 · 9257 阅读 · 2 评论 -
Redis分布式锁实现
package com.hyc.util;import redis.clients.jedis.Jedis;import java.util.Collections;/** * redis锁 */public class RedisLockUtil { private static final String LOCK_SUCCESS = "OK"; privat...原创 2019-06-19 17:22:35 · 126 阅读 · 0 评论 -
SpringBoot2.x整合MyBatis动态数据源
1.准备数据库既然是动态数据源,我们就需要准备多个库,我这里在本地建了三个数据库,分别为test、test1和test2。test库中创建表t_user,test1库中创建t_company,test2库中创建表t_dept。建表脚本如下:-- test库CREATE TABLE `t_user` ( `id` int(11) NOT NULL AUTO_INCREMENT COM...原创 2019-06-12 16:14:20 · 548 阅读 · 0 评论 -
springboot集成mybatis(配置版)
1、创建springboot应用:项目结构图2、本地建立test库,并创建user表CREATE TABLE `t_user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `name` varchar(50) NOT NULL COMMENT '姓名', `password` varchar(50) N...原创 2019-06-05 10:27:20 · 2103 阅读 · 1 评论 -
Java文件夹遍历的两种方法
分别使用Java老IO和新IO实现文件夹遍历本文是原创文章,转载请注明出处哦。老IO遍历新IO遍历例如下面图片所示的文件目录结构: 老IO遍历使用Java老IO的API遍历文件夹及其子文件夹下的内容,主要用到递归算法,代码如下:public static void oldIo(String pathStr) { File file = new File(pathStr); i原创 2016-11-21 17:36:59 · 434 阅读 · 0 评论 -
java中的参数传递
Java中参数传递只有值传递一种,没有原创 2014-11-01 22:57:51 · 317 阅读 · 0 评论 -
ArrayList的迭代删除问题
import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class Test { public static void main(String[] args) { List list = new ArrayList<>(2); list.add("a");原创 2015-07-02 11:26:28 · 328 阅读 · 0 评论