JAVA
-
[Spring] PRG(Post-Redirect-Get) 할 때 PathVariable, Url Encoding 신경쓰기 - RedirectAttributeJAVA/Spring(Springboot) 2023. 2. 21. 23:40
PRG 할 때 RedirectAttribute를 사용하면 편리하다. 예를 들어 상품을 등록한 후 상품 상세 페이지로 가고 싶을 때 코드를 살펴보자. @PostMapping("/add") public String addItem(Item item, RedirectAttributes redirectAttributes) { Item savedItem = itemRepository.save(item); redirectAttributes.addAttribute("itemId", savedItem.getId()); redirectAttributes.addAttribute("status", true); return "redirect:/basic/items/{itemId}"; } RedirectAttribute를 사용하..
-
[Java] Apache Poi 파워포인트 표 만들기JAVA 2022. 11. 21. 09:37
기존에 생성되었던 ppt파일에 표를 추가하는 예제를 작성해보겠다. 프로그램의 순서 1. 원본 ppt 파일을 불러온다. 2. 표를 삽입한다. 3. ppt를 저장한다. String original_filePath = "C:\\Users\\Downloads\\originalFile.pptx"; try { // 원본 ppt 불러오기 XMLSlideShow original_ppt = new XMLSlideShow(new FileInputStream(original_filePath)); List slides = original_ppt.getSlides(); XSLFSlide slide = slides.get(0); // 표 생성하는 함수 createTable(slide); // ppt 저장하기 String modi..
-
Query dsl 프로젝트 설정 시 unable to load class 'com.mysema.codegen.model.type'. gradle 오류 해결JAVA/Spring(Springboot) 2022. 2. 8. 20:30
Query dsl 을 프로젝트로 설정할 때 gradle이 5.0 이상이면 추가로 작업해줘야하는 부분이있다. 추가하지 않을 시 compileQuery를 실행할 때 unable to load class 'com.mysema.codegen.model.type'. gradle 오류가 난다. build.gradle 파일 코드 buildscript { ext { queryDslVersion = "5.0.0" } } plugins { id 'org.springframework.boot' version '2.6.3' id 'io.spring.dependency-management' version '1.0.11.RELEASE' //querydsl 추가 id "com.ewerk.gradle.plugins.querydsl"..
-
ArrayList에서 Optional 객체 찾기, filter 조건 걸기, 배열에서 filter 조건걸기JAVA 2021. 12. 1. 23:11
Java 8에서 Optional 객체를 사용하면 filter 를 사용하여 조건을 걸 수 있다. 코드를 통해서 알아보자. ArrayList에서 Optional 객체 찾기, filter 조건 걸기 로그인 기능을 구현하는 코드이다. Memeber라는 객체가 있다면 Optional로 사용하면 된다. 우선 로그인을 하기 위해서는 loginId로 Optional 객체를 가져오고 비밀번호가 일치하는지 확인해야한다. Member 를 담고 있는 ArrayList 를 반환하는 findAll() 이라는 함수가 있다고 가정해보자. public Optional findByLoginId(Stirng loginId){ return findAll().stream() .filter(m -> m.getLoginId().equals(lo..
-
String으로 저장된 날짜를 Date 형식으로 변환하여 DB에 저장하기JAVA 2021. 9. 14. 13:11
String 으로 저장된 날짜를 Date 로 바꿔서 DB에 저장해야 할 때가 있다 아래의 예시로 보자 // String인 날짜 String sourceDate = "2021-09-14"; // 날짜 포맷을 생성하고 LocalDate 형태로 변환한다 DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate date = LocalDate.parse(sourceDate, dateTimeFormatter); DB 로 저장할 때는 한번 더 변환이 필요하다 java.sql.Date convertedDate = new java.sql.Date.valueOf(date);
-
spring security - Authentication, UserDetails, OAuth2User / 예시JAVA/Spring(Springboot) 2021. 8. 8. 20:47
Spring Security를 사용하여 로그인하는 경우에는 Session영역에 Authentication 정보를 저장해둔다. Authentication 은 컨트롤러 등에서 User에 대한 정보를 가져올 때 사용이 되는데, 사용자가 로그인 한 방식에 따라서 Authentication의 구현체가 달라진다. - UserDetails : 사용자가 일반적(id, pw입력)으로 로그인 한 경우 - OAuth2User : Auth 로그인 한 경우 (ex- 구글, 카카오 등) 그럼 컨트롤러에서 session에 담긴 사용자 정보를 들고 올때 로그인 방식에 상관없이 한 번에 가져올 수 있는 방법이 있을까? 답은 가능하다! 보통 SpringSecurity로 로그인을 구현할 때 UserDetails 를 먼저 구현하는 경우가 ..
-
git 에 있는 프로젝트 Intellij 에 clone 하기JAVA/Spring(Springboot) 2021. 8. 4. 23:02
Intellij에서 Github의 Spring Gradle Project import 하기 (daddyprogrammer.org) Intellij에서 Github의 Spring Gradle Project import 하기 Intellij에서 Github의 Spring Project를 로컬로 Clone 하여 프로젝트를 구성하는 방법에 대해 알아보겠습니다. 참고로 Gradle로 구성된 SpringBoot 기준입니다. Github 프로젝트 주소 복사 Github로 이동하여 clone daddyprogrammer.org 이클립스로 git clone 진행하다가 External Project and Library 를 못 가져와 하루종일 삽질하다가,,, IntelliJ 에 Clone 하니까 바로 되었다.... 어후 ..
-
[Spring] @RestController / @RequestBodyJAVA/Spring(Springboot) 2021. 8. 1. 18:40
@RestController 에 대해서 알아보자 @Controller 는 반환 값이 'String' 이면 뷰 이름으로 인식된다. 그래서 뷰를 찾고 뷰가 렌더링된다 @RestController 는 반환값으로 뷰를 찾는 것이 아니라 HTTP 메시지 바디에 바로 입력한다. 따라서 실행 결과로 'String' 값을 받을 수 있다 @RequestBody 도 비슷한 역할을 수행한다 @Controller 를 사용하는 경우 return 값으로 String 을 받게 되면 자동적으로 ViewResolver 를 찾게 되는데 @RestController 같이 body 에 메세지를 뿌려주고 싶은 경우 @RequestBody 를 사용하면 된다 @ResponseBody @RequestMapping("/request-param-v2..