相关疑难解决方法(0)

如何停止在intelliJ中运行的处理,以便它调用关闭钩子?

当我在intelliJ中运行我的程序然后使用STOP按钮时,它不会调用我创建的关闭钩子.在intelliJ中有没有办法让那些叫做关机?

谢谢

java intellij-idea

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

关闭挂钩在Eclipse中不起作用

我添加了一个关闭钩子:

Runtime.getRuntime().addShutdownHook(myShutdownHook);
Run Code Online (Sandbox Code Playgroud)

它正常工作正常,但是当我单击Eclipse中的红色停止按钮时则不行.有没有办法在Eclipse中调用关闭钩子?

java eclipse shutdown-hook

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

Eclipse中已终止的Spring Boot应用程序 - 未调用Shutdown挂钩

我有一个Spring Boot + Spring Data Redis/KeyValue项目.我设置了一个Spring配置文件来运行嵌入了所有依赖项的应用程序.所以在启动时,我启动了一个嵌入式Redis服务器.当我在Eclipse中启动时,一切正常,除了我希望在停止Spring Boot应用程序时停止Redis服务器.所以我设置了几个关闭钩子,但是当我从Eclipse终止应用程序时它们没有被调用.

他们是关于SO的类似问题,我创建了这个问题,希望有一个Redis解决方案.这些类似的问题也没有特定于Spring Boot.

我尝试了很多东西:

  • 春季靴子ExitCodeGenerator;
  • DisposableBean;
  • @PreDestroy;
  • 我试过ShutdownHook(在@ mp911de的回答之后)

他们都不被称为.

也许有一个Redis选项,超时,保持活着..我不知道的盒子外面的东西? 当我的Spring Boot应用程序突然停止时,如何确保Redis服务器停止

=>我看到这个嵌入式Redis用于弹簧启动,但@PreDestroy在意外杀死应用程序时才被调用.

以下是一些类似的问题:

我还在eclipse.org上看到这篇文章,讨论在从eclipse停止应用程序时如何调用shutdown hook:正常关闭Java应用程序


这是我的所有相关代码:

用于在启动时启动嵌入式 Redis服务器的组件(我尝试将其停止!!):

@Component
public class EmbeddedRedis implements ExitCodeGenerator, DisposableBean{

    @Value("${spring.redis.port}")
    private int redisPort;

    private RedisServer redisServer;

    @PostConstruct
    public void startRedis() throws IOException {
        redisServer = new RedisServer(redisPort);
        redisServer.stop();
        redisServer.start();
    }

    @PreDestroy
    public void stopRedis() { …
Run Code Online (Sandbox Code Playgroud)

java eclipse spring redis spring-boot

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