自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

mikezhu的博客

一起学习,快乐成长。

  • 博客(24)
  • 收藏
  • 关注

原创 如何在Java项目中实现漂亮的日志输出

在Java项目中,定义清晰的日志级别是非常重要的,以便在调试、监控和解决潜在问题时有效地记录和理解系统行为。了解常见的日志级别:Java中常见的日志级别包括DEBUG、INFO、WARN、ERROR和FATAL。每个级别都有特定的含义和用途,首先要了解这些级别的含义。根据项目需求确定日志级别:在定义日志级别时,需要考虑项目的需求和目标。例如,对于一个简单的演示应用程序,可能不需要记录过多的调试信息。

2023-10-23 09:31:33 375

原创 MathML文档入门和处理

此外,MathML还支持将数学公式转换为SVG图像,以便更好地呈现和打印,前面的文章已经介绍过了,大家感兴趣的可以去看看。通过将公式以规范化的方式表示,可以减少误解和错误,并且可以确保公式的正确性和可重复性。在实际的工作中,因为是教育相关行业,接触到的公式会比较多,其中接触到最多就是MathML和LaTeX,今天先对MathML这种数学公式进行一个简单的介绍。总之,在Web端显示MathML,需要根据具体情况选择合适的技术手段,并做好兼容性测试和优化工作,以确保数学公式的准确、清晰、美观地呈现给用户**。

2023-10-10 09:34:11 346

原创 MySQL的EXPLAIN用法

以上是关于MySQL的EXPLAIN用法的详细介绍。通过掌握EXPLAIN的语法和输出结果的含义,我们可以更好地理解和优化查询语句的执行计划,提高数据库的性能和效率。希望本文对你有所帮助!

2023-09-21 14:41:58 714

原创 Spring Boot整合MyBatis-Plus详细指南

引言: MyBatis Plus是在MyBatis基础上的增强工具,提供了更加便捷的开发方式。本文将详细介绍如何整合Spring Boot和MyBatis Plus,以及如何使用它们来开发数据库操作。让我们开始吧!

2023-09-20 09:17:48 295

原创 说一说MySQL几个常见的面试题

MySQL中的事务是指一组数据库操作,它们被视为一个逻辑单元,要么全部成功执行,要么全部回滚到最初状态,保证数据的一致性和完整性。事务的特性和隔离级别如下:原子性(Atomicity):事务中的所有操作要么全部执行成功,要么全部回滚,不允许部分成功部分回滚。一致性(Consistency):事务开始前和结束后,数据库的完整性约束不会被破坏。如果在事务中发生错误,所有已执行的操作将被回滚,数据库状态将恢复到事务开始前的一致状态。

2023-09-19 09:59:52 44

原创 @RestController 和 @Controller 的区别

在本文中,我们介绍了和这两个在Spring框架中常用的注解。用于传统的Web应用程序,它处理HTTP请求并返回视图,请确保您在方法中返回视图名称。用于构建RESTful API,它将数据转换为JSON或XML格式,并直接发送给客户端。根据您的需求,选择适合的注解将有助于更好地开发Spring MVC应用程序。

2023-09-14 16:07:03 108

原创 Spring的Transactional: 处理事务的强大工具

在软件开发中,事务是指由一系列操作组成的逻辑单元,这些操作要么全部成功地执行,要么全部回滚到初始状态,以保证数据的一致性和完整性。事务的使用非常重要,尤其是在处理数据库操作时。事务是数据库管理系统中的一条或者多条操作指令的集合,这些操作指令被封装为一个整体,以保证数据库的完整性、一致性和原子性。在事务中,所有操作都成功,事务才能提交,否则回滚,这样可以确保数据的一致性和完整性。事务具有以下四个特性:原子性(Atomicity):事务是一个原子操作单元,其对数据的修改要么全部执行,要么全不执行。

2023-09-13 09:25:55 112

原创 学习Spring Boot整合多数据源

在一个应用程序中使用多个数据源意味着我们需要在不同的数据源之间进行切换,以便从不同的数据源中获取数据。多数据源可以是关系数据库、NoSQL 数据库、平面文件、XML 文件等。在一个应用程序中使用多数据源的好处是,我们可以根据应用程序的需求选择最合适的数据源,从而提高应用程序的性能和可扩展性。

2023-09-08 17:09:27 270

原创 Spring Boot整合XXL-JOB保姆级教程

