后端开发
文章平均质量分 80
java语言
docker
常用框架
全栈程序员
亦余心之所善兮
展开
-
# Maven Bom 的使用
Maven BOM是一个概念,它用于管理项目依赖的版本。BOM本身是一个特殊类型的文件,它包含了一个或多个依赖项的版本信息,但不包含实际的依赖项。在Maven项目中,通常会有多个依赖项,这些依赖项可能有不同的版本,而且它们之间可能还有依赖关系。为了避免版本冲突和手动管理每个依赖项的版本,可以使用BOM来统一管理这些依赖项的版本。BOM文件通常由框架或库的开发者提供,它包含了该框架或库所有依赖项的版本信息。在项目中使用BOM时,只需要在依赖项中声明需要使用的依赖项,而不需要声明版本号,Maven。原创 2024-03-20 22:08:02 · 995 阅读 · 0 评论 -
# Arthas 简单使用说明
下载: wget https://alibaba.github.io/arthas/arthas-boot.jar从镜像下载:https://arthas.aliyun.com/download/latest_version?mirror=aliyun启动: ::页面上的操作模式和控制台完全一样。反编译指定已加载类的源码,查看当前环境中的代码是否是最新的代码输出到目录下:查看已加载的类信息静态变量修改值:使用 trace 命令可以跟踪统计方法耗时...原创 2022-07-04 21:32:32 · 1713 阅读 · 0 评论 -
# Jdk VisualVM使用、线程 dump 制作分析
应用代码在面对线上各种请求时,经常会发生死锁,`OOM`等问题。这个时候我们如何去查看呢? 如果我们不想连上远程服务器,通过本地的一些可视化工具连接远程程序,查看远程程序的线程,`CPU`,`GC`,堆内存等使用情况。......原创 2022-06-27 09:00:00 · 1996 阅读 · 0 评论 -
# 代码质量控制和代码质量相关工具说明
代码质量检测工具及说明原创 2022-06-21 08:29:33 · 2918 阅读 · 2 评论 -
# 设计模式
设计模式设计模式总览单例模式类图定义一个类只有一个实例,该类能自己创建该类的一个实例。特点单例类只有一个实例对象。单例对象必须由该类自己创建。单例类对外提供一个访问该单例的全局访问点。单例模式的实现方式懒汉模式:加载类的时候没有生成单例模式,调用生成实例对象的方法的时候创建单例。public class LazySingleton { //保证lazySingleton在线程中同步 private static volatile LazySinglet原创 2022-02-17 20:55:07 · 1465 阅读 · 0 评论 -
# 后端接口限流实现
接口限流的实现学习业务场景 在短时间内,接口承载成千上万的请求,首先要考虑程序的并发性。大流量会直接将系统打垮,无法对外提供服务。那为了防止出现这种情况最常见的解决方案之一就是限流,当请求达到一定的并发数或速率,就进行等待、排队、降级、拒绝服务等。限流方法计数器限流计数器算法 对于接口指定一段时间段内的访问次数不能超过100个,在接收到第一个请求的时候,可以设置一个计数器counter,每当一个请求过来的时候,counter就加1,如果counter的值大于100并且该请求与第一个 请求原创 2022-01-10 20:44:36 · 1730 阅读 · 0 评论 -
# 前后端国际化多语言配置
前后端国际化多语言配置前端(Vue ElementUI)项目前端使用Vue+Elementui编写 i18n.js在这个js 中引入ElementUI的多语言资源,引入本地的多语言资源// I18nimport VueI18n from 'vue-i18n'import Vue from 'vue'import locale from 'element-ui/lib/locale'// 引入 elementui 的多语言import enLocale from 'element原创 2021-12-16 22:21:47 · 4610 阅读 · 0 评论 -
# 后端开发技巧、常用规范
开发技巧equals() 方法的使用null.equals()会出报空指针,因该是非null的值.equals()可以使用Objects的equals()方法避免空值,完美String strOne = null;String strTwo = null;boolean oneFlag = Objects.equals(strOne, strTwo);忽略大小写:equalsIgnoreCase()创建 HashMap 指定初始化大小public HashMap(int i.原创 2021-11-22 20:05:31 · 9354 阅读 · 0 评论 -
# Gradle 在开发中的使用
概述 Gradle 是一种开源构建自动化工具,其设计足够灵活,几乎可以构建任何类型的软件。以下是其一些最重要功能的高级概述:高性能 Gradle 通过只运行需要运行的任务来避免不必要的工作,因为它们的输入或输出发生了变化。您还可以使用构建缓存来重用来自先前运行或什至来自不同机器(具有共享构建缓存)的任务输出。JVM基础 Gradle 在 JVM 上运行,您必须安装 Java 开发工具包 (JDK) 才能使用它。这对于熟悉 Java 平台的用户来说是一个好处,因为您可以在构建逻辑中使用标原创 2021-10-15 20:38:27 · 1275 阅读 · 0 评论 -
# 数据量大导致的问题
java.lang.OutOfMemoryError: GC overhead limit exceeded错误描述:被占用的内存,经过多次长时间的GC操作都无法回收,导致可用内存越来越少,俗称内存泄露问题代码实例:具有 6000000数据的list集合,短时间内没有释放内存,导致Gc回收频繁@Overridepublic void insertDatas() { List<DataDto> list = new ArrayList<>(); for (i原创 2021-07-18 22:15:47 · 421 阅读 · 1 评论 -
# XML 大文件解析
XML 大文件解析解析出XMl文件中节点的数据样例 xml<?xml version="1.0" encoding="utf-8" ?><DOCUMNET> <CLASS> <CLASS_CNO>C1001</CLASS_CNO> <CLASS_NAME>初一一班</CLASS_NAME> <STUDENT> <ST原创 2021-07-15 08:01:20 · 526 阅读 · 0 评论 -
# Nginx 知识点
概念Nginx是一个轻量级、高性能的反向代理Web服务器,可以实现反向代理、负载平衡。特点跨平台、配置简单、方向代理、高并发连接、处理静态文件好、耗费内存少。Nginx内置健康检查功能、如果一个服务器挂了、再发送的请求会提交到其它节点上。Nginx 处理请求#nginx进程数worker_processes 1;events { # 单个进程最大连接数 worker_connections 1024;}http{ server{ # 监听80端口 l原创 2021-06-08 20:22:24 · 820 阅读 · 0 评论 -
# Maven 知识及常见问题
Maven是一个基于Java的构建工具和项目管理工具。它提供了一套完整的构建生命周期框架,用于描述项目构建过程、依赖管理和项目信息。Maven使用一个声明式的方式来描述项目构建过程,简化了项目配置和管理,提高了开发效率。原创 2021-05-25 19:21:31 · 939 阅读 · 2 评论 -
# 开发中锁的简单实现
开发中锁的简单实现业务需求场景:多个用户共同抢票,多个线程共同使用某个资源。问题分析:如果多个线程对某个共有资源进行操作的时候,如果不对资源进行上锁,那么就会出现超卖,线程之间不同步的问题,处理这个问题有多种方式。乐观锁 CAS(Compare-and-Swap)比较并替换。读到某个值,对它进行更新之前,检查原值是否变化了,如果发生变化那么将原值更新为变化后的值。这两步骤是原子性的。乐观锁不是锁,而是一个在循环里尝试CAS的算法。 Juc下的原子相关的操作是乐观锁,悲观锁 悲原创 2021-04-08 21:06:10 · 241 阅读 · 0 评论 -
# 线程按照顺序执行实现方式
线程按照顺序执行实现方式线程的状态初始(NEW):新建一个新的线程,还未调用start()。运行(RUNNABLE):已经准备就绪和正在运行中的两种状态都称为运行态,准备就绪的线程会放在线程池中等待被调用。阻塞(BLOCKED):某种原因放弃Cpu的使用权,等到线程进入就绪状态才有可能转换为运行态。等待(WAITING):该状态的线程需要等待其他线程中断或者做出通知。超时等待(TIME_WAITING):可以在制定的时间内自行返回。终止(TERMINATED):线程任务原创 2020-12-02 22:12:43 · 1827 阅读 · 0 评论 -
# SonarLint 检查提示和解决方法
SonarLint 检查提示和解决方法SonarLint: Use the built-in formatting to construct this argument.翻译:将连接字符串传递给日志记录方法也可能导致不必要的性能损失,因为每次调用该方法时都会执行连接,无论日志级别是否低到足以显示消息。应该使用内置的字符串格式而不是字符串连接,如果消息是方法调用的结果,则应该完全跳过前置条件,而应该有条件地抛出相关异常。反例String message = "Hellow World!"原创 2021-03-27 16:20:10 · 21984 阅读 · 0 评论 -
# 使用Quartz框架实现定时任务动态生成和执行
使用Quartz框架实现定时任务动态生成和执行思考:需求场景从页面上动态添加接口Url,填写Corn表达式,约束Url接口的执行次数和时间。能够对任务进行管理(新增、执行、停止、删除)等功能。Quartz的使用详情请看https://blog.csdn.net/qq_37248504/article/details/106874496。库表设计t_task_cron:cron表达式表,每个任务的cronDROP TABLE IF EXISTS `t_task_cron`;CRE原创 2021-01-21 21:14:37 · 1398 阅读 · 3 评论 -
# Idea Tomcat控制台乱码
Idea Tomcat控制台乱码修改Idea的运行配置在Idea的配置文件idea64.exe.vmoptions和idea.exe.vmoptions下面加上-Dfile.encoding=utf-8idea的配置文件如下-Xms128m -Xmx2032m-XX:ReservedCodeCacheSize=240m-XX:+UseConcMarkSweepGC-XX:SoftRefLRUPolicyMSPerMB=50-ea-XX:CICompilerCount=2-Dsun.原创 2020-06-10 22:41:47 · 190 阅读 · 0 评论 -
# Maven构建多模块项目以及打包问题
Maven构建多模块项目创建父模块1.先创建一个父maven项目,可以删除父模块的src文件夹下面的文件。当Parent模块创建好之后,开始创建子模块。创建子模块创建子模块1依次创建多个模块如下IDEA 启动项目时报错:Error running tomcat: Can’t find catalina.jar重新配置Tomcat,原因是由于Tomcat的位置不正确导致的。Maven多模块打包注意先打包父模块mvn clean——>mvn install如果有问题使用强制更新远原创 2020-06-10 22:39:30 · 354 阅读 · 0 评论 -
# com.alibaba.druid使用踩坑解决
com.alibaba.druid使用踩坑解决1.加入依赖<dependency> <!--自动配置--> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <versi...原创 2020-03-11 12:28:19 · 13753 阅读 · 0 评论 -
# SSM+Shiro框架搭建
9_23 SSM+Shiro框架搭建Maven依赖 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version&g...原创 2019-09-24 20:45:50 · 936 阅读 · 0 评论 -
# Ajax提交Form表单以及后端取值(java)
Ajax提交Form表单以及后端取值(java)1、ajax提交form表单:<script> function denglu(){ $.ajax({ type : "POST", url : "../denglu", //方法1:将form表单数据序列化 data : $('#one').serialize(), //方法2:传送json数据...原创 2019-05-17 19:22:25 · 4544 阅读 · 0 评论 -
码云创建javaweb项目并导入eclipse
码云创建java项目导入eclipse1.点击加号创建项目仓库(选择项目是否公开Public、Forks、Private)2、配置仓库3、获取项目在git仓库中的路径4、打开eclipse将自己的项目上传到git仓库,对着项目右键鼠标移到team,点击ShareProject进入如下,点击git进入如下,然后按照如下步骤操作,是指将该项目当做仓库,并创建一个.git文件夹...原创 2019-04-03 20:03:03 · 838 阅读 · 0 评论