
java
文章平均质量分 80
timi先生
我懒,还写了签名️
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
在大数据环境下,使用spingboot为Android APP推送数据方案
建议结合业务需求,可能混合使用:如将消息先推送到MQTT或内部队列,再由微服务通过RSocket或gRPC转发给移动端,充分利用各自优势。或使用STOMP库:连接后订阅/topic/data接收消息,发送消息到/app/client-reply等。或使用STOMP客户端库,连接后订阅/topic/data,发送消息到/app/client-reply等。客户端需自行实现断线重连逻辑,并在重连时使用相同的Resume Token恢复会话。同样需监听连接状态并在断开后重连,使用业务令牌继续未完成的数据传输。原创 2025-04-29 16:37:43 · 1264 阅读 · 0 评论 -
如何将JAR交由Systemctl管理?
AI越来越火了,我们想要不被淘汰就得主动拥抱。推荐一个人工智能学习网站,通俗易懂,风趣幽默,最重要的屌图甚多,忍不住分享一下给大家。废话不多说,进入正题。下面开始说如何使用 systemctl 来管理一个 Java 应用程序(例如 hello.jar)重新加载 Systemd 配置。原创 2025-03-04 09:51:31 · 939 阅读 · 0 评论 -
多线程下如何保证OkHttpClient的线程安全
这是为了避免在没有其他线程需要使用 OkHttpClient 的情况下,保持对 threadMap 的引用。but,我们说的前提是多线程下,那么并发访问可能带来的竞争条件和同步问题是单例模式下无法避免的。使用 OkHttpClient 的新实例这个方案的核心在于我们为每一个新的线程都创建了OkHttpClient客户端示例,以此来避免线程共享资源和相互竞争。多线程下的线程安全是很多同学都会遇到问题之一,虽然都说在客户端使用多线程是不可取的,但客户端本身是在一个多线程的环境下时,这个问题就不得不考虑了。原创 2023-12-25 15:12:12 · 1383 阅读 · 0 评论 -
Java显式锁-读写锁
ReentrantLock实现了Lock接口,并提供了和synchronized相同的互斥性和内存可见性以及可重入的加锁语义。和synchronized相比它再处理锁的不可用性上有更高的灵活性。下面摘自JDK11文档:ReentrantLock是一个可重入互斥锁,其基本行为和语义与使用同步方法和语句访问的隐式监视器锁相同,但具有扩展功能。ReentrantLock由上次成功锁定但尚未解锁的线程所有。当该锁不属于另一个线程时,调用锁的线程将返回并成功获取该锁。原创 2023-08-03 10:07:29 · 219 阅读 · 0 评论 -
Mybatis plus 存储 List、Map
接着:在该实体类上修改 @TableName@TableName(value = "数据库表名" , autoResultMap = true)try {} try {} } }});});});} }@TableName(value = "数据库表名" , autoResultMap = true) @TableField(typeHandler = ObjectToJacksonHandler . class)原创 2023-07-27 14:01:37 · 3317 阅读 · 0 评论 -
Java 集合和流
如果Predicate.test() 传递给参数的方法filter()返回true,则意味着应该对其进行处理。min() 或 max() 方法返回一个具有 Optionalget() 方法的实例,可以使用 get() 方法来获取值。filter()在Stream 上调用该方法时,作为参数传递给该方法的过滤器 filter() 将在内部存储,此时并没有进行任何过滤。min()和 max() 方法是流处理方法。一旦调用这些,流将被迭代,应用过滤和映射,并且流中的最小值或最大值将被返回。其次,对流进行处理。原创 2023-07-14 09:39:52 · 1131 阅读 · 0 评论 -
Java 责任链模式
责任链模式定义:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。可以将它想象成一个管道,请求会顺着管道一段一段被传递,直到被处理。原创 2023-07-05 08:45:57 · 521 阅读 · 0 评论 -
SpringBoot+VUE实现文件导入并将其保存到Liunx系统
比如 MultipartFile 的 transferTo() 方法就可能使用相对路径。用户点击后,我们会打开一个抽屉,并将获取到的本行数据id传入到这个界面和上传的数据文件进行绑定,之后传回后端处理。这里有一点需要注意,Java的IO方法很多,需要注意的是liunx系统中写入要指定绝对路径,不要用相对路径。用户点击查看文件后,进入到这个界面进行文件查看和在线展示。这部分的逻辑很简单,主要就是对后端的数据解析并绑定。都有提及,这里不再多言。这部分内容可以参照我之前的文章,这里不再多说~原创 2023-06-28 14:38:06 · 1843 阅读 · 0 评论 -
新手Maven入门(二)
对于这种使用场景,依赖的元素有一个特殊的 import 值:它将把外部 POM(没有被声明为parent)的dependencyManagement元素的内容导入到当前 POM 的dependencyManagement元素中。例如,在一个 JAR 项目中,默认的构建生命周期由 maven-jar-plugin 处理,其将构建的各个阶段映射到了它自己的以及其他插件的目标中,如表 所示。然后,它将会运行所有到该阶段的默认阶段,并且包括将该构件放置到你的本地存储库的文件系统中。原创 2023-06-18 20:12:59 · 1147 阅读 · 0 评论 -
新手Maven入门(一)
Maven 是一种用来管理 Java 项目的工具,但不是那种用来管理资源规划和调度的工具。它处理的是管理一个具体的项目所涉及的各种任务,如编译、测试、打包、文档以及分发。任何可以被 Maven 的坐标系统唯一标识的对象都一个 Maven 构件。大多数情况下,构件是构建 Maven 项目所生成的文件,如 JAR。但是,只包含其他 POM(该文件本身并不产生构件)使用的定义的 POM 文件也是 Maven 构件。Maven 构件的类型由其 POM 文件的元素指定。原创 2023-06-17 18:23:20 · 1447 阅读 · 0 评论 -
浅谈 Spring Cloud Alibaba
Spring Cloud Alibaba是微服务开发的种解决方案。它包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。原创 2023-06-02 15:43:57 · 1046 阅读 · 0 评论 -
使用 SpringBoot 访问 MySQL 数据库
中时,可能会受到 SQL 注入攻击。例如,默认数据库是H2. 因此,想要使用其他数据库时,必须在该application.properties文件中定义连接属性。后,将其设置为none,撤销连接到 Spring 应用程序的 MySQL 用户的所有权限,并仅授予 MySQL 用户SELECT、UPDATE、INSERT和DELETE。创建一个 MySQL 数据库,构建一个 Spring 应用程序,并将其连接到新创建的数据库。5、下载生成的 ZIP 文件,它是根据您的选择配置的 Web 应用程序的存档。原创 2023-05-15 13:23:47 · 3919 阅读 · 0 评论 -
java基础(三)-变量和数据类型
它就像一个盒子,假设你在一张纸上写下数字 13,并把它放进一个盒子里。现在我们可以说,这个盒子里面存的是数值 13。:决定了可以存储在其中的值/数据的类型。小技巧:在 Java 语言中,你可以创建一个变量并同时为它赋值。赋值操作会将值从一个变量复制到另一个变量,它不会去移动数值,而是复制数值。在 Java 语言中,所有数据都存储在变量中。上节说了最简单的程序,其实就是一条命令,这节我们开始讲变量。每个变量都有三个重要的属性:类型、名称和值。:存储在变量中的特定对象、数据或信息。:用以区分不同的变量;原创 2023-04-28 09:15:00 · 1524 阅读 · 0 评论 -
java基础(二)-最简单的程序
实际上,这只是一个 System.out.println 命令。根据参数的值,相同的命令可以执行不同的操作。单引号是这样的:'。双引号是这样的:"。双引号与两个单引号是不同的。此命令有两个版本:System.out.println() 和 System.out.print()在每个命令的末尾,我们使用分号。命令会在屏幕上打印文本,并添加一个特殊不可见的‘换行符’。这就是下一个文本从新行上开始的原因。它会在当前行上打印文本,但会使下一个文本打印在新行上。如果要在屏幕上显示一些文本,可以在文本两侧加上双引号。原创 2023-04-27 15:23:08 · 523 阅读 · 0 评论 -
java基础(一)-虚拟机和第一个命令
它是函数的一部分(在 Java 语言中,‘函数’也称为‘方法’)。JVM 是一个特殊的程序,它知道如何执行用 Java 语言编写的程序。对于每个类,都创建一个单独的文件。“如果你想在程序中描述一只猫 (cat) ,那么你必须创建一个 Cat.java 文件,并在文件中声明 Cat 类,等等。你需要创建一个将保存在 Home.java 文件中的 Home 类。“另一方面,我们可以说一个建筑物被分为多个公寓,而一个公寓被分为多个房间。因此,类就是一个公寓楼,函数/方法是一个公寓,而命令是一个房间。原创 2023-04-26 11:09:35 · 735 阅读 · 0 评论