Java后端项目排错经验分享

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Java后端项目排错经验分享

导致错误的原因有很多,最常见的无非也就那么几种:


1、粗心导致的格式问题以及代码多写少写错写字母的问题


2、代码逻辑问题


3、框架版本不匹配问题


无论是哪种问题,排查错误的方式最好最便捷的方式有调试+日志,那么如果是线上问题的话,单步调试是不太可能了,所以最重要的还是要学会如何看日志,一个项目有没有灵魂就看日志打的怎么样了,接下来带大家解读一个springboot项目启动时打的一些日志;


前提:这里博主使用了一个springboot项目集成nacos,nacos开启鉴权后的项目;


35c3d7504454424f8f91d6adbf8e7335.png


启动时,项目会告诉你,加载权限客户端成功,加载了两个类,分别是com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl类和com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl,


接下来会告诉你要加载nacos配置中心的配置文件了,


e51b9e4d38a44b4e8dffa47348045f43.png


首先告诉你,忽略空的nacos配置,并根据dataId[merit-appraise]&group[MERIT_GROUP]获取它,然后告诉你加载了哪些配置文件,图中红框圈了有三个,项目启动的时候会默认加载你项目中配置了application.name和profile.active这两个属性的值拼起来的文件;


52b0f604e20f4f519b40548c58760970.png


博主这里只配置了application.name,没有配置profile.active,那么也就是在启动的时候会加载一个名为merit-appraise的文件,然而在我的nacos配置中是没有名为merit-appraise的配置的,所以相当于加载了一个空的配置文件,另外加载的两个配置是根据自己在配置文件中配置的文件来进行加载的,


48c794088c964ae6a7926e383e059da0.png


之后也就是会告诉你,启动了web服务器tomcat,耗时多少多少时间;


a71a391fd69c4c309e70708cc3eab429.png


总之,你要知道的是,项目报的错,都会通过日志的方式打出来告诉你,你要学会如何去看,分析日志中有的信息,会让你在排错的道路上效率翻倍,不要盲目的拿一个错误信息就去百度查,属于没动脑子干事;自己写的业务逻辑代码,也要会自定义打日志,入参,出参,返回值,异常信息,一样都不能少,这种大量的打日志操作势必会影响业务逻辑代码的性能,所以这里小编后续再给大家分享如何将业务逻辑与非业务逻辑代码做隔离;让非业务逻辑代码例如打日志这种操作不会影响业务逻辑代码执行的效率;


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
9天前
|
JSON 中间件 Go
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
本文详细介绍了如何在Go项目中集成并配置Zap日志库。首先通过`go get -u go.uber.org/zap`命令安装Zap,接着展示了`Logger`与`Sugared Logger`两种日志记录器的基本用法。随后深入探讨了Zap的高级配置,包括如何将日志输出至文件、调整时间格式、记录调用者信息以及日志分割等。最后,文章演示了如何在gin框架中集成Zap,通过自定义中间件实现了日志记录和异常恢复功能。通过这些步骤,读者可以掌握Zap在实际项目中的应用与定制方法
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
|
5天前
|
前端开发 Java 编译器
【前端学java】java基础练习缺少项目?看这篇文章就够了!(完结)
【8月更文挑战第11天】java基础练习缺少项目?看这篇文章就够了!(完结)
17 0
|
1月前
|
安全 Java 数据安全/隐私保护
在Java项目中集成单点登录(SSO)方案
在Java项目中集成单点登录(SSO)方案
|
1天前
|
前端开发 IDE Java
"揭秘前端转Java的秘径:SpringBoot Web极速入门,掌握分层解耦艺术,让你的后端代码飞起来,你敢来挑战吗?"
【8月更文挑战第19天】面向前端开发者介绍Spring Boot后端开发,通过简化Spring应用搭建,快速实现Web应用。本文以创建“Hello World”应用为例,展示项目基本结构与运行方式。进而深入探讨三层架构(Controller、Service、DAO)下的分层解耦概念,通过员工信息管理示例,演示各层如何协作及依赖注入的使用,以此提升代码灵活性与可维护性。
|
6天前
|
SQL Java 数据库连接
java连接数据库加载驱动到java项目
该博客文章介绍了如何在Java项目中通过代码加载数据库驱动并连接SQL Server数据库,包括具体的加载驱动和建立数据库连接的步骤,以及如何将驱动包添加到Java项目的构建路径中。
|
5天前
|
前端开发 Java 编译器
【前端学java】java基础练习缺少项目?看这篇文章就够了!(17)
【8月更文挑战第11天】java基础练习缺少项目?看这篇文章就够了!
14 0
【前端学java】java基础练习缺少项目?看这篇文章就够了!(17)
|
7天前
|
JSON 缓存 监控
go语言后端开发学习(五)——如何在项目中使用Viper来配置环境
Viper 是一个强大的 Go 语言配置管理库,适用于各类应用,包括 Twelve-Factor Apps。相比仅支持 `.ini` 格式的 `go-ini`,Viper 支持更多配置格式如 JSON、TOML、YAML
go语言后端开发学习(五)——如何在项目中使用Viper来配置环境
|
19天前
|
移动开发 开发框架 小程序
开发H5程序或者小程序的时候,后端Web API项目在IISExpress调试中使用IP地址,便于开发调试
开发H5程序或者小程序的时候,后端Web API项目在IISExpress调试中使用IP地址,便于开发调试
|
23天前
|
Java Spring
idea新建spring boot 项目右键无package及java类的选项
idea新建spring boot 项目右键无package及java类的选项
34 5
|
5天前
|
Java Spring
Java SpringBoot Bean InitializingBean 项目初始化
Java SpringBoot Bean InitializingBean 项目初始化
14 0