xxljob是一款开源的任务调度框架,它支持分布式、集群、高可用的任务调度服务,可以满足不同场景的任务调度需求。它提供了基于RESTful API的简单、易用的接口,可以方便地实现任务的创建、修改、删除、查询等操作。xxljob的主要特点如下:1. 分布式、集群、高可用xxljob支持分布式、集群、高可用的任务调度服务,可以满足不同场景的任务调度需求。2. 基于RESTful API的简单、易用的接口。

2023-09-06 11:51:07 2329

原创 说一说Spring中的单例模式

Spring框架中的单例模式是一种非常重要的设计模式,它可以有效地管理和控制对象的创建和生命周期。通过合理应用单例模式,可以提高程序的性能、稳定性和安全性,并减少资源的占用。同时,单例模式也为依赖注入等功能提供了强大的支持。因此,掌握和理解Spring框架中的单例模式对于开发高质量的Java应用程序是非常重要的。

2023-08-23 14:14:53 314

原创 MySQL Binlog入门

本文详细介绍了MySQL的binlog的底层原理,包括binlog的结构、日志格式、工作原理及相关配置和用法。binlog作为MySQL中重要的日志功能之一,不仅可以用于数据备份和恢复,还可以支持数据同步和复制等应用场景。深入理解binlog的底层原理可以更好地应用和优化数据库的相关功能。

2023-08-16 18:57:21 84

原创 学习自定义Spring注解

2.1.注解的使用方式注解的使用方式包括以下几种:标记注解(Marker Annotation):简单地用来标记某个类或方法,不需要提供任何参数。例如,@Component、@Service、@Controller等注解用于标记组件。值注解(Value Annotation):用于指定某个注解需要的参数值。例如,@RequestMapping注解中的value参数用于指定请求的URL路径。元注解(Meta-Annotation):用于定义自定义注解。

2023-08-16 16:23:15 419

原创 讲清楚 @Service @Component两个注解

在Spring框架中,@Service和@Component都是用来标注组件的注解。它们都可以被用来定义一个类是一个组件,这个组件可以被其他组件所依赖。总结一下,@Service和@Component注解在Spring框架中使用广泛,用于标识类作为特定类型的组件。@Service注解通常用于标识服务层组件,处理业务逻辑和数据访问,而@Component注解则是一个通用的注解,用于标识各种类型的组件。在使用这两个注解时,需要注意实例名称的指定和作用域管理。

2023-08-08 18:18:50 5624

原创 一起来学习@PostConstruct注解

在实际的开发过程当中,我们经常遇到各种依赖注入的场景,各种注解有时候的确让人犯迷糊,那么今天就来简单的说一下在开发过程中最常用的三个注解,希望对大家有所帮助。@Autowired注解是Spring框架提供的,用于自动装配Bean的依赖关系,可以用于字段、构造函数和方法上。在字段上标注@Autowired注解,Spring会尝试根据类型来查找对应的Bean,并将其注入到该字段中。通过在构造函数上标注@Autowired注解,Spring会自动创建依赖的实例并传递给构造函数,完成依赖注入。

2023-08-08 18:11:40 976 1

原创 ValidationException: HV000183: Unable to initialize ‘javax.el.ExpressionFactory‘问题解决

在构建的过程中,会使用到 tomcat 里的 EL 表达式包。最后根据一位网友提供的思路,大概是,可能是新引入的jar包包含了和ExpressionFactory相互冲突的类,遂顺着这个思路查询了jar的依赖关系,发现新引入的jar包含了ExpressionFactory,导致冲突,后面在新引入的jar包当中排除冲突的jar,项目重新启动成功。通过这件事启示我们,在面对这些问题的时候,应该理清思路,不要一味的按照查询的文档去解决,如果不好好的分析,有时候未免陷入迷惑的怪圈,最终问题不能很好的解决。

2023-07-28 09:12:54 2289

原创 说明白注解@RequestParam与@RequestBody的使用场景

另外,@RequestParam注解比@RequestBody注解要常用,前者适用于单个简单类型的参数,后者适用于多个复杂对象类型的参数。@RequestParam注解处理的是键值对形式的请求参数,如age=24,而@RequestBody注解处理的是JSON、XML等格式的请求消息体。@RequestParam注解用于绑定请求参数,而@RequestBody注解用于绑定请求的消息体。则@RequestParam会将name请求参数绑定到方法的name形参,将age请求参数绑定到方法的age形参。

2023-07-26 13:36:31 341

