String createPath = "src/main/java/com/test/api" File folder = new File(createPath); if (!folder.exists()) { try { boolean result = folder.mkdirs();//리턴값으로 생성 완료 되었는지 확인 가능 } catch (Exception e) { e.getStackTrace(); } } 모든 디렉토리를 생성하고 싶으면 mkdirs(); 단일 디렉토리만 생성해도 된다면 mkdir(); 메소드를 사용하면 된다.
Personlist.stream() .sorted( Comparator.comparing(Detail::getName, Comparator.reverseOrder()) .thenComparing( Detail::getAge, Comparator.nullsLast( Comparator.reverseOrder())) ) .collect(Collectors.toList()); stream을 사용하여 정렬을 진행 할때, Comparator을 사용하는데 정렬되는 값이 null일 경우 java.lang.Comparable.compareTo(Object)" because the return value of "java.util.function.Function.apply(Object)" is null 에러가 발생한다. ..
lombok 사용하여 getter, setter 메소드를 만들 경우 boolean 타입의 필드만 'No candidates found for method call' 해당 문구가 뜨는 현상을 볼 수 있다. 자동으로 생성되는 boolean 타입의 getter는 is로 만들어준다. https://projectlombok.org/features/GetterSetter @Getter and @Setter projectlombok.org private boolean notice; User.getNotice(); --> X User.isNotice(); --> O 통일성을 위해 getNotice를 사용하고 싶다면 해당 필드를 선언할 때, Boolean 형식으로 선언하면 get 네이밍을 사용할 수 있다. * boole..
List list = (List) paramMap.get("list"); for(Map tempMap : list) { String sectionCode = MapUtils.getString(tempMap, "sectionCode", null); String keyword = MapUtils.getString(tempMap, "keyword", null); if (StringUtils.isNotBlank(sectionCode)) { } if (StringUtils.isNotBlank(keyword)) { } } }
String to ListMap import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; public List getCommonList(String path) { List returnList = new ArrayList(); try { URL url = new URL(url); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setConnectTimeout(20000); //서버에 연결되는 Timeout 시간 설정 con.setReadTimeout(60000); // InputStream 읽어 오는..
public int postRequset(Map paramMap) throws IOException { @Cleanup CloseableHttpClient client = HttpClientBuilder.create().build(); Map requestMap = new HashMap(); requestMap.put("type" , type); //파라메터 HttpPost post = new HttpPost("url"); post.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); List paramList = convertParam(requestMap); post.setEntity(new UrlEncodedForm..

ios 앱 심사 덕분에 애플 로그인을 개발하게 됐다. ( 구글 로그인은 있는데, 애플 로그인이 없다면 심사 통과 불가 ) 애플 로그인은 자바스크립트로 구현했다. ( apple login request -> successHandler -> ajax -> rest controller (db 작업 및 session 생성) -> view) 1. 스크립트 및 로그인 버튼 추가 https://developer.apple.com/documentation/sign_in_with_apple/displaying_sign_in_with_apple_buttons_on_the_web Apple Developer Documentation developer.apple.com https://appleid.apple.com/signi..
애플 로그인 진행 중 JWT 복호화 작업을 진행하게 되었다. 애플 로그인 성공 시 JWT를 리턴해주고, payload 쪽을 디코딩하여 사용한다. @RequestMapping(value="{pageId:^appleLoginCallback$}") public String appleLoginCallback(@RequestBody String data, HttpServletRequest request, Model model) throws Exception { Map map = new HashMap(); String[] params = data.split("&"); for(String param : params){ String name = param.split("=")[0]; String value = param..
파라메터를 List 형식으로 변환하여, API의 리턴 값을 받는 소스이다. public int postRequset(Map paramMap) throws IOException { @Cleanup CloseableHttpClient client = HttpClientBuilder.create().build(); Map requestMap = new HashMap(); requestMap.put("type" , type); //파라메터 HttpPost post = new HttpPost("url"); post.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); List paramList = convertParam(requ..
- Total
- Today
- Yesterday