跳至主要內容
开发工具-Maven实践

maven deploy上传快照制品带时间戳

  • 在pom.xml当中配置以下内容:
<repositories>
        <!-- 配置nexus远程仓库 -->
        <repository>
            <id>nexus</id>
            <name>Nexus Snapshot Repository</name>
            <url>http://ip:port/repository/maven-public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
    <distributionManagement>
        <repository>
            <id>maven-releases</id>
            <name>rdc-releases</name>
            <url>http://ip:port/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>maven-snapshots</id>
            <name>rdc-snapshots</name>
            <url>http://ip:port/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

HFwas...小于 1 分钟
JUC-乐观锁和悲观锁

悲观锁

  • 并发情况下,悲观锁认为对共享资源的修改总是会出问题,所以在对共享资源修改之前,总是会加锁
  • 代表:
    • synchronized
    • renntrenlock
  • 场景:
    • 常用于写多读少,冲突概率高
    • 对数据一致性要求高,不能容忍失败重试

乐观锁

  • 并发情况下,乐观锁认为冲突是小概率事件,不加锁,通过版本号或者检查来解决
  • 代表:
    • CAS
  • 场景:
    • 常用语写少读多,冲突概率小
    • 可以接受失败重试

HFwas...小于 1 分钟
MySql-常见的 SQL 优化手段

禁止使用 SELECT *

  • 使用select *消耗更多的 cpu 资源
  • 使用select *占用更多的内存,特别是一些text,varchar比较大的字段,占用比较多的网络带宽,
  • 推荐使用select <字段名称>,只获取使用到的字段集合,不要获取全表字段

慢 SQL 优化

  • 执行SHOW VARIABLES LIKE '%slow_query_log%'查看是否开启mysql慢查询日志

HFwas...小于 1 分钟
配置文件 - 加密
  • 这里介绍两种我熟悉的配置文件当中敏感字段加密的方式,分别是:
    • Jasypt
    • druid
  • 我们开发过程当中有一些敏感字段不希望直接暴露出去,比如数据库账号密码,三方对接的ak/sk,公有云申请的ak/sk等等,这些内容都是需要做二次加密为了防止窃取和丢失,以及数据安全

jasypt

  • 引入依赖
<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot</artifactId>
    <version>${jasypt.version}</version>
</dependency>

HFwas...小于 1 分钟
代码克隆 - 配置 access-token 克隆代码
  • 以 gitlab 为例
  • 点击个人中心,生成 access-token
image-20250714220852067
  • 本地克隆代码执行git clone https://oauth2:access-token@x.x.x.x/xx/xxx.git
  • 报错如下图,执行:git config --system http.sslbackend openssl

HFwas...小于 1 分钟
windows电脑软件初始化

开发软件

  • Toolbox(通过Toolbox安装idea,webstorm,datagrip等)

  • vscode

  • git

  • maven

  • redis

  • nodejs

    • 安装位置:D:\node-v20.3.1-win-x64

    • 在文件夹下新建以下两个文件夹:

      • node_cache

      • node_global

    • 配置环境变量:

    image-20250723151454396
    • PATH变量新增:
    image-20250723151550238
    • 执行命令
    npm config set prefix "D:\node-v20.3.1-win-x64\node_cache"
    npm config set cache "D:\node-v20.3.1-win-x64\node_global"
    
    # 设置代理
    npm config set proxy http://IP:PORT
    
    # 查看配置列表是否配置成功
    npm config list
    
    • 查看是否安装成功:
    node -v 
    
    npm -v 
    

HFwas...小于 1 分钟
JUC-JMM

JMM 简称是 java 内存模型,


HFwas...小于 1 分钟
JUC-synchronized

并发编程三个特性

分别是:

  • 可见性
  • 原子性
  • 有序性

可见性:

  • 有两个线程,B线程对共享变量的修改A线程可以获取到共享变量的最新值

代码demo展示效果:

private static boolean testBoolean = true;

public static void main(String[] args) throws InterruptedException {
    new Thread(()->{
        while(testBoolean){

        }
    }).start();

    Thread.sleep(2000);

    new Thread(()->{
        testBoolean = false;
    }).start();
    System.out.println(String.format("testBoolean = %s", testBoolean));
}

HFwas...大约 3 分钟