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日志并进行多维度分析。
目录
相关文章
|
4天前
|
Java Android开发
Eclipse 创建 Java 项目
Eclipse 创建 Java 项目
21 4
|
9天前
|
SQL Java 数据库连接
从理论到实践:Hibernate与JPA在Java项目中的实际应用
本文介绍了Java持久层框架Hibernate和JPA的基本概念及其在具体项目中的应用。通过一个在线书店系统的实例,展示了如何使用@Entity注解定义实体类、通过Spring Data JPA定义仓库接口、在服务层调用方法进行数据库操作,以及使用JPQL编写自定义查询和管理事务。这些技术不仅简化了数据库操作,还显著提升了开发效率。
22 3
|
12天前
|
前端开发 Java 数据库
如何实现一个项目,小白做项目-java
本教程涵盖了从数据库到AJAX的多个知识点,并详细介绍了项目实现过程,包括静态页面分析、数据库创建、项目结构搭建、JSP转换及各层代码编写。最后,通过通用分页和优化Servlet来提升代码质量。
32 1
|
15天前
|
jenkins Java 测试技术
如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例详细说明
本文介绍了如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例,详细说明了从 Jenkins 安装配置到自动构建、测试和部署的全流程。文中还提供了一个 Jenkinsfile 示例,并分享了实践经验,强调了版本控制、自动化测试等关键点的重要性。
48 3
|
1月前
|
JavaScript 前端开发 Java
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
这篇文章详细介绍了如何在前端Vue项目和后端Spring Boot项目中通过多种方式解决跨域问题。
340 1
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
|
16天前
|
小程序 前端开发 算法
|
19天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
1月前
|
NoSQL 安全 Java
Java后端基础自测
Java后端基础自测
60 12
|
1月前
|
jenkins Java 测试技术
如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例详细说明
【10月更文挑战第8天】本文介绍了如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例,详细说明了从 Jenkins 安装配置到自动构建、测试和部署的全流程。文中还提供了一个 Jenkinsfile 示例,并分享了实践经验,强调了版本控制、自动化测试等关键点的重要性。
34 5
|
1月前
|
Java Apache Maven
Java/Spring项目的包开头为什么是com?
本文介绍了 Maven 项目的初始结构,并详细解释了 Java 包命名惯例中的域名反转规则。通过域名反转(如 `com.example`),可以确保包名的唯一性,避免命名冲突,提高代码的可读性和逻辑分层。文章还讨论了域名反转的好处,包括避免命名冲突、全球唯一性、提高代码可读性和逻辑分层。最后,作者提出了一个关于包名的问题,引发读者思考。
Java/Spring项目的包开头为什么是com?