使用GraalVM将Spring Boot项目转成本地镜像

使用GraalVM将Spring Boot项目转成本地镜像

Serverless 3年前 (2021-06-16) 浏览: 665 评论: 0

作为一个Java开发人员,进程有时会遭受更长的启动时间和相对较高的内存使用率。 我们将寻找一个令人兴奋的解决方案。 在本文中,我们将介绍一个简单的Spring Boot应用程序,然后使用GraalVM将其转换为本机映像。 如果你不知道GraalVM,别担心。我们一会儿再讨论这个问题。现在,请记住,它是一个提供提前编译(AOT)的JVM,与运行时的即时编译相结合。 我们先来讨论一下今天要编写的Spr

如何在MAC或Linux上设置JDK环境变量?

如何在MAC或Linux上设置JDK环境变量?

Java系列 3年前 (2021-07-18) 浏览: 335 评论: 0

Mac OS 设置环境变量 正在Mac上运行Java应用程序,需要将JAVA_HOME设置为主页?请按照以下说明进行操作: 1. 打开终端 2. 通过键入“which java”确认您拥有JDK。它应该显示类似于/usr/bin/java的内容。 3. 通过键入“java-version”,检查您是否拥有所需的Java版本。 JAVA_HOME本质上是目录的完整路径,其中包含名为bin的子目录,而

使用Byte Buddy轻松实现Java Agent

使用Byte Buddy轻松实现Java Agent

Java系列 3年前 (2021-08-19) 浏览: 1145 评论: 0

Java agent是在另一个Java应用程序(“目标”应用程序)启动之前执行的Java程序,为该agent提供修改目标应用程序或其运行环境的机会。在本文中,我们将从基础知识开始,使用字节码操作工具Byte Buddy实现高级代理。 在最基本的用例中,Java agent设置应用程序属性或配置特定的环境状态,从而使代理能够充当可重用和可插入的组件。下面的示例描述了这样一个代理agent,它设置了可

微服务架构的特点和挑战

微服务架构的特点和挑战

微服务 3年前 (2021-09-20) 浏览: 326 评论: 0

微服务是构建应用程序的体系结构方法。作为一个架构框架,微服务是分布式的、松散耦合的,因此一个团队的更改不会破坏整个应用程序。使用微服务的好处是,开发团队能够快速构建应用程序的新组件,以满足不断变化的业务需求 一种构建应用程序的方法,针对DevOps和CI/CD进行了优化 将微服务体系结构与更传统的单一方法区分开来的是它如何将应用程序分解为其核心功能。每个功能都称为一个服务,可以独立构建和部署,这意

Java17新功能概述

Java17新功能概述

Java系列 3年前 (2021-10-22) 浏览: 577 评论: 0

当我们想到新Java时™, 我们喜欢想象它像一辆来自受人尊敬的系列的时尚现代汽车——忠实于其根源,但速度快、舒适,并配备了驾驶所需的所有小发明。当然,更新的车型不断推出,但当你需要可靠和实用的时候,你就不会错了。 因此,请与我们一起探索使用Java17打开的所有新道路,我们将看到这条道路的走向。 Java意味着商业 当您不想在稳定性、安全性和支持之间做出选择时,Java工作得最好。世界各地的开发人

JVM内置函数intrinsics简介

JVM内置函数intrinsics简介

Java系列 2年前 (2022-02-21) 浏览: 352 评论: 0

在本文中,我们将学习什么是intrinsics(内部/内置函数),以及它们如何在Java和其他基于JVM的语言中工作。 什么是内置? 内置函数是由我们的编程语言的编译器或解释器进行特殊处理的函数。更具体地说,这是一种特殊情况,因为各种原因,编译器或解释器可以用替代实现替换函数。 编程语言通常通过理解一个特定的方法调用是特殊的来处理这个问题,无论何时我们调用这个方法,结果都是不同的。这样一来,我们的

Java树遍历简介

Java树遍历简介

Java系列 2年前 (2022-06-29) 浏览: 506 评论: 0

