- 博客(50)
- 收藏
- 关注
原创 Java-POI导出EXCEL(动态表头)
称,value为表格数据,注意,数据排序需要和固定表头的数据排序一致。map中的key为表头名。resultlist:固定表头的数据,即。引入下方两个工具类,定义excel固定表头类。ExcelDynamicHeader:其中的log需要手动更改。导出excel,表头有固定的和动态的。MajorNameChangeReport 类。
2024-10-29 09:20:02 246
原创 java导入导出excel通用工具(POI,类注解形式)
通过给类定义注解(设置名称,设置kv转换值),然后利用设置的名称和传入的数据进行导出。只需要在项目添加两个工具类就可以实现excel导出功能。
2023-12-15 10:34:21 1792
原创 (二)、Java并发——JDK并发包
方法总结:lock():获得锁,如果锁已经被占用,则等待。lockInterruptibly():获得锁,但优先响应中断。tryLock():尝试获得锁,如果成功返回true,失败返回false。不会等待,直接返回。tryLock(Long time,TimeUnit unit):在给的定时间获取锁,没有得到则返回false。unlock():释放锁。为了避免系统频繁的创建和销毁线程,可以让创建的线程进行复用。可以节约创建和销毁对象的时间。
2023-11-28 14:41:23 1003
原创 SpringCache
在缓存实现的过程中,Spring是基于Cache接口提供的方法进行缓存操作的,所以不同的缓存组件如果要接入到Spring之中,则需要提供Cache接口的具体实现子类。缓存的数据应该于数据库之中的实体数据相对应,所以当数据库之中的数据被删除之后,对应的缓存的数据理论上也应该被删除,在SpringCahe考虑到数据删除的问题。例子1:下列例子中,使用name作为缓存的key,返回结果中的age字段大于18不进行缓存,name不包含abc才进行缓存。例子:缓存需要根据参数中的id和name进行更新缓存。
2023-11-16 20:50:34 458
原创 JavaScript6
ES6是JavaScript语言的标准。新特性:let和const命令、变量的解构赋值、字符串函数对象数组等扩展。环境准备:需要安装NodeJs。
2023-05-28 18:54:10 896
原创 Java8新特性---StreamAPI
Stream可以对集合数据进行操作,就类似使用SQL执行的数据查询。用于操作数据源(集合、数组等)所生成的元素序列。Stream和Collection集合区别:Collection是一种静态的内存数据结构,而Stream是有关计算,前者主要面向内存,存储在内存中,后者主要是面向CPU,通过CPU实现计算。注意:Stream自己不会存储元素;Stream不会改变原对象。相反,他们会返回一个持有结果的新stream;stream操作是延时执行的,他们会等到需要结果的时候才会执行。
2023-05-05 16:03:42 173
原创 JavaScript
JS是一种轻量级的脚本语言。它不具备开发操作系统的能力,而是只用来编写控制其他大型应用程序的”脚本“。JS是一种嵌入式语言。它本身提供的核心语法不算多。
2023-04-24 21:57:34 90
原创 面试题--设计模式
一个类只能有一个实例,主要用于需要频繁使用的对象避免频繁初始化和销毁提高性能,或者资源需要相互通信的环境。比如Spring中的bean默认是单例。主要实现方式:饿汉模式、懒汉模式、枚举、静态内部类饿汉模式:在类加载过程中才对单例进行实例化,需要构造方法私有化,定义一个成员变量,并创建一个值作为初始值,通过公共静态方法获取这个实例。懒汉模式:使用时才去创建这个单例对象,需要构造方法私有化,定义一个该类的成员变量并赋初始值,提供一个获取实例的公共静态方法。特别注意这个方法需。
2023-04-23 22:14:19 76
原创 CSS样式
CSS(Cascading Style Sheets) 层叠样式表,叫级联样式表,简称样式表。文件后缀.css。语法:CSS规则由两个主要的部分构成:选择器,以及一条或多条声明(样式)选择器通常是需要改变样式的HTML元素。每条声明由一个属性和一个值组成属性(property)是设置样式的属性(style attribute)。每个属性有一个值。属性和值被冒号分开。
2023-04-20 16:28:39 314
原创 面试题---分布式事务、锁
由DTP模型定义事务管理器TM和资源管理器RM之间通讯的接口规范叫做XA,它规定应用程序AP通过TM提交和回滚事务,TM通过XA接口来通知RM数据库事务的开始,结束,提交,回滚。三个阶段,准备阶段、预提交阶段、提交阶段。:事务协调器,它是独立的中间件,需要独立部署运行,它维护全局事务的运行状态,接收TM指令发起全局事务的提交与回滚,负责与RM通信协调各各分支事务的提交或回滚。再比如,在第二阶段,如果事务协调者发出提交事务指令后宕机,收到指令的参与者也宕机了,我们就不能确定事务的执行结果,究竟有没有提交。
2023-04-14 09:47:49 837
原创 面试题--授权方面
方案2:单点登录,用户只用在一个服务器上登录,访问其他服务就可以不用登录,这个需要做认证服务的交互,产生大量操作。如果过期就从localstorage中获取refresh token,发送请求刷新access token,就是获取新的token,前端接收到新的token后会覆盖旧的token,然后把请求重新发送一遍。方案1:SpringSecurity+OAuth2+JWT,认证服务器负责颁发Token,资源服务器负责认证和授权,也可以将认证工作交给Zuul,资源服务器只负责授权。
2023-04-13 21:24:12 103
原创 面试题--RabbitMQ
消费者向RabbitMQ Broker请求消费相对应队列中的消息,可能会设置相应的回调函数。Direct Exchange:定向,把消息交给符合指定routing key的队列。将不需要同步处理的并且耗时长的操作由消息队列通知消息接收方进行异步处理。提高了应用程序的响应时间。消息持久化:消息默认是放在内存中的。在消费时,消费者先取得消息根据ID去查询redis、DB是否存在消息。等待Broker回应并投递相应的队列中的消息,消费者接收消息。确认机制:如果消息接收到一半时,消费者挂了,就可以使用ACK机制。
2023-04-07 22:00:10 64
原创 (二)、自动部署:Windows+Jenkins+Maven+Git+SpringBoot
记录自动部署:Windows+Jenkins+Maven+Git+SpringBoot
2023-03-23 17:16:33 506
原创 (一)、自动部署:Linux+Jenkins+Maven+Git+SpringBoot
记录自动部署:Linux+Jenkins+Maven+Git+SpringBoot
2023-03-23 16:53:24 311
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人