|
21天前
|
Arthas 监控 Java
|

dashboard基础指控

Arthas简介:通过`dashboard`查看线程信息,`jad`反编译类,`thread`分析线程堆栈与阻塞,`watch`监控方法参数、返回值及异常。支持按状态筛选线程,查看CPU占用、运行时间等。`quit`退出连接,`stop`彻底关闭Arthas。字符数:238。

42 0
|
21天前
|
Dubbo Java 应用服务中间件
|

入门运行Soul

Soul是一款基于WebFlux的高性能响应式API网关,支持Dubbo、Spring Cloud、Spring Boot,具备异步、跨语言、插件化扩展、动态配置、流量控制等特性,支持集群部署与A/B测试。

41 0
|
21天前
|
Dubbo 关系型数据库 MySQL
|

Soul网关接入与验证

本章基于前两章搭建的应用,引入Soul网关,重点讲解Provider与Consumer如何通过注解和配置接入Soul。涵盖pom依赖、Controller注解(@SoulSpringMvcClient)、配置文件参数说明,并支持HTTP与Dubbo双协议注册,最后验证服务是否成功接入。

43 0
|
21天前
|
SQL 关系型数据库 Java
|

MaBatis--分页

本文介绍了五种分页实现方式:MyBatis自带RowBounds内存分页、PageHelper插件分页、原生SQL分页、数组分页及拦截器分页。对比了逻辑分页与物理分页的优劣,指出大数据量下应优先选用物理分页,避免内存溢出,提升系统性能。

47 0
|
21天前
|
数据可视化 Java 关系型数据库
|

认识Activiti

工作流指如请假、报销等需审批的业务流程,通过可视化引擎实现多节点审批,广泛应用于CRM、WMS等系统。主流技术包括BPMN、Activiti和Flowable,其中Activiti为Java系开源引擎,支持复杂流程自动化,推动企业流程数字化发展。(238字)

52 0
|
21天前
|
缓存 Dubbo Java
|

什么是API网关

本文系统阐述了API网关的核心概念与价值,结合SpringBoot+Dubbo+Zookeeper架构引入Soul等网关实践,解析其作为请求路由、协议转换、统一鉴权、限流熔断的枢纽作用,探讨主流网关如Zuul、Kong等技术实现与异步、限流、降级等关键能力,揭示为何API网关成为现代微服务架构不可或缺的一环。(238字)

52 0

SpringBoot--@Inherited

@Inherited用于注解,使子类继承父类中标记该注解的元数据;但仅适用于类继承,接口继承和实现均不继承注解。

39 0
|
21天前
|
缓存 前端开发 Java
|

数据同步原理

Soul网关通过推拉模式从配置服务同步数据,支持WebSocket、HTTP长轮询、Zookeeper三种策略。1.x版本依赖Zookeeper,2.x版本默认采用HTTP长轮询,实现秒级更新。管理后台变更配置后,通过事件机制通知网关,实时更新本地缓存,确保配置高效同步。

46 0
|
21天前
|
Dubbo Java 应用服务中间件
|

搭建dubbo-zk应用

基于SpringBoot 2.2.2 + Dubbo 2.0.0构建分布式系统,使用Zookeeper作为注册中心,JDK 1.8开发。项目分为父工程、API接口模块、服务提供者与消费者,实现服务暴露与远程调用,通过Postman验证通信正常。

63 0
|
21天前
|
Arthas 存储 运维
|

记Arthas实现一次CPU排查与代码热更新

本文介绍如何使用Arthas排查线上Java应用CPU占用过高问题。通过`thread`定位高耗能线程,`watch`监控方法调用与异常,结合`jad`反编译与`redefine`实现热更新,无需重启服务即可修复代码,提升线上问题响应效率。适用于SpringBoot + JDK8环境。

86 0
|
21天前
|
Java 数据库连接 Spring
|

MyBatis--常见配置

MyBatis配置优先级:方法参数 > resource/url属性 > properties元素内属性。支持多环境配置,通过environments指定默认环境和数据源,结合事务管理器(JDBC/MANAGED)管理事务,常用于多数据源场景,与Spring集成时由Spring接管事务管理。

37 0
|
21天前
|
Arthas 监控 Java
|

精准定位java