Java树遍历被定义为一种用Java编程语言实现的算法,它将树作为一种数据结构,并结合了通过算法实现访问树的所有节点的基本原理。计算机科学数据结构术语中的遍历表示需要访问数据结构中的所有节点以完成手头的更大任务。树的组件是根节点和子节点,其中一些结束于该特定节点,并命名为叶子,其他组件创建更多子树。在本文中,我们将介绍Java中树遍历的实现,并查看实现相同的树遍历的不同方法。 语法 Java中的类

如何利用 AREX 在本地快速复现线上问题

如何利用 AREX 在本地快速复现线上问题

相关技术 1年前 (2023-05-08) 浏览: 184 评论: 0

在软件开发过程中,线上问题的复现和定位是开发日常的一个活动。然而令开发人员头疼的是,由于线上环境与本地环境的配置和数据存在差异(如数据库中的数据、缓存中的数据等),线上的问题往往无法快速在本地测试环境中进行复现,排查困难度大大增加。 面对这种问题,可以利用 AREX 这款自动化回归测试工具来进行快速复现。AREX 的基本原理是在生产环境中录制流量和数据,在测试环境回放并自动比对接口服务内的外部请求

什么是metaspace的压缩类空间?

什么是metaspace的压缩类空间?

爪哇岛 4年前 (2020-09-14) 浏览: 866 评论: 0

在本系列的前一篇文章中,元空间体系结构故意省略了压缩的类空间。这一点使情况更加复杂。 在64位平台上,hotspot使用称为压缩对象指针(“CompressedOops”)和压缩类指针的优化技术。两者都是同一事物的变体。 压缩指针是一种引用数据(Java堆中的对象或元空间中的类元数据)的方法,即使在64位平台上也使用32位引用。 这有许多优点,例如指针大小更小,从而减少内存占用和更好地利用缓存,并

Java递归函数与算法讲解系列三

Java递归函数与算法讲解系列三

Java系列 4年前 (2020-10-16) 浏览: 815 评论: 0

递归跟踪 为了产生不同形式的递归跟踪,我们在Java实现中包含了一个无关的print语句。该输出的精确格式有意地镜像了一个名为du的经典Unix/Linux实用程序(用于“disk usage 磁盘使用”)生成的输出。它报告一个目录所使用的磁盘空间量和嵌套在其中的所有内容,并可以生成一个详细的报告。 当在示例文件系统上执行时,我们对diskUsage方法的实现会产生下图给出的结果。在算法的执行过程

metaspace默认大小

metaspace默认大小

jvm 4年前 (2020-11-17) 浏览: 3873 评论: 0

在Java8及以后的版本中,我们可以使用以下命令设置元空间的初始大小和最大大小:-XX:MetaspaceSize=N-设置元空间的初始(和最小大小)。-XX: MaxMetaspaceSize=N-设置元空间的最大大小。 什么是元空间metaspace size大小? 从我们的角度来看,需要注意的是,Metaspace的默认最大大小是无限的。相反,java7及更早版本的PermGen在32位JV

内存溢出的几种原因和解决办法

内存溢出的几种原因和解决办法

jvm 3年前 (2020-12-19) 浏览: 975 评论: 0

我们都会犯错误,但有些错误看起来太可笑了,我们想知道怎么会有人,更不用说我们自己,会做出这样的事情。当然,只有在事后才注意到这一点。下面,我将描述我们最近在一个应用程序中犯下的一系列错误。有趣的是,最初的症状表明一种完全不同于实际存在的问题。 从前一个沉闷的午夜 午夜过后不久我就被监控系统的警报吵醒了。在我们的PPC(pay-per-click)广告系统中,一个负责索引广告的应用程序显然已经连续重

如何使用Eclipse内存分析器分析内存泄漏

如何使用Eclipse内存分析器分析内存泄漏

jvm 3年前 (2021-01-19) 浏览: 1127 评论: 0

本文将简单介绍工具Eclipse Memory Analyzer以及如何使用此工具查找一些内存问题。 一. 将内存分析器安装到Eclipse中 启动更新管理通过帮助→软件更新… 选择“可用软件”选项卡并添加内存分析器更新站点:http://download.eclipse.org/technology/mat/0.7/update-site/ 选择内存分析器功能。点击“安装”按钮进行安装。 接受许

如何在eclipse中配置tomcat

