开发规范-Java
参考文档 《Java开发手册 1.7.0-嵩山.pdf》 基础规范 项目中引入了 lombok,Idea 需要安装 lombok 插件 提交代码前养成先 update 的习惯(拉取最新代码合并到本地),别把别人提交的代码覆盖了 实体类中默认为数据库字段,如果需要扩展逻辑字段「前端展示使用」,在实体类下面扩展,示例如下「代码生成器生成的实体类添加有 @Data注解,就不需要实现 get set 方法了」: 123456// 以下为扩展的逻辑字段@TableField(exist = false)private String userName; @TableField(exist = false)private List<SysUser> noticeUsers; 后端代码中涉及到数据库操作时,不管是单表还是多表,优先考虑使用 MybatisPlus 方式,尽量避免在 xml 中写 sql,特别是引入各种联表,各种函数。一方面可读性不高,修改有一定难度,另一方面函数对数据库的兼容性可能存在问题。推荐使用 MybatisPlus 方式...
Maven一文搞懂项目pom.xml配置文件setting.xml 配置项之间的关系
发表于|Maven
一文搞懂 Maven 项目 pom.xml 中 distributionManagement 和 配置文件 setting.xml 中 server、mirror、repository 配置项之间的关系 兄弟们,今天咱来盘一盘 Maven 里贼容易搞混的几个配置项——pom.xml 里的 distributionManagement,还有 setting.xml 里的 server、mirror、repository。 是不是每次写配置都跟碰运气似的,不知道该往哪儿填?别急,咱先从一个开发场景说起,保证让你秒懂它们的关系! 简要总结 distributionManagement:指定发布地址 server:提供认证信息。在生产环境中,不应明文配置密码。 建议增加提示:“为安全起见,推荐使用 mvn –encrypt-password 对密码加密后再配置。” mirror:加速依赖下载12345<!-- 镜像所有仓库 --><mirrorOf>*</mirrorOf><!-- 镜像除本地私有仓库外的所有仓库...
SpringBoot下使用Redis,配置多个database数据源
发表于|SpringBoot
Spring Boot 下使用 Redis,配置多个 database 数据源 兄弟们,上回咱唠了 Redis 默认 16 个库的门道,今儿咱接着整活儿 —— 在 Spring Boot 里咋配置多个 Redis database 数据源。是不是有兄弟在开发中遇到过这种情况:不同业务模块的数据想存到 Redis 的不同库里,比如用户模块用 0 号库,订单模块用 1 号库,可咋整?别慌,咱一步步来盘。 为啥要配置多个 Redis database 数据源?先说说为啥咱需要在 Spring Boot 里搞多个 Redis database 数据源。举个栗子,假设咱搞个电商项目,用户信息、商品缓存、订单数据都得存 Redis。这时候要是全塞默认的 0 号库,键名一多就容易乱,而且后期维护起来也麻烦。要是能按业务分库存,比如用户数据放 1 号库,订单数据放 2 号库,那简直不要太爽,数据隔离性好,查起来也方便。 还有一种情况,就是咱可能得连不同的 Redis 实例,比如一个连主库,一个连从库,或者连不同环境的...
Redis-集群模式下,数据为什么都存储在database0中
发表于|Redis
Redis 集群模式下,数据为什么都存储在 database0 中 兄弟们,前两篇咱唠了 Redis 默认 16 个库的渊源,还盘了 Spring Boot 里咋配置多数据源。今儿咱再挖个深点儿的坑 —— 为啥 Redis 集群里的数据全怼在 database0 里?是不是有兄弟在玩集群的时候发现,不管咋切库,数据好像都在 0 号库待着?这背后到底藏着啥猫腻,咱今儿必须唠明白! 一、集群模式颠覆了 database 的设计逻辑先给大伙儿泼盆冷水:Redis 集群(Cluster)模式下,database 概念基本废了! 还记得单实例里 database 是咋玩的不?通过SELECT n切换库,每个库都是独立的 key 空间,就像不同的文件夹。但集群模式为了扛住大流量和海量数据,玩的是分片(sharding)机制 —— 把数据按哈希槽(hash slot)分到不同节点上。这时候 database 的设计逻辑就跟集群架构冲突了: 单实例的 database 是 “横向隔离”:每个库是独立空间,但所有库的数据都在一个节点上; 集群的分片是...
Nexus-Linux安装部署完整教程
发表于|Nexus
Linux 下 Nexus 安装部署完整教程 兄弟们,今儿咱来盘一盘在 Linux 系统上咋安装部署 Nexus。Nexus 这玩意儿可是个超实用的开源仓库管理工具,在开发中管理 Maven、npm、Docker 镜像等各种组件都得靠它。不管你是搭建私有仓库,还是想优化项目的依赖管理,学会安装部署 Nexus 都是必备技能。话不多说,开整! 一、安装前的准备工作(一)环境要求
操作系统:咱得用 Linux 系统,像 CentOS 7 + 或者 Ubuntu 18 + 都成。这俩系统在服务器领域用得贼多,稳定性和兼容性都不错,很适合跑 Nexus。 Java 环境:Nexus 是基于 Java 开发的,所以得先装 Java 环境。注意,Nexus 2 版本用 JDK 7 就行,要是咱用 Nexus 3,那就得安排 JDK 8 及以上版本了。不清楚咋装 JDK 的兄弟,网上教程一搜一大把,跟着操作就行。 内存和 CPU:Nexus 运行起来还是挺耗资源的,官方建议服务器至少得有 4 个 CPU 核心,内存最好 8GB 起步。要是资源不够,Nexus...
Maven文搞懂仓库配置优先级
发表于|Maven
在 Maven 中,repository 和 mirror 都与依赖拉取相关,但它们的作用机制和优先级不同。下面将详细介绍两者的概念、生效规则及实际应用场景: 一、repository 和 mirror 的基本概念1. repository(仓库) 定义:Maven 用于存储和获取依赖项、插件、项目构建结果的远程服务器。 作用:指定 Maven 从哪些远程仓库下载依赖,例如 Maven 中央仓库(central)、阿里云仓库等。 默认配置: 无自定义配置时:Maven 默认会访问中央仓库(ID 为central,URL 为https://repo.maven.apache.org/maven2)。 自定义 repository 覆盖默认行为:当在settings.xml或pom.xml中显式声明repository时,会覆盖 Maven 的默认仓库配置,即不再自动访问中央仓库。 2. mirror(镜像) 定义:用于替代某个仓库的服务器,相当于仓库的 “副本”。 作用:当配置镜像后,Maven 会优先从镜像服务器拉取依赖,而非原始仓库。 当 mirror...
JSch-Java开发者的SSH利器.md
发表于|JSch
JSch 是一个纯 Java 实现的 SSH2 协议客户端库,允许 Java 应用程序通过 SSH 连接到远程服务器,执行命令和传输文件。 一、JSch 是什么?JSch 是一个纯 Java 实现的 SSH2 协议库。SSH(Secure Shell)协议主要用于在不安全的网络中为网络服务提供安全的传输环境,而 JSch 则让 Java 开发者能够在其应用程序中轻松集成 SSH 功能。它允许我们连接到使用 SSH2 协议的服务器,并实现端口映射、X11 转发、文件传输等多种功能,并且遵循 Apache License 2.0,开源的特性使得开发者可以自由地使用和修改。 二、JSch 的核心功能 建立安全连接:JSch 支持通过密码验证和公钥验证等多种方式建立与远程服务器的安全连接。公钥验证方式尤其适用于自动化脚本和服务器管理场景,能够实现无密码登录,极大地提升操作的便捷性与安全性。例如,在自动化运维工具中,通过配置公钥,工具可以自动连接到多台服务器执行任务,无需每次手动输入密码。 远程命令执行:借助...
Java-实现NTP时间同步的3种方式
发表于|Java
NTP(网络时间协议)作为实现网络时间同步的标准协议,在 Java 中借助第三方库能轻松实现。 今天,我们就来深入探讨 Apache Commons Net、NTP4J 和 SntpClient 这三个强大的第三方库,掌握 Java NTP 时间同步。 一、Apache Commons Net 功能强大的 “瑞士军刀” Apache Commons Net 是一个功能丰富、应用广泛的 Java 库,涵盖多种网络协议实现,处理 NTP 时间同步自然不在话下。 1. 添加依赖Maven 项目:在pom.xml文件中添加以下依赖配置 12345<dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>3.8.1</version></dependency> Gradle 项目:在build.gradle文件中加入 1implementation...
公告
风雨无阻,灯火为你,星光虽微,照耀夜空。
最新文章
归档
- 2025 1
- 2025 1
- 2025 1
- 2025 1
- 2025 1
- 2025 1
- 2025 1
- 2025 1
- 2025 1
- 2025 1
- 2025 1
- 2025 1
- 2025 1
- 2025 1
- 2025 1
- 2025 1
- 2025 1
- 2025 1
- 2025 1
- 2025 1
- 2025 1
- 2025 1
- 2025 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2024 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2023 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2022 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2021 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2020 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1
- 2019 1