카테고리 없음

새 배포 후에도 Spring Boot Properties값 유지 방법

기록만이살길 2021. 3. 2. 08:03
반응형

새 배포 후에도 Spring Boot Proeprteis값 유지지방법이 있나요?

1. 질문(문제점):

현재 HTTP를 통해 Android 앱의 앱 충돌 로그를 내 서버 (acra)로 보내고 내 서버는 다음과 같은 속성에 저장합니다.

@RestController
public class EndlessBlowReportController {
    
    public int counter;

    @Autowired
    public static final Properties defaultProperties = new Properties();

    @PostMapping("/add_report")
    public void addReport(@RequestBody String report) {
        try {
            JSONObject jsonObject = new JSONObject(report);
            defaultProperties.put(counter, report);
            counter++;

        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }

    @GetMapping("/get_reports")
    public List<String> getReports() {
        List<String> reports = new ArrayList<>();
        try {
            for(int i=0;i<defaultProperties.size();i++) {
            reports.add((String)defaultProperties.get(i));
            }
        } catch (Exception ex) {
        }
        return reports;
    }
}

새 버전의 서버를 배포 할 때까지 제대로 작동합니다.

배포 후에도 속성을 유지하려면 어떻게해야합니까?

2. 해결방안:

속성은 메모리에만 저장되며 파일이나 데이터베이스와 같은 영구 저장소에는 유지되지 않습니다. 이 정보를 속성에 저장하지 않고 대신 데이터베이스에 저장하거나 파일 저장소에 파일로 저장하는 것이 좋습니다.

예를 들어 파일 솔루션을 사용했다면 시작 중에 파일을로드하고 새 보고서를받을 때마다 파일을 업데이트 할 수 있습니다. 이렇게하면 정보가 유지되고 서버를 다시 시작할 때마다 사라지지 않습니다.

이 답변이 도움이 되었기를 바랍니다.

행운을 빕니다!

65760806
반응형