本文介绍如何精准定位Java应用CPU负载过高问题。通过Arthas的watch指令监控DispatcherServlet的getHandler方法,快速定位高耗时Controller;结合反编译功能查看代码逻辑,高效排查性能瓶颈,提升系统稳定性。(238字)

40 0
|
21天前
|
XML Java 数据格式
|

SpringBoot--无标题

被@Configuration标注的类会被Spring IOC容器识别为配置类,作用等同于applicationContext.xml配置文件。通过注解方式注册Bean,结合AnnotationConfigApplicationContext可启动容器并管理Bean。示例代码展示了配置类及Bean的加载过程,输出结果显示配置类与组件均被成功注册到容器中。

39 0
|
21天前
|
XML Java 数据格式
|

SpringBoot--@Configuration

被 @Configuration 标注的类视为Spring配置类,等同于XML配置文件。结合 @Bean 注册Bean,通过 AnnotationConfigApplicationContext 加载配置类,可启动IOC容器并管理Bean实例,实现基于Java的配置。

32 0
|
21天前
|
监控 Java 网络性能优化
|

jvm

本节介绍JVM相关命令:实时监控系统状态的dashboard,查看线程堆栈、JVM信息、系统属性(sysprop)、环境变量(sysenv)、虚拟机参数(vmoption)、性能计数器(perfcounter),以及日志管理(logger)、静态属性(getstatic)、OGNL表达式执行、MBean信息和堆内存导出(heapdump)等实用功能。

40 0
|
21天前
|
Java 数据库连接 mybatis
|

MyBatis--映射关系

MyBatis中通过resultMap实现关联映射:一对一使用resultMap解决字段与属性不一致;一对多通过<collection>映射集合,如用户关联多个角色;多对一用<association>,如博客关联作者;多对多借助中间类,如用户与部门通过UserForDept建立双向关联。

36 0
|
21天前
|
存储 安全 Java
|

Java泛型类型擦除以及类型擦除带来的问题--泛型擦除引起的问题及解决方法

Java泛型在编译时先进行类型检查再擦除,类型检查针对引用而非对象。擦除后泛型转为原始类型,通过自动强转实现安全取值。多态中因擦除可能导致重写失效,编译器生成桥方法解决。泛型不支持基本类型,静态成员不能使用类的泛型参数,但泛型方法可独立定义类型。instanceof不适用泛型类型判断。

36 0
|
21天前
|
安全 Java
|

Java泛型类型擦除以及类型擦除带来的问题--什么是泛型擦除后保留的原始类型

泛型擦除后生成原始类型,类型参数被替换为其限定类型(如无则用Object)。例如`Pair<T>`变为`Pair`,成员变为`Object`;若`T extends Comparable`,则替换为`Comparable`,确保类型安全与兼容性。

36 0
|
21天前
|
安全
|

SimpleDateFormat不要定义为static

SimpleDateFormat 线程不安全,避免定义为 static,若需共享应加锁或使用 ThreadLocal。推荐使用 DateUtils 工具类。JDK8 中建议用 Instant、LocalDateTime 和 DateTimeFormatter,具有线程安全、不可变等优点,更简单高效。

28 0
|
21天前
|
Java 应用服务中间件 网络安全
|

Eclipse运行SSM/SSH项目教程

本文介绍了Java开发环境搭建步骤:包括下载开源Eclipse、配置JDK(常用1.8)和Tomcat(如7.0、8.0);演示了项目导入流程及Eclipse中绑定Tomcat服务器的详细操作,辅以多张图文指引,帮助开发者快速完成开发环境配置。

31 0
|
21天前
|
缓存 数据库
|

并发修改同一记录时需要加锁

推荐根据冲突概率选择锁策略:冲突小于20%时使用乐观锁,以version控制更新,重试不少于3次;否则采用悲观锁,可在应用层、缓存或数据库层加锁,确保数据一致性。

37 0
|
21天前
|
存储 Java
|

Java泛型类型擦除以及类型擦除带来的问题--什么是泛型擦除

Java泛型是伪泛型,编译后类型信息被擦除,仅保留原始类型。如`ArrayList<String>`与`ArrayList<Integer>`在运行时均为`ArrayList`,通过反射可绕过泛型限制添加非指定类型元素,证明泛型仅在编译期生效,JVM无法感知其存在。

44 0

使用 entrySet 遍历 Map 类集合 KV

