跳至主要內容
Jar瘦身实例

1、依赖拆分配置

只需要在项目pom.xml文件中添加下面的配置:

 <build>
  <plugins>
    <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
      <executable>true</executable>
      <layout>ZIP</layout>
      <!-- 这里是填写需要包含进去的jar,
          必须项目中的某些模块,会经常变动,那么就应该将其坐标写进来
          如果没有则nothing ,表示不打包依赖 -->
      <includes>
        <include>
          <groupId>nothing</groupId>
          <artifactId>nothing</artifactId>
        </include>
        <!-- 除了第三方依赖,会将子模块的引用加进来 -->
        <!-- 
        <include>
          <groupId>com.example</groupId>
          <artifactId>example-util</artifactId>
        </include> 
        -->
      </includes>
    </configuration>
   </plugin>
   <!--拷贝依赖到jar外面的lib目录-->
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
      <execution>
        <id>copy</id>
        <phase>package</phase>
        <goals>
          <goal>copy-dependencies</goal>
        </goals>
        <configuration>
          <!--指定的依赖路径-->
          <outputDirectory>${project.build.directory}/lib</outputDirectory>
        </configuration>
      </execution>
    </executions>
   </plugin>
  </plugins>
 </build>

编程技巧JavaJava大约 2 分钟
Netty介绍

一、Netty 简介

Netty 是由 Jboss 提供的一个 Java 开源框架,现为 Github 上的独立项目。Netty 提供异步的、时间驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。

也就是说,Netty 是一个基于 NIO 的客户、服务器端编程框架,使用 Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户、服务端应用。Netty 相当于简化和流线化了网络应用的编程开发过程,例如:基于 TCP 和 UDP 的 socket 服务开发。

二、Hello Netty


编程技巧JavaJava大约 3 分钟
20230815

1、Redis 的单机、哨兵、集群的区别和选型?

单机模式

在单机模式下,Redis 运行在单个实例上,所有的数据都存储在这一个实例中。优点包括部署简单、操作方便,适用于快速的数据缓存需求。

  • 缺点
    • 单点故障:如果 Redis 实例出现故障,数据可能会丢失。
    • 有限的容量:内存容量受到物理服务器的限制。
    • 不支持高可用性:无法提供自动故障转移或负载均衡。

哨兵模式


编程技巧JavaJava大约 2 分钟
JDK 自签证书
[[toc]] Certbot keytool可视化工具 官方网址为 https://keystore-explorer.org/index.html (https://keystore-explorer.org/index.html) 证书格式 .DER或.CER文件: 这样的证书文件是二进制格式,只含有证书信息,不包含私钥。; .CRT文件: 这样...

运维技巧证书认证Java大约 12 分钟
java8之stream

Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作


编程技巧JavaJava大约 5 分钟
java8之optional

主要用处:防止空指针(NPE)、简化if...else...判断、减少代码的复杂度


编程技巧JavaJava大约 3 分钟
JVM调优
[[toc]] JVM 调优本质和原则 JVM 调优本质就是 gc , 垃圾回收,及时释放内存空间; gc 的时间足够小(堆内存设置足够小); gc 的次数足够少(jvm 堆内存设置的足够大); 发生 fullgc 周期足够长 (最好不发生 full gc); metaspace 永久代空间设置大小合理,metaspace 一旦扩容,就会发生 full...

编程技巧JavaJava大约 5 分钟
Maven基础
[[toc]] maven 初始化项目

编程技巧JavaJava小于 1 分钟