springboot访问windows共享文件-编程思维

前言 最近有项目需要开发档案打包下载功能,其中包含很多大附件,项目使用minio存储且不在同一台服务器上,为了优化速度决定使用windows共享功能进行文件传输 SMB1.0 集成jcifs类库,主要适用于一些老旧系统,但下载速度比较慢,仅作参考 此类库没有maven引用,官网地址:http://jcifs.samba.org/ 注意事项: 设置jcifs.smb.client.dfs.disa

mybatis plus乐观锁-编程思维

给实体字段添加@Version注解,数据库表中添加version字段 注意: 支持的数据类型只有: int,Integer,long,Long,Date,Timestamp,LocalDateTime 整数类型下 newVersion = oldVersion + 1 newVersion 会回写到 entity 中 仅支持 updateById(id) 与 update(entity, wr

swagger2配置-编程思维

配置类 package top.yalong; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; im

list 根据对象中的属性过滤数据-编程思维

一.代码块 public static void main(String[] args) { // 1.测试数据创建 UserEntity user1 = UserEntity.builder().id(1).name("张三").sex(0).build(); UserEntity user2 = UserEntity.builder().i

xxx-1.0.0.jar中没有主清单属性-编程思维

XXX-1.0.0.jar中没有主清单属性   1、问题现象 java -jar 运行 SpringBoot工程的jar文件,报错“XXX-1.0.0.jar中没有主清单属性”。   2、问题原因 SpringBoot工程打出来的jar的 MANIFEST.MF 文件中缺少 Main-Class 等信息,如下:   3、解决方案 在pom.xml 文件中,增加如下内容: <buil

个人文章-编程思维

大型网站的设计宗旨平时开发过程中,对于项目架构的设计,需要注意:合久必分:最初 MVC 就是把系统拆为 M(model)、V(view)、C(controller) 这三块,通过不同的包名来进行区分和分层,分层也是最常见的一种架构模式,不论用什么语言开发都会面临分层,这是无处不在的一种模式。而且分层也便于代码的解耦以及合理的工作分配。在我们的项目里,我们会通过 Maven 来对项目进行聚合分层。集

个人文章-编程思维

好久不见,不知道大家新年过得怎么样?有没有痛痛快快得放松?是不是还能收到很多压岁钱?好了,话不多说,我们开始今天的主题:ThreadLocal。我收集了4个面试中出现频率较高的关于ThreadLocal的问题:什么是ThreadLocal?什么场景下使用ThreadLocal?ThreadLocal的底层是如何实现的?ThreadLocal在什么情况下会出现内存泄漏?使用ThreadLocal要注

个人文章-编程思维

本文将基于 Dubbo Samples 示例演示如何快速搭建并部署一个微服务应用。背景Dubbo 作为一款微服务框架,最重要的是向用户提供跨进程的 RPC 远程调用能力。如上图所示,Dubbo 的服务消费者(Consumer)通过一系列的工作将请求发送给服务提供者(Provider)。为了实现这样一个目标,Dubbo 引入了注册中心(Registry)组件,通过注册中心,服务消费者可以感知到服务提

个人文章-编程思维

我们今天分析Quartz中与作业相关的3个概念:JobJobDetailJobDataMapJob上一篇文章已经简单做过分析:Job是任务接口,包含一个execute方法。Job与JDK Timer中的TimerTask类似,是提供给应用实现任务逻辑的API。应用层需要关注的其实就是这个Job接口,作业需要实现的业务逻辑就在Job接口的实现类的execute方法中实现。JobDetailJobDe

个人文章-编程思维

🍓starter作用springBoot starter基于约定大于配置思想,使用spi机制及自动装配原理,可以将一些通用的功能能够封装成一个独立组件并很方便的集成到不同的项目里面,简化开发,提升代码复用能力。springBoot在配置上相比spring要简单许多, 其核心在于starter的设计, 在使用springBoot来搭建一个项目时, 只需要引入官方提供的starter, 就可以直接使用

个人文章-编程思维

好久没发技术文章了,最近回到工作地,晚上有空又可以码码技术了,今天我们就来聊一个 Spring Boot3 中的新鲜玩意,声明式 HTTP 调用。1. 由来Spring Boot3 去年底就已经正式发布,我也尝了一把鲜,最近有空会和小伙伴们慢慢聊聊 Spring Boot3 都给我们带来了哪些新东西。今天我们就先来看看声明式 HTTP 接口。用过 Spring Cloud 的小伙伴都知道,在 Sp

个人文章-编程思维

目标从零上手开发基于 Dubbo 的微服务难度低环境要求系统:Windows、Linux、MacOSJDK 8 及以上(推荐使用 JDK17)GitIntelliJ IDEA(可选)Docker (可选)动手实践本章将通过手把手的教程一步一步教你如何从零开发一个微服务应用。1. 启动注册中心对于一个微服务化的应用来说,注册中心是不可或缺的一个组件。只有通过注册中心,消费端才可以成功发现服务端的地址

个人文章-编程思维

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~Github地址:https://github.com/Tyson0314/...写在前面此异常非彼异常,标题所说的异常是业务上的异常。最近做了一个需求

个人文章-编程思维

MYSQL执行过程一个UPDATE语句正在执行:UPDATE test SET idx = 2 WHERE id=10,执行流程如下(这里主要以InnoDB存储引擎体系结构中的组件为主):在Server层进行词法解析,解析成MySQL认识的语法,查询什么表、什么字段,并生成查询路径树,选择最优查询路径。到了InnoDB存储引擎这里,先判断id=10这行数据对应的页是否在缓冲池中,如果不在,则将id

个人文章-编程思维

众所周知目前前后端交互基本都采用标准的JSON结构{"code": 200, "message": "成功", "data": null}不认识@ControllerAdvice注解之前接口是这样返回的 @GetMapping("/") public BaseResponse<String> test() { String testMsg = testSe

个人文章-编程思维

开发环境JDK 1.8Lombok - 1.18.16背景公司因为开源节流需要,需要区分重要日志和非重要日志,一个月光日志的费用有30w之多确实恐怖了一些(PS:够几十个程序员的工资了)。所以,公司要求将日志区分开,去除一些非必要的日志,记录的日志也最多保留15天,重要日志30天。为了区分场景日志,单独搞了个Logger日志记录器来采集日志,为了继续用注解的方式在项目中,这时就需要@CustomL

windows下使用graalvm将springboot应用编译成exe大大提高启动和运行效率-编程思维

GraalVM安装 GraalVM安装 安装 请前往GraalVM官网 下载 GraalVM Community 22.3,注意当前支持的Springboot的GraalVM版本必须是22.3 笔者这里下载的Java版本为17,如下图 安装GraalVM的方法与安装JAVA方法大致相同,GraalVM中包括了JDK(无需再次安装JDK),同时还需要安装native-image工具(后续下载)