原创 PDF文件转曲你知道吗?

转曲(Create outlines 创建轮廓),指的是将对象特有的属性去除,转换成能任意造型或识别的普通对象,可以提高文件的共通性,转曲是印刷设计的重要概念,如果从一台电脑转到另一台电脑,字体一定要转曲(包括CDR文件,一种基于矢量输出文件)。如果对方电脑中没有pdf文件中所使用的字体,这时对方打开pdf文件看到的字可能会变化,对印刷会造成一定的损失。经过一段时间的调研之后,发现之前介绍的Ghostscript可以实现这个功能,其实操作也很简单,下面给大家介绍一下;

2023-07-25 16:45:15 2107

原创 初识OOM Killer

例如,可以通过设置/proc/sys/vm/overcommit_memory参数来限制进程使用虚拟内存的大小,或者将/proc/sys/vm/oom_kill_allocating_task参数设置为1,这样OOMKiller就会选择正在分配大量内存的进程进行终止。如果发现某个进程占用了大量的内存,可以考虑停止该进程以释放更多的内存。通过检查日志文件、停止占用内存过多的进程、重新配置系统参数、添加物理内存或交换空间以及降低程序内存占用等方法,可以有效地避免OOM事件的发生,并确保系统的稳定性和正常运行。

2023-07-25 16:35:43 641

原创 35岁愿你我皆向阳而生

35岁是程序员生涯中的一个重要节点,同时也是一个充满挑战和机会的时期。如何应对焦虑情绪,保持竞争力并保持个人发展的连续性,这需要程序员深入思考自己的职业规划和发展方向。通过学习新技能、关注行业动态、与年轻人合作以及审视个人价值观,35岁程序员可以在未来的职业生涯中不断成长和发展。归根到底,无论如何生活的好与坏都在于我们对待生活的态度,幸福是一种感受,相由心生,无论你处于何种生活状态,都希望大家向阳而生。

2023-07-25 15:55:16 46

原创 深入解读Docker的Union File System技术

Docker是一种开源的容器化平台,于2013年由Docker Inc.发布。它的出现解决了应用程序在不同环境中部署和运行的问题。在传统的部署方式中,应用程序需要考虑不同操作系统、库和依赖的兼容性,而容器化技术则提供了一种更加轻量级和可移植的解决方案。容器化技术的概念源自操作系统级虚拟化,它通过将应用程序及其依赖打包到一个独立的容器中,从而实现了隔离、可移植和可复制的环境。与传统的虚拟化技术相比,容器化技术更加轻量级,因为它共享主机操作系统的内核,无需为每个容器分配额外的操作系统资源。

2023-07-25 15:37:07 341

转载 JAVA面试中问及HIBERNATE与 MYBATIS的对比

第一方面:开发速度的对比就开发速度而言,Hibernate的真正掌握要比Mybatis来得难些。Mybatis框架相对简单很容易上手,但也相对简陋些。个人觉得要用好Mybatis还是首先要先理解好Hibernate。比起两者的开发速度,不仅仅要考虑到两者的特性及性能,更要根据项目需求去考虑究竟哪一个更适合项目开发,比如:一个项目中用到的复杂查询基本没有,就是简单的增删改查,这样选择

2016-01-12 14:01:08 299

转载 一起学Java(一)

1.  Java面向对象基本概念      Java基本上是面向对象的程序设计语言, 除了一些简单类型(primitive)的变量以外,一切都是对象, 程序是对象的组合, 每个对象都有自己的空间, 并且每个对象都有一种类型, 同一类所有对象都能接受相同的消息。 下面只对Java中对象的结构作简单的说明:    Ø  类(class):  class是定义类的关键字,  类中包含

2016-01-08 09:47:53 183

转载 Python时间,日期,时间戳之间转换

1.将字符串的时间转换为时间戳    方法:        a = "2013-10-10 23:40:00"        将其转换为时间数组        importtime        timeArray = time.strptime(a, "%Y-%m-%d %H:%M:%S")    转换为时间戳:    timeStamp = int(ti

2016-01-07 10:18:53 194

转载 java各种时间格式转换

时间和日期中常用到的几个类:java.util.Date, java.util.Calendar, java.util.GregorainCalendar, java.text.DateFormat, java.text.SimpleDateFormat java.util.Date : 表示特定瞬间,精确到毫秒 一天是 24 * 60 * 60 = 86400

2016-01-06 15:53:44 1053

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除