- 博客(108)
- 资源 (5)
- 收藏
- 关注
原创 手写线程池
public static MultipartFile base64ToMultipart(String base64) { try { String[] baseStrs = base64.split(","); Base64.Decoder decoder = Base64.getDecoder(); byte[] b = new byte[0]; decoder.decode(baseSt
2022-06-16 11:00:43
95
原创 Ribbon轮询算法
LoadBalancer接口import org.springframework.cloud.client.ServiceInstance;import java.util.List;/** * 负载均衡接口 * * @author wenhui * @Date 2021/2/21 */public interface LoadBalancer { /** * 获取需要访问的机器 * * @param serviceInstances
2021-02-21 17:25:47
883
原创 Ribbon负载规则替换
1. 新建package,添加自定义规则类官方文档警告 FooConfiguration必须有@Configuration,但注意它并不在主应用上下文的@ComponentScan中,否则它会被所有的@RibbonClients分享(意思就是覆盖所有客户端的默认值)。如果开发人员使用@ComponentScan(或@SpringBootApplication),那就必须采取措施避免被覆盖到(例如将其放入一个独立的,不重叠的包中,或以@ComponentScan指明要扫描的包。/** * Ribbo
2021-02-14 22:07:04
205
原创 SpringBoot 用jrebel热部署抛出内存不足解决办法
Springboot 启动项中设置VM options 增加虚拟内存-mx2048m -XX:MaxPermSize=2048m -Drebel.spring_plugin=true -Drebel.hibernate_plugin=true
2021-01-26 22:06:21
433
原创 IDEA 配置启动多个相同SringBoot服务
编辑启动配置允许打开多个服务窗口修改服务端口覆盖.yml配置中的端口server.port = 8090
2021-01-05 22:18:27
2154
原创 Java IO
什么是流?内存与设备间传输数据的通道文件字节输入流/** * 文件字节输入流 */public class IOTest { public static void main(String[] args) throws Exception { FileInputStream fis = new FileInputStream("D:\\abc.txt"); byte[] buf = new byte[1024]; int count =
2020-11-10 17:20:41
138
原创 java反射基础
java反射基础public class ReflectTest { public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InstantiationException, InvocationTargetException, NoSuchFieldException { // 类加载,会调用构造方法,执行
2020-11-10 13:38:52
136
1
原创 java创建线程
继承Thread类创建线程/** * @author wenhui * @description 继承Thread类创建线程 * @Date 2019/10/6 */public class CreateThread extends Thread { @Override public void run() { for (int i = 0; i < 10; i++) { System.out.println(i);
2020-11-09 21:42:07
130
原创 单例模式
单例模式饿汉式/** * 饿汉式:直接创建实例对象,不管是否需要都会创建 */public class Singleton1 { public static final Singleton1 INSTANCE = new Singleton1(); private Singleton1() { }}懒汉式/** * @author wenhui * @description 懒汉式 * @Date 2020/11/9 */public class
2020-11-09 17:22:26
109
原创 i++和++i的区别
i++和++i的区别i++ 先赋值再运算++i 先运算再赋值public class BaseDataType { public static void main(String[] args) { int i = 1; i = i++; int j = i++; int k = i + ++i * i++; System.out.println("i: "+i); System.out.print
2020-11-09 12:50:31
239
原创 跳出当前的多重嵌套循环
跳出当前的多重嵌套循环public class BaseDataType { public static void main(String[] args) { ok: for(int i = 0; i < 10; i++) { for(int j = 0; j < 10; j++) { if(i==3) { break ok;
2020-11-07 21:26:05
89
原创 &和&&的区别
&和&&的区别&和&&的区别&运算符有两种用法:(1)按位与;(2)逻辑与。&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true 整个表达式的值才是 true。&&之所以称为短路运算,是因为如果&&左边的表达式的值是 false,右边的表达式会被直接短路掉,不会进行运算。public class BaseDataType { publ
2020-11-07 20:19:30
285
原创 ThreadLocal 使用
问题:多线程在某一时间访问到的是同一个对象class ResNumber { public int count = 0; public int getNumber() { count = count + 1; return count; }}class Mythread extends Thread { private ResNumber resNumber; public Mythread(ResNumber resN
2020-10-14 21:55:31
162
原创 Lock锁的简单使用
synchronized和locksynchronized: 自动的获取和释放锁synchronized(new Object()) { ...}lock:手动的获取和释放锁Lock lock = new ReentrantLock(); lock.lock(); try { ... } catch (Exception e) { e.printStackTrace(); } finall
2020-10-13 16:43:29
508
1
转载 java枚举
java枚举简单使用1.定义的常量public enum PizzaStatus { ORDERED, READY, DELIVERED; }2.枚举类型中定义属性,方法和构造函数public enum PinType { REGISTER(100000, "注册使用"), FORGET_PASSWORD(100001, "忘记密码使用"), UPDATE_PHONE_NUMBER(100002, "更新手机号码使用"); priva
2020-10-12 22:02:11
122
原创 Java获取对象内存地址
haseCode()方法获取并非对象内存地址hashCode方法的主要作用是为了配合基于散列的集合一起正常运行,获取对象散列的地址,并非实际内存地址。java直接打印对象,结果是十六进制的散列地址值public class ObjectTest { public static void main(String[] args) { Object obj = new Object(); System.out.println(obj); System.
2020-10-09 21:50:38
18835
原创 String,StringBuffer和StringBuilder 的区别
String,StringBuffer和StringBuilder 的区别1、String 中使用 final 关键字字符数组保存字符串,对象是不可变的,也就可以理解为常量,线程安全2、StringBuilder 与 StringBuffer 都继承自 AbstractStringBuilder 类,在 AbstractStringBuilder 中也是使用字符数组保存字符串 char[]value 但是没有用 final 关键字修饰,所以这两种对象都是可变的3、StringBuffer 对方法加了同
2020-10-09 15:13:02
209
原创 java中wait()和notify()使用
java中的守护块Object.wait() -挂起一个线程Object.notify() -唤醒一个线程class Source { public int count = 0; public boolean flag = false; // 是否有数据}class Producer implements Runnable { private Source source; public Producer(Source source) { th
2020-10-08 17:30:20
1395
1
原创 java使用atomic原子类
产生背景当给变量加了volatile关键字, 表示该变量对所有线程可见, 但不保证原子性.public class VolatileDemo extends Thread { public volatile static int count = 0; @Override public void run() { for(int i = 0; i < 10000; i++) { count++; } S
2020-10-04 21:47:02
876
原创 java volatile关键字可见性
原始代码public class VolatileDemo extends Thread { public boolean flag = true; public void setFlag(boolean flag) { this.flag = flag; } @Override public void run() { System.out.println("===start==="); try {
2020-10-04 20:44:57
160
原创 java使用同步代码块解决线程安全问题
模拟抢票public class TrainThread implements Runnable { public static int count = 100; @Override public void run() { while (count > 0) { synchronized (this) { System.out.println(Thread.currentThread().getNam
2020-09-30 20:18:56
186
原创 java 守护线程
守护线程和用户线程的区别守护线程: 为程序提供后端服务的线程成为守护线程,非守护线程运行结束时守护线程也一并结束;用户线程:用户线程和守护线程唯一的区别就是Daemon(Thread.getDaemon())为false;import static java.lang.Thread.currentThread;public class CreateRunnable implements Runnable { @Override public void run() {
2020-09-21 12:16:25
127
原创 weixin-java-tools 模板消息
从github拉取项目代码地址:https://github.com/Wechat-Group/WxJava测试号新增测试模板修改test-config.xml文件功能测试找到测试类:weixin-java-tools\weixin-java-mp\src\test\java\me\chanjar\weixin\mp\api\impl\WxMpTemplateMsgServiceImplTest.java...
2020-09-20 16:51:18
429
原创 redirect_uri 域名与后台配置不一致 10003
redirect_uri 域名与后台配置不一致 10003解决方式1.登录测试账号,修改域名2.如果域名有改变,微信菜单需要重新创建重新请求创建菜单接口
2020-09-19 17:09:49
2868
原创 Docker Jenkins启动springboot项目
添加shell脚本命令echo "打包完成"#!/bin/bash -ileproject=demo-0.0.1-SNAPSHOT.jarecho "切换路径"cd /var/jenkins_home/workspace/springboot-demo/demo/target/ pid=`ps -ef | grep $dir$project | grep -v grep | awk '{print $2}'`if [ -n "$pid" ]then kill -9 $pid e
2020-09-13 21:12:25
296
原创 Docker Jenkins 配置Maven
Jenkins安装Maven插件搜索插件 Maven Integration检验插件是否已安装Docker宿主机器解压maven压缩包apache-maven-3.6.3-bin.tar.gz解压到Jenkins挂载目录位置 [ /usr/local/jenkins/jenkins_home ]jenkins挂载设置为:jenkins -v /usr/local/jenkins/jenkins_home:/var/jenkins_homeJenkins全局配置Maven指定setti
2020-09-10 22:03:38
5461
1
原创 向 GitLab 提交代码之后自动触发 Jenkins 构建
安装gitlab插件在Jenkins服务器中,安装GitLab和GitLab Hook登录gitlab,生成一个Personal Access Tokens打开settings找到Access Tokens设置生成token进入Jenkins,添加api token路径:首页 --> 凭据 --> 添加凭据添加api token进入Jenkins系统设置,配置gitLab添加,保存进入Jenkins项目,配置gitlab源码管理构建触发
2020-08-21 12:43:02
4158
1
原创 Jenkins拉取Gitlab项目代码配置SSH Keys步骤
Jenkins容器生成秘钥进入目录:cd ~/.ssh如果没有该目录就创建:mkdir -p ~/.ssh生成秘钥:ssh-keygen -t rsa -C “登录gitlab的邮箱”查看对应的ssh-keyjenkins@f050d7fa04f0:~/.ssh$ lsid_rsa id_rsa.pubid_rsa.pub:公钥,复制到gitlab平台配置ssh-keyid_rsa:私钥,复制到jenkins平台配置jenkins凭据拷贝id_rsa.pub到gitlab配置ssh-
2020-08-20 14:00:08
8252
2
原创 jenkins下载插件速度很慢
场景描述用Docker安装最新版jenkins,安装完成输入密码,接着进入安装推荐安装插件页面,发现插件安装速度及慢而且部分无法安装解决方案修改default.json文件:1.替换 updates.jenkins-ci.org/download 为 mirrors.tuna.tsinghua.edu.cn/jenkins2.替换 www.google.com 为 www.baidu.com重启docker容器:docker container restart jenkins...
2020-08-19 15:02:27
790
4
原创 docker安装gitlab
下载镜像docker pull gitlab/gitlab-ce创建目录mkdir -p /usr/local/gitlab/configmkdir -p /usr/local/gitlab/logs mkdir -p /usr/local/gitlab/data启动运行docker run -detach \ --publish 8443:443 --publish 8880:80 --publish 8222:22 \ --name gitlab \ --restart a
2020-08-19 11:30:36
740
原创 虚拟机启动CentOS7黑屏无法进入系统
第一步1.以管理员方式启动CMD2.修复LSP,在CMD中输入netsh winsock reset3.重启电脑,看是否就能正常打开虚拟机第二步1.移除虚拟机没用的USB控制器、打印机、声音等设备2.重启虚拟机
2020-08-18 15:08:59
3274
原创 docker添加jenkins容器时,使用 -v 挂载时无法启动
问题使用docker run 添加jenkins容器docker run -d -p 8080:8080 -p 50000:50000 --name myjenkins -v /usr/local/jenkins/jenkins_home:/var/jenkins_home jenkins:2.60.3出现错误:解决方法原因:CentOS7中的安全模块selinux把权限禁掉了,无法使用-v命令进行挂载解决方法:添加selinux规则,将要挂载的目录添加到白名单chcon -Rt svi
2020-08-16 14:30:14
691
原创 解决GitHub网站加载缓慢问题
修改hosts文件打开目录C:\Windows\System32\drivers\etc 找到 hosts文件,添加以下内容## GitHub Start192.30.253.112 http://github.com192.30.253.113 http://github.com151.101.184.133 http://assets-cdn.github.com151.101.185.194 http://github.global.ssl.fastly.net192.30.253.11
2020-08-08 14:16:07
852
原创 Springboot文件 日志输出logback-spring.xml配置
logback-spring.xml配置<?xml version="1.0" encoding="UTF-8"?><!--scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒当scan为true时,此属性生效。默认的时间间隔为1分钟。debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值
2020-07-15 16:52:33
1011
原创 使用winSW工具将批处理bat注册为windows系统服务
项目需求:将kafka启动注册为windows系统服务开发环境中使用批处理一键启动,但是生产环境中需要注册为系统服务方便维护原始批处理代码:@echo offstart cmd /k "bin\windows\zookeeper-server-start.bat config\zookeeper.properties"start cmd /k "bin\windows\kafka-server-start.bat config\server.properties"exit使用winS
2020-06-16 15:23:24
3021
原创 BAT文件批一键启动Kafka
BAT文件批一键启动Kafka@echo offstart cmd /k "bin\windows\zookeeper-server-start.bat config\zookeeper.properties"start cmd /k "bin\windows\kafka-server-start.bat config\server.properties"exit
2020-06-15 14:38:18
815
原创 BAT文件批处理执行cmd命令
BAT文件批处理执行cmd命令@echo offecho **********************************************echo.echo 更新.NET Framework 3.5 echo.echo ********************************************** pause::进入 D:\Downloads并查看目录cmd /c "cd /d D:\Downloads & dir"pause...
2020-06-11 16:04:35
5652
Docker Desktop Installer.rar
2020-08-12
kafka_2.12-2.3.0-SNAPSHOT.tgz 解决windows环境自动退出问题
2020-06-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人