본문 바로가기
반응형

IT/Java313

Workbook 사용법 자바에서는 Word, Excel, Power Point 파일등의 파일을 다루기 위한 POI 라는 라이브러리가 존재한다.아파치 소프트웨어 재단에서 만든 라이브러리로 Microsoft Office 파일을 자바 언어로 읽고 쓰는 기능 제공한다. https://poi.apache.org/ Apache POI - the Java API for Microsoft Documents Project News 25 November 2023 - POI 5.2.5 available The Apache POI team is pleas" data-og-host="poi.apache.org" data-og-source-url="https://poi.apache.org/" data-og-url="https://poi... 2024. 4. 28.
openfeign에서 header에 값 추가 RESTAPI 를 하기 위해서 openfeign 을 사용할 경우도 있다. openfeign 에 대해서는 참고 포스팅 참고 바란다. RESTAPI를 사용하려면 헤더값을 종종 셋팅해주곤 해야하는데 그 방법에 대해서 다뤄보려고 한다. parameter나 requestbody는 openfeign 에서 @RequestParam / @RequestBody 로 설정이 가능하지만 헤더값은 RequestMapping annotation에 같이 명시를 해준다. 아래 예시코드를 보면 header 를 하나만 추가하고자 할 경우 ..이상 생략 @RequestMapping(value = "/list/1", method = RequestMethod.GET, headers = "header1=value1") Member find().. 2024. 4. 24.
IncorrectResultSizeDataAccessException Spring JDBC 를 사용하게 될 경우 만나는 Exception 중 하나인 IncorrectResultSizeDataAccessException 는 queryForObject의 결과가 없을 때(null) 혹은 2개 이상일 때 발생한다. 아래 예시 코드를 보면 try { JdbcTemplate jdbcTemplate; String sql = "select name from UserTable where name = ?"; return jdbcTemplate.queryForObject(sql, String.class, "thenice"); } catch (IncorrectResultSizeDataAccessException error) { return null; } thenice에 대한 값이 1개일 경우엔.. 2024. 4. 23.
@RequestPart? 기존에 사용하던 @RequestParam은 key, value의 form에 사용되는 반면 @RequestPart는 더 복잡한 데이터(Part)들을 다루는 multipart/form-data에 적절하며 파일 추출때 유용하게 사용하는 어노테이션이다. 해당 annotation을 이해하기 위해서는 multipart 에 대한 이해가 있어야한다. 자세한 내용은 아래 참고 포스팅 참고 바란다. 아래 예제와 처럼 사용을 할 경우 multipart에 대한 값을 받을 수 있다. ..이상 생략 @PostMapping("/test") public void testMultipart(@RequestPart MultiTest test, @RequestPart(required = false) List files) throws Exc.. 2024. 4. 22.
File To MultipartFile / MultipartFile To File File To MultipartFile File file = new File("/home/test/test.dat"); DiskFileItem fileItem = new DiskFileItem("file", Files.probeContentType(file.toPath()), false, file.getName(), (int) file.length() , file.getParentFile()); InputStream input = new FileInputStream(file); OutputStream os = fileItem.getOutputStream(); IOUtils.copy(input, os); MultipartFile multipartFile = new CommonsMultipartFile(fi.. 2024. 4. 21.
멀티파트(Multipart)란? 멀티파트(Multipart)란 HTTP에서 form 을 통해서 파일을 등록해서 전송하는 방법이다. HTTP에 대한 내용은 참고 포스팅 참고 바란다. 멀티파트의 요청은 Content-Type 헤더를 multipart/form-data 값으로 지정을 해야하고 클라이언트가 파일 전송을 위해 request 할 때, HTTP request body에 데이터를 여러 부분으로 나눠서 보낸다. 파일을 한 번에 여러 개 전송 할 경우엔 body에 파일이 여러 개가 연결되어 전송된다. 주로 HTML Input element에서 enctype으로 이용된다. 사용법은 간단하게 @PostMapping(....) void test(MultipartFile mf){ ... 이런식으로 받아줄수 있고, String originFile.. 2024. 4. 20.
Entity에 AutoIncrement 컬럼 설정 JPA를 사용하면서 서로 다른 Entity를 다루다보면 save 시 id 값이 각각 나누어져야하는데 하나로 합쳐서 올라갈 때가 있다. 예를들어 아래와같이 간단히 코드를 짜면 ..이상 생략 memberRepository.save(new Mem()); userRepository.save(new User()); ..이하 생략 결과는 member는 초기값 1로 값이 들어가는데 user는 1로 초기값으로 들어가야하지만 2가 들어간다. 이럴 경우엔 IDENTITY 전략 을 사용해야한다. 방법은 2가지 이다. 전체 프로젝트에 적용 yml 파일에 아래와 같이 값을 추가한다. hibernate: use-new-id-generator-mappings: false 개별 Entity 에 적용 각 엔티티에 시퀀스/auto in.. 2024. 4. 19.
Maven 버전 충돌되는 라이브러리들. pom.xml 에 여러 dependency 를 설정하게 될 경우 각 라이브러리가 참조하는 라이브러리들이 충돌하는 경우가 있다. 예를들어 a.jar 파일을 받고 b.jar 파일을 받았다. 하지만 a 에는 test.jar:1.0.1 이고 b에는 test.jar:1.0.2 로 받아지면 프로젝트 build시 충돌이 난다. 이럴경우엔 exclusion으로 묶어주면 된다. org.springframework spring-context 4.0.0.RELEASE 이렇게 하여 충돌이 발생 했다면 org.springframework spring-context 4.0.0.RELEASE commons-logging commons-logging 이렇게 회피를 할수가 있다. maven에 대해서는 아래 참고 포스팅 참고 바란다. .. 2024. 4. 16.
Spring Boot [0.0.1-SNAPSHOT] is not compatible with this Spring Cloud release train IDE 에서 Spring 을 사용하며 maven build 를 진행하니 아래와 같은 에러가 발생하였다. Spring Boot [0.0.1-SNAPSHOT] is not compatible with this Spring Cloud release train 확인해보니 특정 라이브러리들이 버전끼리 호환이 잘 안되는 모양이었다. 그럼 application.yml 파일에 아래와 같은 설정 옵션을 추가하면 된다. spring.cloud.compatibility-verifier.enabled=false yml파일이나 maven에 대한 내용은 아래 참고 포스팅에서 참고 바란다. 참고 포스팅 https://thenicesj.tistory.com/197 빌드 관리도구 Maven / Gradle Spring 을 사용하게 되.. 2024. 4. 15.
반응형