由于项目中一个服务要去爬一个第三方的数据,而这个数据获取每次都要用到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();
}
}