Springboot项目-服务重启

发布于:2025-02-11 ⋅ 阅读:(21) ⋅ 点赞:(0)

由于项目中一个服务要去爬一个第三方的数据,而这个数据获取每次都要用到session这些信息,每次一个星期左右就需要从重启一次服务来重新获取,所以就需要用到重启的功能

        <!--重启-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter</artifactId>
        </dependency>
management:
  endpoint:
    restart:
      enabled: true
import com.example.OrderApplication;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.SpringApplication;
import org.springframework.cloud.context.restart.RestartEndpoint;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

import javax.annotation.Resource;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

@RequestMapping("order")
@RestController
public class OrderController {

    @Resource
    private RestTemplate restTemplate;


    @Autowired
    private RestartEndpoint restartEndpoint;

    @GetMapping("add")
    public String add(){
        System.out.printf("");
        String forObject = restTemplate.getForObject("http://localhost:8012/stock/incre", String.class);

        return ""+forObject;
    }


    @GetMapping("restart")
    public void  restart(){
    	//调用restart进行重启
        restartEndpoint.restart();
    }
}