[Spring Jpa] 1. 게시판 만들기 - 프로젝트 설정 (InteliJ+Spring Data Jpa+QueryDsl+H2+타임리프+BootStrap5+Gradle)
2022. 8. 1. 15:39
스프링
목표 - 이번장에서는 프로젝트 설정, 타임리프 layout 설정, controller를 생성해보는것이 목표입니다. 개발환경 - InteliJ - Java11 - Spring Data Jpa - QueryDsl - H2 Database - Thymeleaf - BootStrap5 프로젝트 설정 1. https://start.spring.io/ 해당사이트에 접속합니다. 2. project 설정방법 - Project는 Gradle Project를 선택합니다. - Language는 Java를 선택합니다. - Spring Boot version은 SNAPSHOT과 M4가 안붙은 버전중에 가장 높은 버전을 선택합니다. (지금 기준은 2.7.2 버전이라 선택하였습니다.) - Group은 jpa, Artifact는 b..
[Spring] 서버 시작시 invalid source release: 11 오류 대처법
2022. 8. 1. 13:08
스프링
서버 시작시 invalid source release: 11 오류 대처법 서버 시작시 해당 오류가 나는 경우 컴퓨터에 jdk11이 설정이 안되있는경우입니다. File - Project Structure을 클릭합니다. corretto-11을 선택후 apply ok를 클릭합니다. File - Settings에 들어갑니다. Gradle Jvm을 corretto-11로 설정후 apply ok를 클릭합니다. invalid source release : 11 오류가 없어진것을 확인할수 있습니다.
[JPA] 변경감지 기능, merge
2022. 7. 20. 22:31
스프링
JPA 준영속 엔티티를 수정할때 방법 JPA에서는 업데이트를 진행할때 2가지 방법이 있습니다. 1. 변경감지 기능 2. merge 변경감지 기능이란? - id를 기반으로 실제 DB에 있는 영속 상태의 엔티티 findItem을 조회한후 변경하고자 하는 필드만 지정해서 set을 해주면, 따로 persist를 할필요 없이 jpa에서 변경사항을 찾아서 flush를 해줍니다. 따라서 알아서 db에 변경하고자 하는값이 업데이트가 됩니다. @Transactional public Item updateItem(Long itemId, Book param){ Item findItem = itemRepository.findOne(itemId); findItem.setPrice(param.getPrice()); findItem..
[Spring] InteliJ 주석 템플릿 설정
2022. 7. 20. 16:30
스프링
Live Templates 설정 1. File - Settings - Live Templates 2. 플러스 버튼 - Template Group 클릭 3. Templates의 group 이름을 지정합니다. 4. 이름을 지정하면 목록에 해당 화면처럼 뜨는데 (저는 미리 만들었습니다.) 5. remark를 누른상태에서 Live Template을 클릭합니다. 클래스주석 change 클릭시 Comment, Declaration 체크 Edit Variables 클래스 주석 Template Text /** * @package : $package$ * @name : $class$ * @date : $date$ $time$ * @author : $user$ * @Description: **/ 메소드 주석도 클래스 주석..
타임리프 유효성체크
2022. 7. 19. 11:15
타임리프
build.gradle implementation 'org.springframework.boot:spring-boot-starter-validation' - validation 라이브러리를 추가합니다. Controller @GetMapping(value = "/members/new") public String createForm(Model model){ model.addAttribute("memberForm", new MemberForm()); return "members/createMemberForm"; } @PostMapping(value = "/members/new") public String create(@Valid MemberForm form, BindingResult result){ //회원가..
타임리프 서버 재시작 없이 view 파일 변경
2022. 7. 18. 10:01
타임리프
1. build.gradle에 해당 devtool 라이브러를 추가한후 rebuild 합니다. developmentOnly 'org.springframework.boot:spring-boot-devtools' 2. html 파일 변경후 build - Recompile ~.html을 클릭하면 변경된 html로 적용됩니다.
타임리프 참고 사이트
2022. 7. 18. 09:54
타임리프
- 타임리프 공식 사이트 https://www.thymeleaf.org/ Thymeleaf Integrations galore Eclipse, IntelliJ IDEA, Spring, Play, even the up-and-coming Model-View-Controller API for Java EE 8. Write Thymeleaf in your favourite tools, using your favourite web-development framework. Check out our Ecosystem to see more integrati www.thymeleaf.org - 스프링 공식 튜토리얼 https://spring.io/guides/gs/serving-web-content/ Serving W..
[Spring] Intelij Gradle 설정
2022. 7. 18. 09:51
스프링
- 최근 InteliJ 버전에서는 Gradle로 실행을 하는것이 기본설정으로 되어있는데 이 설정으로 하면 속도가 느립니다. 다음과 같이 설정하면 자바로 실행하게 되어서 실행속도가 더 빨라집니다. File - Settings - Gradle 검색후 Gradle -> InteliJ Idea로 변경
[타임리프] layout 설정
2022. 7. 15. 11:13
타임리프
1. https://start.spring.io/ 에 접속해서 자신의 환경에 맞게 아래 그림처럼 setting을 합니다. 2. build.gradle dependencies 안에 해당 라이브러리를 추가 한후 rebuild 합니다. implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect' 3. Externeal Libraries안에 해당 라이브러리가 추가됬는지 확인합니다. 프로젝트 구조 MainController.java import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Controller; import org.springframework.web.bind.an..
타임리프 기본설정 문법
2022. 7. 8. 14:22
타임리프
- 보통 웹개발을 하면 jsp를 많이 사용하였습니다. 하지만 spring boot에서 jsp를 지원하지 않음에 따라 jsp 대신 사용하는 템플릿엔진들이 있습니다. 현재 지원하는 템플릿 엔진은 4종류입니다. 1. Freemarker 2. Groovy 3. Thymeleaf 4. Mustache 이중 Thymeleaf 설정 방법과 간단한 사용법을 포스팅 하겠습니다. - 먼저 Spring initializer 사이트에서 프로젝트를 생성합니다. https://start.spring.io/ - controller 패키지 생성후 MainController를 생성합니다. MainController.java package com.example.thymeleafstudy.controller; import org.spri..