如何在eclipse中配置tomcat

Java系列 3年前 (2021-02-19) 浏览: 1796 评论: 0

在本文中,我们将了解如何在eclipse中配置Tomcat,以及如何配置Tomcat来部署web应用程序。 Tomcat简介 Tomcat实际上由许多组件组成,包括tomcatjsp引擎和其他连接器,但是主要组件是Catalina,它提供了servlet规范的实现。当启动Tomcat服务器时,实际上是Catalina在启动。变量CATALINA_HOME是存储CATALINA文件位置的配置属性。

Micronaut是什么?

Micronaut是什么?

相关技术 3年前 (2021-03-23) 浏览: 549 评论: 0

Micronaut:现代的JVM微服务框架 一个现代的、基于JVM的、全栈框架,用于构建模块化的、易于测试的微服务应用程序micronaut.io Micronaut是Grails团队在2018年Greach大会上正式宣布的一个全新的全栈框架。它专注于模块化、最小的内存占用和启动时间,这使得它成为运行在AWS lambda或类似环境中的完美解决方案。用Java编写的服务器需要不到1秒的时间来启动8

什么是GraalVM?

什么是GraalVM?

Java系列 3年前 (2021-04-24) 浏览: 9307 评论: 0

GraalVM是开发人员编写和执行Java代码的工具。具体来说,GraalVM是由Oracle创建的Java虚拟机(JVM)和Java开发工具包(JDK)。它是一个高性能的运行时,可以提高应用程序的性能和效率。 GraalVM的目标包括:编写一个更快、更易于维护的编译器,提高在JVM上运行的语言的性能,减少应用程序启动时间,将多语言支持集成到Java生态系统中,以及为此提供一组编程工具。 Graa

Dapr:将云原生开发带进企业

Dapr:将云原生开发带进企业

Serverless 3年前 (2021-05-26) 浏览: 566 评论: 0

Kubernetes是管理分布式工作负载的一个很好的工具,但是它给可能从中受益的开发人员带来了一系列障碍。 为K8s编写代码时,开发人员必须担心应用程序使用哪种入口控制器,或者部署哪种特定的自动缩放技术。这些问题传统上都是运营团队的工作。”当你部署Kubernetes应用程序时,作为一名开发人员,你基本上要负责处理所有这些,一直到基础设施,并将其描述为应用程序描述的一部分,”Microsoft A

Spock如何使用JMockit来mock静态方法

Spock如何使用JMockit来mock静态方法

Spock系列 3年前 (2021-06-27) 浏览: 2597 评论: 0

之前的Spock系列mock静态方法主要是通过使用PowerMock实现的,但是使用JMock的同学也挺多的,所以这篇文章讲下在Spock中如何使用JMockit来mock静态方法。 比如下面的业务代码demo,记录日志的logger对象是调用LoggerServiceFactory工厂类的静态方法获取的,这时候就可以使用JMockit把他的静态方法getLoggerService给mock掉,因

RSocket入门系列之一

RSocket入门系列之一

相关技术 3年前 (2021-07-29) 浏览: 1176 评论: 0

在这篇文章中,您将学习RSocket的基础知识,RSocket是一个支持反应流的二进制应用程序协议。在介绍之后,您将学习如何将RSocket与Spring Boot结合使用。好好享受! 简介 RSocket是在TCP或WebSockets之上使用的二进制协议。RSocket是一种包含反应式原理的通信协议。这意味着RSocket使用异步通信。它也适用于推送通知。例如,当使用HTTP时,需要进行轮询以

Spock中Mock()、Stub()、Spy()方法的区别

Spock中Mock()、Stub()、Spy()方法的区别

Spock系列 3年前 (2021-08-30) 浏览: 5971 评论: 7

Mock 按照Spock官方文档(https://spockframework.org/spock/docs/2.0/interaction_based_testing.html)的定义: 描述规范下的对象与其合作者之间(强制)交互的行为。 说人话就是Mock()的对象是一个虚拟类,用于替换真实的类,为每个方法调用返回一个默认值:引用类型是null,基本类型为 0 或 false,比如可以把调用其

登录

忘记密码 ?

切换登录

注册