WonYong-Jang / Development-Process

It is where I record the error fixes or learning during the development process.
0 stars 1 forks source link

[Java] static / final 정리 #6

Open WonYong-Jang opened 6 years ago

WonYong-Jang commented 6 years ago

# final

# static

static {
 // 초기화 할 내용 선언
 // main() 보다 먼저 수행
}
 - 그외 static import : 다른 클래스에 존재하는 static 멤버들을 불러와서 사용하기 위해 선언
   => 클래스명과 점을 통한 호출이 필요없이 바로 사용
  ex) import static packageName.ClassName.staticMemberName
  ex) import static packageName.ClassName.* // 모든 static 멤버 불러오기 가능
WonYong-Jang commented 2 years ago

@Getter public class AddressDto {

@JsonProperty("meta")
private Meta meta;
@JsonProperty("documents")
private List<Document> documents;

}

@Getter public class Document { @JsonProperty("address_name") private String address_name; @JsonProperty("y") private double y; @JsonProperty("x") private double x; }

@Getter public class Meta { @JsonProperty("total_count") private int total_count; @JsonProperty("pageable_count") private Integer pageable_count; @JsonProperty("is_end") private boolean is_end; }

@RestController public class KaKaoController {

private String kakao_apikey = "";
private static final String NEWLINE = System.lineSeparator();

@GetMapping("/search")
public String search() {

    try (
            BufferedReader reader = new BufferedReader(
                    new FileReader("test.txt"));

            BufferedWriter bw = new BufferedWriter(
                    new FileWriter("output.csv"));
    ) {
        String str;
        while ((str = reader.readLine()) != null) {
            System.out.println(str);
            AddressDto addressDto = searchKakaoApi(str);

            bw.write("주소,위도,경도");
            bw.write(NEWLINE);

            Meta meta = addressDto.getMeta();

            String result = "";
            int resultCnt = meta.getTotal_count();
            if(resultCnt > 0) {
                result += addressDto.getDocuments().get(0).getAddress_name()+",";
                result += addressDto.getDocuments().get(0).getY()+",";
                result += addressDto.getDocuments().get(0).getX()+",";
                result += "-,";
                result += resultCnt;
            } else {
                result += "-,-,-,-,0";
            }
            bw.write(result);
            bw.write(NEWLINE);
        }

    } catch (Exception e) {
        e.printStackTrace();
    }

    return "success";
}
private AddressDto searchKakaoApi(String address) {
    final HttpHeaders headers = new HttpHeaders();
    headers.set("Authorization", "KakaoAK " + kakao_apikey);
    //headers.setContentType(MediaType.APPLICATION_JSON);

    RestTemplate restTemplate = new RestTemplate();

    String apiURL = "https://dapi.kakao.com/v2/local/search/address.json?" +
            "query=" + "서울특별시 서초구 반포대로23길 6";
    final HttpEntity<String> entity = new HttpEntity<>(headers);

    ResponseEntity<AddressDto> result = restTemplate.exchange(apiURL, HttpMethod.GET, entity, AddressDto.class);

    return result.getBody();
}

}