Notice
Link
- Today
- Total
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- springboot
- 스크롤적용
- ffmpeg
- MFC
- vc++
- 코드로 서버 재실행
- CentOS
- mybatis exception
- 터치좌표 view
- c언어
- MySQL
- Back 키 클릭 감지
- reactnative
- pid 찾아 kill
- SQL 첫날
- springboot 재가동
- DB 계정생성
- 말줌임 CSS
- 텍스트컬러
- kill -9
- rn
- 파티션 빠른 삭제
- 피쉬랜드
- sql exception
- CSS
- Activity 전체화면
- MariaDB
- SQL 마지막날
- view 획득
- 가변영역 스크롤
Archives
개발은 하는건가..
[Springboot] 서버 재가동 RestAPI 코드 작성 본문
반응형
Springboot 서버 동작 환경을 DB 에 설정된 값을 반영하여 다시 실행해야 하는 경우가 필요할 때가 있는데 간단하게 구현하는 방법을 찾았다.
원문 사이트 : https://www.baeldung.com/java-restart-spring-boot-app
1. Springboot Application 클래스에 아래와 같이 restart() 함수를 작성한다.
@SpringBootApplication
@MapperScan(basePackages = "com.smis.datacollection")
public class SmisApplication extends SpringBootServletInitializer {
private static ConfigurableApplicationContext _AppContext;
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return super.configure(builder);
}
public static void main(String[] args) {
SpringApplication application = new SpringApplication(SmisApplication.class);
application.addListeners(new SmisApplicationListener());
_AppContext = application.run(args);
}
public static void restart() {
ApplicationArguments args = _AppContext.getBean(ApplicationArguments.class);
Thread appThread = new Thread(()->{
_AppContext.close();
_AppContext = SpringApplication.run(SmisApplication.class, args.getSourceArgs());
});
appThread.setDaemon(false);
appThread.start();
}
@Override
protected WebApplicationContext run(SpringApplication application) {
return super.run(application);
}
}
2. Application 클래스의 restart() 함수를 호출하는 restAPI 추가
@RestController
public class RestartController {
@PostMapping("/restart")
public void restart() {
// restart() 를 호출하기 전에 별도로 생성된 스레드 작업들이 있다면 먼저 중단 처리
UdpPacketProcessor.getInstance().stopServer();
SmisApplication.restart();
}
}
'SpringBoot , Thymeleaf' 카테고리의 다른 글
[springboot] RestTemplate 를 이용한 간단하게 http 요청 (1) | 2024.01.03 |
---|---|
[mybatis] Sql Exception 처리 (0) | 2023.09.12 |
[lo4j2] 로그 파일로 생성되게 하기 (2) | 2023.06.09 |
mybatis DTO 클래스 aliasesPackage 지정 (0) | 2023.05.25 |
[springboot] application.properties 프로파일별로 따로두기 (0) | 2023.02.20 |
Comments