一、 POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 二、 HSSF概况 HSSF 是Horrible SpreadSheet Format的缩写,通过HSSF,你可以用纯Java代码来读取、写入、修改Excel文件。HSSF 为读取操作提供了两类API:usermodel和eventusermodel,即“用户模型”和“事件-用户模型
2024-11-29C++20 中的 Concepts(概念) 概述 Concepts(概念)是 C++20 引入的一项重要特性,用于对模板参数进行约束和检查。通过使用 Concepts,开发者可以在编译期对模板参数的类型和行为进行验证,从而提高代码的可读性、可维护性和错误信息的清晰度。 为什么需要 Concepts? 提高代码可读性:使用 Concepts 可以明确表达模板参数所需满足的条件,使代码意图更加清晰。改进错误信息:在没有 Concepts 的情况下,模板错误可能会产生难以理解的编译错误信息。Con
2024-11-29winston winston-daily-rotate-file 是Winston的一个扩展,它为Winston提供了一个方便的daily rotating file transport(日志文件轮转传输器)。简单来说,就是每当达到指定时间(通常是每日零点)或者文件大小超过限制时,它会创建一个新的日志文件,从而避免单个日志文件过大,便于管理和长期存储大量日志数据。 安装插件 # 安装日志库 pnpm add winston nest-winston # 安装winston-daily-r
2024-11-29前言 spring是怎样通过@ComponentScan,或者自动配置扫描到了依赖包里class的? ClassLoader 这里涉及到了class Loader的机制,有些复杂,jdk中提供默认3个class Loader: Bootstrap ClassLoader:加载jdk核心类库;加载%JAVA_HOME\lib%下的jar;ExtClassLoader:加载jdk扩展类库;加载%JAVA_HOME\lib\ext%下的jar;AppClassLoader:加载classpath下的c
2024-11-29获取Bean对象(对象装配) 获取 bean 对象也叫做对象装配,是把对象取出来放到某个类中,有时候也叫对象注入。 属性注入 属性注入是使用 @Autowired 实现的,将 Service 类注入到 Controller 类中。 一般是Controller写一个方法(处理http请求),调用service的业务方法(处理业务逻辑),再调用repository的方法(处理数据库的CRUD操作) //Controller类 @Controller @Data //lombok注解 publ
2024-11-29在 Spring Boot 中,统一异常处理是一种常见的做法,它可以让你集中处理应用程序中可能出现的各种异常,并为客户端提供一致的响应格式。 步骤 1: 创建异常类 首先,创建一些自定义异常类,以便在应用程序中抛出特定类型的异常。 // 自定义异常类 public class CustomException extends RuntimeException { private final int statusCode; private final String message;
2024-11-29面向对象编程OOP(Object-Oriented Programming) Go语言不是面向对象的语言,只是让大家理解一些面向对象的思想,通过一些方法来模拟面向对象 物以类聚:随着发展变得越来越庞大,我们需要学会归类。 语句多了:我们把一些功能性代码,或者一些完成相同类型作业的代码聚集到一起。函数就出现了 变量多了:相同类型的变量,功能相近的变量放在一起,组合成一个类,结构体就出现了 方法多了、变量多了、结构体也多了。 于是类(伪概念)就出现了。 面向对象编程(OOP)具有以下主要特点: 1
2024-11-29点击名片关注 阿尘blog,一起学习,一起成长 1 Goroutine和channel Go语言通过goroutine和channel来实现并发编程。Goroutine是Go语言中轻量级的线程,它由Go运行时(runtime)管理,并且拥有自己的栈空间。Goroutine的调度由Go运行时自动完成,不需要程序员手动创建和管理线程。 Channel是Go语言中用于在goroutine之间进行通信的机制,它类似于管道,用于在不同的goroutine之间传递数据。 下面是一个简单的Go语言并发编程案例
2024-11-29前言 小猿对于远程调用一直感到非常神秘,今天小猿就跟踪一下远程调用的整个过程。 调用过程 1、在保证服务没有错误的前提下开始远程调用,首先程序会进入ReflectiveFeign中的invoke方法,并执行invoke函数中的先决条件验证,如果说toString方法或者hashCode方法一样或者说是同一个FeignClient,就不继续往下执行。 2、构建模板并开始调用远程方法并对放回结果进行解码 3、记录相关日志,并调用client.execute方法
2024-11-29GO系列 1、 2、 3、 4、 5、 6、 7、 8、 9、 10、 11、 12、 13、 14、 15、 16、 17、 18、 19、 20、 21、 22、 23、 24、 前言 有了之前的 呢,在学习过之后大概也就能应付一下一面了。那一般面试流程中至少也有一个二面吧,一面面基础,二面面广度和深度,也就是现在的企业都喜欢要 T 型人才,什么是 T 型人才呢?就是横向要广【了解的技术多】,竖向要深【熟悉的技术深刻,知道其原理】。 此篇进阶篇,咱就来学习一下 GO 语言比较有点难度
2024-11-29