inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

JdbcTemplateMemberRepository 에러

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 섹션 6 순수 JDBC강의 중 에러가 나서 질문 드립니다 line 3에서 이런 오류가 나는데 왜 발생하는 건가요? line 3 을 주석 처리하고 실행하면 이런 오류가 뜨고 localhost 로 접속 후 회원가입을 하면 Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Mon Jan 01 19:33:51 KST 2024 There was an unexpected error (type=Internal Server Error, status=500). 이런 에러가 뜹니다

  • java
  • spring
  • mvc
  • spring-boot
댓글 2 좋아요 0 조회수 743

client url 질문

해결됨

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

redirect를 이해했다고 생각했는데 아직 제대로 이해하지 못한 것 같아서 질문 남겨요 그냥 redirect: 이걸 안쓰면 client의 URL은 바뀌지 않는거잖아요? 근데 왜 redirect를 안써도 client의 URL도 바뀌는 거죠? @GetMapping("/{itemId}") public String item(@PathVariable long itemId, Model model){ Item item = itemRepository.findById(itemId); model.addAttribute("item", item); return "basic/item"; } 이거 쓰면 /itemId 가 붙은 URL로 바뀌잖아요. 그럼 redirect 안써도 url이 자동으로 바뀌는거 아닌가요?? 근데 왜 redirect: 를 안쓰면 client의 URL은 바뀌지 않는다는 것일까요... 제가 어디를 이해 못하고 있는건지 아니면 어디를 잘못 생각하고 있는건지 모르겠습니다... AI 답변 말고 다른 사람께서 답변 달아주시면 정말 감사하겠습니다ㅠㅠㅠ

  • spring
  • mvc
meenzino 댓글 2 좋아요 0 조회수 382

