小编Ale*_*hin的帖子

Spring Boot 2.3.0 buildpack 构建镜像,创建日期为 40 年前

我尝试在运行 Spring Boot 2.3.0 的 maven 项目中使用 buildpack:

mvn spring-boot:build-image
Run Code Online (Sandbox Code Playgroud)

图像创建得很好,但我看到了以下信息:

REPOSITORY                                    TAG                     IMAGE ID            CREATED             SIZE
gcr.io/paketo-buildpacks/builder              base-platform-api-0.3   daceb4f909b7        40 years ago        690MB
myimage                                       master                  a482a4a34379        40 years ago        285MB
Run Code Online (Sandbox Code Playgroud)

为什么说图像(连同构建器)是 40 年前创建的?

java maven buildpack spring-boot

14
推荐指数
2
解决办法
1241
查看次数

如何在Spring中正确关闭ApplicationContext?

我正在攻读Spring Core认证,我对提供的学习资料中的这个问题有一些了解:

关闭应用程序上下文的首选方法是什么?

我知道如果我有这样的事情:

ConfigurableApplicationContext context = …
// Destroy the application
context.close();
Run Code Online (Sandbox Code Playgroud)

通过在context objet 上使用close()方法,ApplicationContext被关闭并且应用程序被销毁.

但我认为这不是我必须做的最佳方式.

阅读官方文档,我发现我也可以这样做:

context.registerShutdownHook();
Run Code Online (Sandbox Code Playgroud)

注册与JVM关闭挂钩,因此是将触发Spring的密切相JVM退出之前的JVM.所以在JVM退出时,Spring的关闭阶段将会执行.

在文档中,我可以读到:通常无法调用,context.close()因为许多应用程序(Web应用程序)无限期运行但是这最后一个断言究竟意味着什么?为什么Web应用程序无限期运行?

所以我的问题是:

  • 我是否可以使用第二种方式关闭应用程序上下文而不是Web应用程序?
  • 是否优先尊重context.close()

TNX

java spring spring-mvc applicationcontext

9
推荐指数
2
解决办法
2万
查看次数

Helm v3 中 .Release.Time 的替代方案

由于 Helm v3 内置对象.Release.Time 已删除

现在将发布时间注入模板的首选方法是什么?

kubernetes-helm sprig-template-functions

7
推荐指数
1
解决办法
1467
查看次数

比较两个xml并使用Java找到丢失的节点

这困扰了我好几天.我只需要通过比较找出第二个xml中缺少的节点.我试过xmlunit,但它并没有真正帮助我找到丢失的节点,因为它逐行比较.两个样本xml如下:xml1:

<test testcase="101">
    <value="1">
    <value="2">
    <value="3">
</test>
Run Code Online (Sandbox Code Playgroud)

XML2:

<test testcase="101">
    <value="3">
    <value="2">
</test>
Run Code Online (Sandbox Code Playgroud)

请注意,value = 3实际上在第二个副本中它只是到达第一个节点,但我仍然认为它没有丢失.我如何找到丢失的节点值="1"?

java xml xmlunit

5
推荐指数
0
解决办法
627
查看次数

无法访问内部类变量

我无法访问内部类"listPanel"对象中的变量.有变量"tutajcos"但我无法从CosView类中的其他方法访问.

有什么问题?Eclipse没有提示我什么

package cos.view;

import java.awt.*;
import java.awt.event.*;
import java.util.Observable;

import util.Model;
import util.View;

import javax.swing.*;

import cos.controller.CosController;
import cos.model.CosModel;

public class CosView extends View implements ActionListener {

    private JPanel buttonsPanel;
    private JPanel listPanel;
    private CosModel theModel;
    private CosController theController;

    public CosView(CosController theController, CosModel theModel) {
        this.theModel = theModel;
        this.theController = theController;

        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                buildGui();
            }
        });
    }

    private void buildGui() {
        setTitle("Program GUI");
        listPanel = new ListPanel();
        buttonsPanel = new ButtonPanel();
        add(buttonsPanel, BorderLayout.NORTH);
        add(listPanel, …
Run Code Online (Sandbox Code Playgroud)

java oop nested inner-classes

3
推荐指数
1
解决办法
79
查看次数

默认情况下,Java 8 在容器内运行时是否总是消耗至少 1GB 的 RAM?

我们正在 Kubernetes 集群中运行 Java 应用程序。应用程序本身对 RAM 的需求并不高,但我注意到它总是消耗 1GB。

kubectl top pods
NAME                                                              CPU(cores)   MEMORY(bytes)
my-application-c0ffee                                             100m           1127Mi
my-application-c0ffee                                             100m           1109Mi
Run Code Online (Sandbox Code Playgroud)

当我检查jcmd <pid> GC.heap_info容器内部时,我得到以下信息:

def new generation   total 89216K, used 12090K [0x00000000bc200000, 0x00000000c22c0000, 0x00000000d2c00000)
  ...
tenured generation   total 197620K, used 151615K [0x00000000d2c00000, 0x00000000decfd000, 0x0000000100000000)
  ...
Metaspace       used 146466K, capacity 152184K, committed 152576K, reserved 1183744K
  class space    used 18171K, capacity 19099K, committed 19200K, reserved 1048576K
Run Code Online (Sandbox Code Playgroud)

据我了解,默认情况下,Java 保留 1GB 的虚拟内存大小用于存储类信息(为了使用 32 位引用以压缩方式引用它,应事先保留此内存块)。在容器外运行时没什么大不了的,因为实际上并未提交此内存。它只是一个保留的地址空间。

但是,如果在容器内运行,保留内存变为已 …

java jvm docker kubernetes

2
推荐指数
1
解决办法
73
查看次数

如何在git中重新提交

我已经用git做了一些更改。现在,我想更改提交文本。有可能这样做吗?我正在使用Eclipse git和gittortoise

git

1
推荐指数
1
解决办法
6518
查看次数