遍历Map时,keySet需两次遍历,效率较低;entrySet一次获取键值对,性能更优。JDK8推荐使用Map.forEach方法。values()返回V值List,keySet()返回K值Set,entrySet()返回K-V组合Set。

30 0
|
21天前
|
缓存 安全 Java
|

线程池初始化严禁使用Executors

阿里巴巴规范禁止使用Executors创建线程池,因可能引发OOM。如newFixedThreadPool使用无界队列,任务堆积易导致内存溢出;newCachedThreadPool可创建过多线程,同样存在OOM风险。推荐通过ThreadPoolExecutor或Guava方式显式设置线程数、队列容量等,避免资源耗尽,提升系统稳定性与可追溯性。

37 0

Arrays.asList之后不要调用修改操作

`Arrays.asList()`返回的列表是固定大小的,底层基于原数组,不支持add/remove操作,否则抛出UnsupportedOperationException;且修改原数组会同步影响列表元素,因二者共享同一引用。

24 0
|
21天前
|
Java
|

JVM--类加载--常见加载顺序

本示例展示了Java中各类代码块的执行顺序:静态代码块随类加载仅执行一次,优先于main函数;局部代码块在方法内按顺序执行;构造代码块每次创建对象前执行;构造器随后执行。输出结果体现其优先级与调用时机。

28 0
|
21天前
|
数据库连接 网络安全 Android开发
|

Eclipse运行SSM/SSH项目教程 ——常见错误

Eclipse运行SSM/SSH项目教程 ——常见错误

34 0

One Trick Per Day

初始化Map时,指定容量并非实际分配大小,HashMap会扩容至最近的2的幂(如1→2,3→4,9→16),易引发性能波动。建议使用Guava工具Maps.newHashMapWithExpectedSize(),按预期元素数自动计算初始容量,避免频繁扩容,提升性能稳定性。

29 0
|
21天前
|
Java
|

ArrayList扩容机制

ArrayList 添加元素时,首先调用 `ensureCapacityInternal()` 确保容量足够。首次添加时,最小容量设为默认值10,触发扩容;后续添加若超出当前容量(初始10,每次扩容1.5倍),则调用 `grow()` 扩容。`grow()` 将容量增加50%,并通过 `Arrays.copyOf()` 创建新数组。注意:`length` 用于数组,`length()` 用于字符串,`size()` 用于集合。

49 0
|
21天前
|
前端开发 Java jenkins
|

生产环境发布管理

本文介绍大型团队如何通过自动化部署平台实现多环境(dev→test→pre→prod)高效发布。涵盖各环境职责、角色分工及CI/CD流程,结合GitLab与Jenkins,实现分支创建、构建、部署一体化,支持热更新与回滚,提升发布效率与系统稳定性。

40 0
|
21天前
|
Arthas Java 测试技术
|

Arthas安装

Arthas是一款Java诊断工具,需先启动Java应用并安装JDK。通过arths-boot.jar启动后选择对应进程即可接入,支持多进程管理,适用于SpringBoot等应用的线上问题排查与性能分析。(236字符)

49 0

工程搭建

从0到1搭建工程

31 0
|
21天前
|
开发工具 git
|

git解决冲突合并

git解决冲突合并

42 0
|
22天前
|
网络安全 开发工具 数据安全/隐私保护
|

git配置ssh-key

git配置ssh-key

36 0
|
22天前
|
Java
|

JDK

JDK配置需注意使用与公司统一的版本,避免因版本不一致导致兼容性问题,确保开发环境稳定,减少不必要的错误和调试成本。

34 0
|
22天前
|
关系型数据库 MySQL
|

MySQL——公司怎么连接

公司怎么连接MySQL

24 0
|
22天前
|
开发工具 git 开发者
|

git常用指令

本文介绍了常用Git命令:添加文件、拉取更新、提交修改、推送代码、强制推送、重置状态、变基操作与撤销提交,帮助开发者高效管理版本控制,规范协作流程。(238字)

38 0
|
22天前
|
开发工具 git
|

git误删别人代码怎么办

git误删别人代码

42 0
|
22天前
|
Java 数据库连接 Nacos
|

Nacos

因数据库连接失败导致服务无法启动,日志显示为JDBC错误。需定位对应conf配置文件,将其中的数据库连接信息修改为公司实际配置即可解决问题。

34 0
|
22天前
|
Java 测试技术 Maven
|