MemberServiceIntegrationTest 오류

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. MemberServiceIntegrationTest의 회원가입 테스를 진행 중에 오류가 발생하여 질문을 남깁니다.. 제가 알아본걸로는 빈 자동 주입이 2개이상여서 안되는것 같아서 어노테이션들도 확인해봤는데 없었고 다른 이유들도 많이 봤지만 오류를 찾을 수 없어 질문 남깁니다.... [에러 코드] org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'springConfig' defined in file [/Users/hyrki/Desktop/study/hello/build/classes/java/main/hellospring/hello/SpringConfig.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'springDataJpaMemberRepository' defined in hellospring.hello.repository.SpringDataJpaMemberRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract java.util.Optional hellospring.hello.repository.MemberRepository.findfById(java.lang.Long); Reason: Failed to create query for method public abstract java.util.Optional hellospring.hello.repository.MemberRepository.findfById(java.lang.Long)! No property 'findfById' found for type 'Member'; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract java.util.Optional hellospring.hello.repository.MemberRepository.findfById(java.lang.Long)! No property 'findfById' found for type 'Member' ㅠㅠㅠㅠㅠㅠㅠㅠ부탁 드리겠습니다.....

  • java
  • spring
  • mvc
  • spring-boot
jh06_04jh 댓글 2 좋아요 0 조회수 544

redirect 질문

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

초반에 redirect를 이해한거 같다가 들으면서 제가 제대로 이해하고 있는지 몰라서 확인차 질문 남겨요 redirect는 목적이 client의 URL을 바꾸는게 맞나요? redirect를 안쓰면 즉 "redirect:" 이 구문이 없는 viewname을 String으로 return하면 viewResolver가 viewname에 맞는 뷰를 리턴하고 client의 URL은 안바뀌고 화면만 바뀌는거고 redirect를 쓰면 화면도 바뀌고 client의 URL도 바뀌는거 맞나요? 그래서 저는 client가 POST 중복 요청을 보낼 수 없도록 redirect를 써서 client의 URL까지 바꿔주는 작업이라고 이해했는데 이거 맞는건가요? +근데 그냥 redirect 안써도 화면도 바뀌고 url도 바뀌는데 그럼 그냥 redirect 안써도 되는거 아닌가요? 예를 들어 제가 상품목록에서 A 상품을 누르면 url도 basic/items/1 이렇게 바뀌는데 이럴때는 redirect를 안쓰잖아요? 그럼 redirect랑의 차이점이 없는거 같은데요..?

  • spring
  • mvc
댓글 1 좋아요 0 조회수 347

윈도우에서 java은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 오류 나시는 분들 참고하시면 좋을것 같습니다.

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 'java'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 라는 오류는 아래 블로그 참고해서 해주시면 됩니다!! 2번 단계부터 진행하시면 되요~!! https://m.blog.naver.com/under0tree/222343927513 다만, 경로 같은 경우는 intellij에서 File -> Project Structure -> SDKs 에서 JDK home path 에서 확인하시면 될 것 같습니다!! 저는 D 드라이브에 설치해놔서 따로 설정해줬습니다!!

  • java
  • spring
  • mvc
  • spring-boot
RealTone 댓글 2 좋아요 1 조회수 1409

build.gradle로 프로젝트를 open 해야 하는 이유가 뭘까요?

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 그냥 프로젝트 폴더를 선택해서 열어도 build.gradle 파일을 읽는 것 같은데, 꼭 build.gralde 파일을 선택해서 열어야 하는 이유가 있나요?

  • spring
  • mvc
save 댓글 2 좋아요 0 조회수 580

단축키 질문

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

안녕하세요. 라인 여러 줄 복사할 때 범위 지정 후 ctrl d 하는 거는 이해했는데 라인 맨 앞으로 이동 후 범위 지정할 때는 어떻게 쓰나요? 이전 영상에서 설명해 주셨는데 따로 필기 안 하고 지나가서 찾아보려니까 못 찾겠네요ㅜㅜ 윈도우 기준 home 키 써서 라인 맨 앞으로 간 다음에 ctrl w 하신 건가요? 영상 보니 라인 전체 복사가 한 번에 이루어지는 것 같아 궁금해서 질문 남겨 봅니다. 미리 답변 감사합니다!

  • java
  • 객체지향
김나현 댓글 2 좋아요 0 조회수 452

sendError부분과 setStatus이 차이가 아직 잘이해가 되지않습니다.

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] @Slf4j public class MyHandlerExceptionResolver implements HandlerExceptionResolver { @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { try{ if(ex instanceof IllegalArgumentException){ log.info("IllegalArgumentException resolver to 400"); response.sendError(HttpServletResponse.SC_BAD_REQUEST,ex.getMessage()); ModelAndView mv=new ModelAndView("test"); System.out.println(mv.getViewName()); mv.addObject("message","안녕하세요"); return mv; } }catch (IOException e){ log.error("reslover ex",e); } return null; } } 해당 부분에 대해서 궁금한점이 생겨 질문드립니다. sendError같은경우에는 setStatus와는 다르게 제가 이해하기로는 ModelAndView가 있더라도 ModelAndView mv=new ModelAndView("test"); 1.톰캣(WAS)에 에러가 발생했다는것을 알려주고 또한 톰캣은 해당에러를보고 BasicErrorController로 설정한 뷰를 보여주기떄문에 제가설정한 "test"뷰는 무시되고 retrun되는게 맞나요? 2.그리고 또궁금한게 해당 부분이 만약에 맞다고 하면 mv.addObject("message","안녕하세요"); 제가 만든 "test"라는 ModelAndView객체에 모델 데이터를 담았기떄문에 BasicErrorController설정된 뷰화면에 모델데이터가 넘어가지않아야 정상으로 생각이 되는데 BasicErrorController의 뷰에도 해당 모델데이터가 넘어가는데 이유가 뭔지 궁금합니다.

  • spring
  • mvc
잘열심히 댓글 3 좋아요 0 조회수 675

