分类: java

32 篇文章

thumbnail
微服务项目打包 lib 包外置配置
前言 公司项目使用的 springcloud 微服务,打包后上线巨慢,因为每个项目都引用了很多 jar,上传到服务器的时候速度感人,但是其中很多项目用到了一样的 jar ,发现有一种 lib jar 包外置方式,先把 所有 jar 包放在一个文件夹里面,上传到服务器后,只要 pom 里面没有新的依赖就不需要更新 lib 包,如果有新的依赖也只需要增…
thumbnail
项目打包后汇总 所有 jar 和 增量 jar
前言 项目中多个微服务使用了精简打包方式,lib 包外置,现在就需要把各个子模块的 lib 包汇总到一起,并且获取到最新多出来的 jar 文件,用到下面一段命令,这里记录下来备用。 其中 projectPath 为项目所在地址 libsPath 为全量 lib jar 包 newlibsPath 为和 libsPath 比较后 多出来的 jar 命…
thumbnail
启动文件夹下 的所有 jar 项目
在启动微服务项目的时候,由于 jar 文件过多,所以需要一套快速启动的命令进行启动。 以下是命令: 放到执行文件夹内 start.sh #!/usr/bin/env bash # 启动一个目录下的所有jar包 function read_dir(){ for file in `ls` do # 当前文件不是一个文件夹 if [[ -f $file …
thumbnail
JVM 性能调优
JVM 调优目标 使用较小的内存占用来获得较高的吞吐量或者较低的延迟。 程序在上线前的测试或运行中有时会出现一些大大小小的JVM问题,比如cpu load过高、请求延迟、tps降低等,甚至出现内存泄漏(每次垃圾收集使用的时间越来越长,垃圾收集频率越来越高,每次垃圾收集清理掉的垃圾数据越来越少)、内存溢出导致系统崩溃,因此需要对JVM进行调优,使得程…
thumbnail
Eclipse 创建 Swing 项目
近期做到一个项目,需要用到 Java 的 Swing 技术开发。不得不说这玩意儿在我脑海里已经很久远了。。。 eclipse 安装开发插件 一、直接在eclipse的Help->eclipse marketplace,中直接搜索内容:WindowBuilder, 如图所示 二、安装完成之后,可以查看效果如果: 创建项目 方式一: 创建项目 new-…
thumbnail
自己设计缓存,主要注意的点
数据结构 首要考虑的就是数据该如何存储,用什么数据结构存储,最简单的就直接用Map来存储数据;或者复杂的如redis一样提供了多种数据类型哈希,列表,集合,有序集合等,底层使用了双端链表,压缩列表,集合,跳跃表等数据结构; 对象上限 因为是本地缓存,内存有上限,所以一般都会指定缓存对象的数量比如1024,当达到某个上限后需要有某种策略去删除多余的数…
thumbnail
Spring中都用到了哪些设计模式
工厂设计模式 : Spring使用工厂模式通过 BeanFactory、ApplicationContext 创建 bean 对象。 代理设计模式 : Spring AOP 功能的实现。 单例设计模式 : Spring 中的 Bean 默认都是单例的。 模板方法模式 : Spring 中 jdbcTemplate、hibernateTemplate…
thumbnail
Spring BeanFactory 和 FactoryBean 的区别
BeanFactory 是一个接口,public interface BeanFactory,提供如下方法: Object getBean(String name) <T> T getBean(String name, Class<T> requiredType) <T> T getBean(Class<T…
thumbnail
lombok的@Accessors注解3个属性说明
Accessors翻译是存取器。通过该注解可以控制getter和setter方法的形式。 @Accessors(fluent = true) $\color{red}{使用fluent属性,getter和setter方法的方法名都是属性名,且setter方法返回当前对象}$ @Data @Accessors(fluent = true) class…
thumbnail
主线程等待子线程的几种实现方式
问题 多线程编程里面一个常见的问题:“如何让主线程在全部子线程执行完毕后再继续执行?” 方案 方法一:主线程sleep 主线程等待子线程执行完最简单的方式当然是在主线程中Sleep一段时间,这种方式最简单,我们先看下实现 private static class MyThread extends Thread { @Override public …