Maven——构建二方包

二方包指对外提供的JAR包,如tj-api或微服务client。通过GAV(GroupId、ArtifactId、Version)提供给调用方使用。开发测试环境Version多为固定快照版(如1.0.0-SNAPSHOT),生产环境按版本递增(如1.0.1、1.1.3),重大更新时升级主版本号(如2.0.0)。

81 0
|
22天前
|
Java Maven
|

Maven

当Maven依赖拉取失败时,需提前配置公司私服及阿里云镜像,并在IDEA中正确设置。若某jar包下载失败,检查本地仓库对应目录下是否有含"update"的文件,若有则删除该jar所在文件夹(非全部),再刷新Maven即可解决。

38 0
|
22天前
|
Java 开发工具 Nacos
|

微服务技术栈——入职帮助

开通SCRM测试环境账号,配置Rancher、Jenkins、MySQL等服务地址及权限。安装JDK、Maven、IDEA并配置环境。拉取Git代码(需Developer权限),熟悉项目结构与技术架构,通过天机Day01指导梳理核心流程,技术问题先查百度,业务问题咨询同事,权限问题联系组长。

31 0
|
22天前
|
Web App开发 JavaScript 开发者
|

跨域背景

本文详解跨域问题及解决方案。介绍URL组成判断跨域标准,通过实例演示正常请求与跨域失败场景,重点讲解CORS机制,并提供三种解决方式:@CrossOrigin注解、WebMvcConfigurer全局配置、自定义Filter拦截器,确保前后端分离项目顺利跨域访问。

41 0
|
22天前
|
监控 Java 调度
|

定时任务概述

定时任务指通过时间表达式调度执行的任务,适用于定时对账、超时取消等场景。实现方式包括单体架构的Timer、ScheduledExecutorService、Quartz、SpringTask,以及分布式架构下的TBSchedule、Elastic-Job、XXL-JOB等方案,解决集群重复执行、动态调度、故障转移与监控问题。

41 0
|
22天前
|
JSON Java 数据格式
|

不定参数入参

支持多种参数传递方式:非JSON格式可通过@RequestBody、@RequestParam或直接入参;JSON格式支持JSONObject解析或封装对象接收,结合@Valid实现参数校验,提升接口安全性与可维护性。(238字)

30 0
|
22天前
|
Java Maven Spring
|

打包

项目打包为单一可执行JAR,内置配置文件,通过Maven构建并使用Spring Boot插件指定主类。执行`mvn clean package`打包,`java -jar`运行(支持前台/后台),通过`netstat`或`ps`查PID后`kill -9`停止服务。也可分离JAR依赖与配置。

49 0
|
22天前
|
监控 Java Spring
|

整合切面,参数拦截+过滤

该Java代码使用Spring AOP实现Web请求日志切面,自动记录请求来源、URL、方式、方法、参数及耗时。通过@Pointcut定义切入点,结合@Before、@After和@Around注解实现前置、后置与环绕通知,便于统一监控和管理控制器层的请求信息,适用于日志收集与性能监控场景。(237字)

45 0
|
22天前
|
XML SQL Java
|

整合整合

基于Logback实现日志滚动与多文件输出,支持按日切分、保留15天历史记录。通过logback-spring.xml配置支付、任务、错误、SQL等多类日志独立文件存储,结合LogProxy按名称获取指定日志记录器,实现精细化日志管理,提升系统可维护性与排查效率。(238字)

32 0
|
22天前
|
缓存 Java 数据库连接
|

mybatis常用配置

本文介绍MyBatis核心配置,包括属性加载优先级(方法参数 > resource/url > properties元素)、关键配置项如缓存、延迟加载、执行器类型,以及多环境配置与事务管理(JDBC/MAANGED),适用于MyBatis开发者快速掌握配置要点。

38 0

通义灵码

通义灵码是基于通义大模型的 AI 研发辅助工具,提供代码生成、研发问答、任务执行等能力,为开发者带来智能化研发体验,引领 AI 原生研发新范式。通义灵码兼容 Visual Studio Code、Visual Studio、JetBrains IDEs 等主流编程工具,并提供 Lingma IDE,开发者可以自由选择。 更多信息欢迎加入通义灵码用户交流群(钉钉群号53770000738)

2
今日
2440
内容
18
活动
1388
关注
你好!
登录掌握更多精彩内容