컨트롤러 return구문 {}표현식

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요. 커뮤니티 글을 읽어도 답이 없길래 질문드려요. 컨트롤러에서 return할때 소위 말하는 el표현식을 사용해서 {} 이런 기호로 변수를 사용하던데,1.정확히 pathvariable이 있을때만 가능한 문법인건가요?2.매핑url에서는 {test111}로 받더라도@Pathvariable로 변수명을 test222로 바꿀수 있는데, 이 경우에는 return 의 표현식에 test111이 먹히는지 test222가 먹히는지 궁금합니다.. 감삼다

  • spring
  • mvc
전인호 댓글 2 좋아요 0 조회수 276

typemismatch

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. @PostMapping("/add") public String addItemV4(@ModelAttribute Item item, BindingResult bindingResult , RedirectAttributes redirectAttributes, Model model) { //파라미터 순서 중요 /* ValidationUtils.rejectIfEmptyOrWhitespace(bindingResult, "itemName", "required");*/ //검증로직 if (bindingResult.hasErrors()) { log.info("errors={}", bindingResult); return "validation/v2/addForm"; } log.info("objectName={}", bindingResult.getObjectName()); log.info("target={}", bindingResult.getTarget()); if (!StringUtils.hasText(item.getItemName())) { /* errors.put("itemName", "상품이름값은 필수입니다.");*//* /* bindingResult.addError(new FieldError("item", "itemName",item.getItemName(),false,new String[]{"required.item.itemName"},null, "상품이름은 필수입니다")); */ bindingResult.rejectValue("item", "required"); } if (item.getPrice() == null || item.getPrice() > 1000000 || item.getPrice() < 1000) { /* errors.put("price", "가격은 1000부터 100000까지만 입력하세요");*/ /* bindingResult.addError(new FieldError("item", "price",item.getPrice(),false,new String[]{"range.item.price"},new Object[]{100,1000000}, "가격은 1000부터 100000까지만 입력하세요")); */ bindingResult.rejectValue("price", "range", new Object[]{1000, 10000000}, null); } if (item.getQuantity() == null || item.getQuantity() >= 9999) { /* errors.put("quantity", "수량은 9999이하만 입력가능합니다");*/ /* bindingResult.addError(new FieldError("item", "quantity",item.getQuantity(),false,new String[]{"max.item.quantity"},new Object[]{9999}, "상품이름은 필수입니다")); */ bindingResult.rejectValue("quantity", "max", new Object[]{9999}, null); } //특정 필드가 아닌 복합 필드 값 검증 if (item.getPrice() != null && item.getQuantity() != null) { int resultPrice = item.getPrice() * item.getQuantity(); if (resultPrice < 10000) { /*errors.put("globalErrors", "수량과 값의 합이 10000이상 이어야합니다. 현재 값은 = " + resultPrice);*/ /* bindingResult.addError(new ObjectError("item",new String[]{"totalPriceMin"},null, "수량과 값의 합이 10000이상 이어야합니다. 현재 값은 = " + resultPrice)); */ bindingResult.reject("totalPriceMin", new Object[]{10000, resultPrice}, null); } } #required.item.itemName=상품 이름은 필수입니다. #range.item.price=가격은 {0} ~ {1} 까지 허용합니다. #max.item.quantity=수량은 최대 {0} 까지 허용합니다. #totalPriceMin=가격 * 수량의 합은 {0}원 이상이어야 합니다. 현재 값 = {1} #==ObjectError== #Level1 totalPriceMin.item=상품의 가격 * 수량의 합은 {0}원 이상이어야 합니다. 현재 값 = {1} #Level2 - 생략 totalPriceMin=전체 가격은 {0}원 이상이어야 합니다. 현재 값 = {1} #==FieldError== #Level1 required.item.itemName=상품 이름은 필수입니다. range.item.price=가격은 {0} ~ {1} 까지 허용합니다. max.item.quantity=수량은 최대 {0} 까지 허용합니다. #Level2 - 생략 #Level3 required.java.lang.String = 필수 문자입니다. required.java.lang.Integer = 필수 숫자입니다. min.java.lang.String = {0} 이상의 문자를 입력해주세요. min.java.lang.Integer = {0} 이상의 숫자를 입력해주세요. range.java.lang.String = {0} ~ {1} 까지의 문자를 입력해주세요. range.java.lang.Integer = {0} ~ {1} 까지의 숫자를 입력해주세요. max.java.lang.String = {0} 까지의 문자를 허용합니다. max.java.lang.Integer = {0} 까지의 숫자를 허용합니다. #Level4 required = 필수 값 입니다. min= {0} 이상이어야 합니다. range= {0} ~ {1} 범위를 허용합니다. max= {0} 까지 허용합니다. typeMismatch.java.lang.Integer=숫자를 입력해주세요. typeMismatch=타입 오류입니다. 이렇게 따라했는데 이런식으로 가격에 오류코드가 안뜨고 화이트라벨오류가 뜹니다 뭐가 문제인가요??타입미스매치를 에러프로퍼티에 명시해놨는데도 안됩니다ㅠ

  • spring
  • mvc
봉준 댓글 2 좋아요 0 조회수 439

HandlerExceptionResolver부분에 대해서 질문이있습니다.

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

[질문 내용] HandlerExceptionResolver시작 17:23초 경 @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { try{ if(ex instanceof IllegalArgumentException){ log.info("IllegalArgumentException resolver to 400"); response.sendError(HttpServletResponse.SC_BAD_REQUEST,ex.getMessage()); return new ModelAndView("test"); } }catch (IOException e){ log.error("reslover ex",e); } return null; 해당 부분에서 IllegalArgumentException발생되면 ModelAndView를 동작시킨다고 하셨는데 response.sendError인해서 400에러가 was까지 전달된후 다시 was는 해당 Error를 읽고 다시 BasicErrorController로 설정된 값이 return 되기때문에 우리가 ModelAndView부분은 sendError로 인해서 반환이 못되는 상태가 아닌가요?? 제가 잘못 이해했나해서 질문드립니다!

  • spring
  • mvc
댓글 1 좋아요 0 조회수 542

예외 추상화 적용시 예외를 service단에서 처리하지 않을경우

해결됨

스프링 DB 1편 - 데이터 접근 핵심 원리

안녕하세요 강의 내용 중 문제에 대한 제 생각을 확인차 질문드립니다. JDBC 기술에 종속적인 예외를 spring기술에 종속적인 예외로 바꿔주어 우리가 모든 데이터접근 기술의 예외코드를 알필요없이 문제를 처리할 수 있음을 알겠습니다. 이때 spring 이 제공하는 모든 예외는 RuntimeException이기 때문에 따로 service단에서 try catch로 잡지 않을 경우 생략된 throw로 controller -> servlet container로 자동으로 던져지는게 맞을까요?

  • spring
  • mvc
  • spring-jdbc
Jaehak Park 댓글 2 좋아요 0 조회수 396

AJAX통신

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

안녕하세요, 김영한 강사님! ajax 통신 관련 강의도 들어야 한다고 생각하는데요! 혹시 강사님 강의중에 프론트단과 데이터 통신을 하는 부분의 강의나 ajax 관련강의가 있을까요? ajax 를 몰라서요! 강의 목차를 여러개의 강의를 들어가봐서 확인을 해봤더니 ajax 와 관련된 강의를 찾지 못해서요 😃 있다면 어느 강의인지 말씀해주시면 감사하겠습니닿ㅎ 백엔드 부분도 ajax 알아야하는것 맞죠?!

  • spring
  • mvc
수빈 댓글 2 좋아요 0 조회수 228

CH02_ 가상환경 활성화 안되는 이유

미해결

초보자를 위한 ChatGPT API 활용법 - API 기본 문법부터 12가지 프로그램 제작 배포까지

가상환경 활성화 코드를 입력해도 앞에 (ch02_env)가 안나오는데 이래도 괜찮은건가요?

  • python
  • 챗봇
  • streamlit
  • openai
  • chatgpt
pcokgo 댓글 3 좋아요 1 조회수 925

AI 답변에 대한 재문의

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

아!.. 제가 궁금한것은 /addForm()에서 생성된 빈 객체가 1. addITem 메소드 호출시 바인딩 되는 객체 와 동일한 객체인지 와 editForm 메소드에서 findById 로 찾는 객체 와 같은 객체인지 궁금합니다! 또한, I tem 객체가 단순히 자바빈으로 등록 되어있는것이지, 싱글톤은 아니죠?( 꼬리에 꼬리를 무는생각으로 이어진고민입니다.). aI 답변을 받았는데 아직 이해가 잘 가지 않아서 재질문 드립니다!

  • spring
  • mvc
수빈 댓글 2 좋아요 0 조회수 350

postmapping 에서의 모델바인딩 객체

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

폼에서 작성한 데이터들이 @PostMapping("/add)로 넘어가서 @ModelAttribute 를 통해 item 객체에 요청 파라미터를 프로퍼티 접근법으로 값을 세팅하고 모델에 item 객체를 item 의 이름으로 바인딩 되는것이 맞죠? 맞다면, @ModelAttribute 를 통해 바인딩 되는 객체는 addForm 메소드에서 만들어주어서 타임리프에 활용가능하게 넘겨주었던 그 item 객체인가요?(같은 객체를 재사용하는건지) , 아니면 새로운 객체를 또 만들어서 새로운객체에 값을 세팅해주고 모델에 바인딩을 해주는것인지 궁금합니다 수정폼에서 Item item = itemRepository.findById(itemId); 에서 찾는 item (entity?) 도 addForm 에서 새로 생성했던던 그 객체인것이죠?

  • spring
  • mvc
수빈 댓글 3 좋아요 0 조회수 478

@ResponseBody 어노테이션을 쓰는 메소드와 안 쓰는 메소드 차이가 궁금합니다.

해결됨

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요 강의를 듣다가 헷갈리는 부분이 있어서 질문 드립니다. @ResponseBody를 메소드에 붙이고 안 붙히는 기준이 궁금합니다. 일단 제가 이해한 @ResponseBody는 뷰를 따로 사용하지 않고 HTTP 응답 본문에 메소드가 리턴한 정보(원시 데이터 또는 객체=json)를 입력해서 응답하는 것으로 이해했습니다. 근데 아래 사진의 빨간 밑줄 친 메서드들을 보면 뷰의 논리적 이름이 아닌 ResponseEntity 객체를 리턴하는 것으로 보여지고 객체를 리턴하면 HTTP 응답 본문에 입력하려면 @ResponseBody 어노테이션이 필요한 것이 아닌가 궁금합니다. 그런데 ResponseEntity의 코드를 보니까 HttpEntity를 상속 받던데 ResponseEntity가 HTTP 응답 그 자체라서 @ResponseBody를 사용하지 않는 것인가요? 답변 주시면 정말 감사하겠습니다.

  • spring
  • mvc
  • ResponseBody
  • http응답
알알이 댓글 3 좋아요 0 조회수 555

base.html 추가link

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

base.html 파일에서 <!--추가--> 부분에서 알려주셨던 내장 태그 <th:block> 태그 대신 일반태그 link 태그를 넣어도 정상작동하는것을 확인했습니다. 둘중 아무거나 사용해도 무방한가요?

  • spring
  • mvc
수빈 댓글 2 좋아요 0 조회수 216

H2 DB 테이블 생성이 안됩니다.

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

안녕하세요 H2 DB 테이블 생성이 안되는데, 스프링부트를 실행하면 에러도 안납니다. H2 연결되어 있습니다. 처음에 jpashop.mv .db 도 잘 생성되었습니다. 스프링부트를 실행하면 어떤 에러도 없지만, DB테이블이 만들어 지는 문구가 하나도 없습니다 H2 콘솔창도 DB 테이블 한개도 없이 아주 깨끗합니다. 어떻게 해결할 수 있을까요?? . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.1.7) 2023-12-31T15:17:34.731+09:00 INFO 13760 --- [ restartedMain] jpabook.jpashop.JpashopApplication : Starting JpashopApplication using Java 21.0.1 with PID 13760 (C:\Users\dqk86\Downloads\jpashop\out\production\classes started by dqk86 in C:\Users\dqk86\Downloads\jpashop) 2023-12-31T15:17:34.734+09:00 INFO 13760 --- [ restartedMain] jpabook.jpashop.JpashopApplication : No active profile set, falling back to 1 default profile: "default" 2023-12-31T15:17:34.825+09:00 INFO 13760 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable 2023-12-31T15:17:34.825+09:00 INFO 13760 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' 2023-12-31T15:17:35.417+09:00 INFO 13760 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2023-12-31T15:17:35.437+09:00 INFO 13760 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 12 ms. Found 0 JPA repository interfaces. 2023-12-31T15:17:36.132+09:00 INFO 13760 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2023-12-31T15:17:36.147+09:00 INFO 13760 --- [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2023-12-31T15:17:36.148+09:00 INFO 13760 --- [ restartedMain] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.17] 2023-12-31T15:17:36.213+09:00 INFO 13760 --- [ restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2023-12-31T15:17:36.214+09:00 INFO 13760 --- [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1387 ms 2023-12-31T15:17:36.254+09:00 INFO 13760 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2023-12-31T15:17:36.443+09:00 INFO 13760 --- [ restartedMain] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection conn0: url=jdbc:h2:mem:8b0a757c-2d15-4737-adab-1dbaee374f3e user=SA 2023-12-31T15:17:36.445+09:00 INFO 13760 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. 2023-12-31T15:17:36.455+09:00 INFO 13760 --- [ restartedMain] o.s.b.a.h2.H2ConsoleAutoConfiguration : H2 console available at '/h2-console'. Database available at 'jdbc:h2:mem:8b0a757c-2d15-4737-adab-1dbaee374f3e' 2023-12-31T15:17:36.698+09:00 INFO 13760 --- [ restartedMain] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] 2023-12-31T15:17:36.806+09:00 INFO 13760 --- [ restartedMain] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.2.17.Final 2023-12-31T15:17:36.809+09:00 INFO 13760 --- [ restartedMain] org.hibernate.cfg.Environment : HHH000406: Using bytecode reflection optimizer 2023-12-31T15:17:37.052+09:00 INFO 13760 --- [ restartedMain] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer 2023-12-31T15:17:37.941+09:00 INFO 13760 --- [ restartedMain] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) 2023-12-31T15:17:37.984+09:00 INFO 13760 --- [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2023-12-31T15:17:38.027+09:00 WARN 13760 --- [ restartedMain] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning 2023-12-31T15:17:38.195+09:00 INFO 13760 --- [ restartedMain] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [static/index.html] 2023-12-31T15:17:38.552+09:00 INFO 13760 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729 2023-12-31T15:17:38.576+09:00 INFO 13760 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2023-12-31T15:17:38.587+09:00 INFO 13760 --- [ restartedMain] jpabook.jpashop.JpashopApplication : Started JpashopApplication in 4.164 seconds (process running for 4.578)

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
혁짱 댓글 2 좋아요 0 조회수 2086

제가 이해한내용이 맞나요?

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] @ModelAttribute의 경우에는 잘못된 타입입력으로인해 바인딩 자체가 안되더라도 BindingResult에 담기고 Controller가 호출되는반면 @RequestBody의 경우에는 바인딩자체가 호출이 안될때에는 Controller자체가 호출이 안된다라고 이해하면될까요?

  • spring
  • mvc
잘열심히 댓글 2 좋아요 2 조회수 465

인기 태그

인프런 TOP Writers

주간 인기글