inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

14:18에서 AopCheck() 테스트하는 부분 질문드립니다

미해결

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

@Test void AopCheck() { log.info("memberService.class={}", memberService.getClass()); log.info("memberRepository.class={}", memberRepository.getClass()); } 테스트를 실행하면 memberService.getClass()에 해당하는 부분만 CGLIB~~이 적용된, 즉 AOP가 적용된 인스턴스라는 것을 확인할 수 있었습니다. memberRepository.getClass()는 평범한 인스턴스이고 memberService.getClass()만 AOP가 적용된 인스턴스인 이유는 추측건대 @Transactional // proxy가 비즈니스 로직 대신 호출. 성공하면 commit, 런타임 예외가 터지면 rollback public void accountTransfer(String fromId, String toId, int money) throws SQLException { bizLogic(fromId, toId, money); } MemberService내의 메서드에 @Transactional이 붙어서인 것 같습니다. 클래스 레벨에 @Transactional을 붙이지도 않았는데도 클래스 정보를 가져오는 메서드인 getClass()를 통해 AOP가 적용된 인스턴스로 확인되는 이유가 궁금합니다.

  • spring
  • mvc
  • spring-jdbc
Jaesang Yoon 댓글 1 좋아요 0 조회수 281

Whitelabel Error Page

미해결

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

[질문 내용] package hello.hellospring.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import java.util.SplittableRandom; @Controller public class HelloController { @GetMapping("hello") public String hello(Model model) { model.addAttribute("data", "hello!!"); return "hello"; } @GetMapping("hello-mvc") public String helloMvc(@RequestParam("name") String name, Model model) { model.addAttribute("name", name); return "hello-template"; } @GetMapping("hello-string") @ResponseBody public String helloString(@RequestParam("name") String name) { return "hello " + name; } } 똑같이 따라 쳤는데도 hello-mvc / hello-string은 아래와 같이 오류가 뜹니다..! 어떻게 해결할 수 있을까요?

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

gradle build 오류 해결이 안됩니다ㅠㅠ!

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] Please set the JAVA_HOME variable in your environment to match the location of your Java installation. 다른 질문 게시물을 보고 java를 설치했음에도 저렇게 뜨는데 어떻게 해결할 수 있을까요?

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

save()테스트 시 오류 해결 궁금증

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용]안녕하세요. save() 테스트 실행했더니 오류가 발생했습니다.구글링 통해서 아래 빨간박스 친 부분은 Gradle에서 IntelliJ IDEA로 바꿔 줬더니 오류가 해결되었는데요, 이유가 궁금해서 질문 남깁니다. ++ 추가로 메인 서블릿 코드는 Gradle로 해줘야 오류가 안나는데... 이유도 알고 싶고 앞으로도 실행할 때, 아래 설정 변경해 주면서 하면 되는걸까요?

  • spring
  • mvc
ming 댓글 2 좋아요 0 조회수 394

requestParam과 PathVariable

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] RequestParam 과 Pathvariable의 차이가 무엇인가요 ?

  • spring
  • mvc
해톨 댓글 1 좋아요 0 조회수 336

타임리프문제

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] editForm.html에서 모든 수량파트만 타임리프 th:value 가 안먹힙니다 ㅠㅠ 왜 그런지 모르겠어요 items.html에는 수정한 수량이 반영이 되지만 editForm.html의 모든 quantity 만 10으로 초기화가 되네요 ㅠ <!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="utf-8"> <link href="../css/bootstrap.min.css" th:href="@{/css/bootstrap.min.css}" rel="stylesheet"> <style> .container { max-width: 560px; } </style> </head> <body> <div class="container"> <div class="py-5 text-center"><h2>상품 수정 폼</h2></div> <form action="item.html" th:action method="post"> <div> <label for="id">상품 ID</label> <input type="text" id="id" name="id" class="form-control" value="1" th:value = "${item.id}" readonly> </div> <div> <label for="itemName">상품명</label> <input type="text" id="itemName" name="itemName" class="form-control" th:value = "${item.itemName}" value="상품A"> </div> <div> <label for="price">가격</label> <input type="text" id="price" name="price" class="form-control" th:value = "${item.price}" value="10000"> </div> <div> <label for="quantity">수량</label> <input type="text" id="quantity" name="quantity" class="form-control" th:value = "${item.quantity}" value="10"> </div> <hr class="my-4"> <div class="row"> <div class="col"> <button class="w-100 btn btn-primary btn-lg" type="submit">저장</button> </div> <div class="col"> <button class="w-100 btn btn-secondary btn-lg" onclick="location.href='item.html'" th:onclick="|location.href='@{|/basic/items/${item.id}|}'|" type="button">취소 </button> </div> </div> </form> </div> <!-- /container --> </body> </html>

  • spring
  • mvc
릴리 댓글 1 좋아요 0 조회수 350

스프링부트 핸들러 매핑

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 잘못된 Url 을 입력한 경우 즉, 등록한 Url 이 없을 경우 스프링부트 콘솔창에는 아무 에러도 나지 않는데, 왜 그런가요? 핸들러 매핑이 아예동작이 안되는건가요?

  • spring
  • mvc
릴리 댓글 1 좋아요 1 조회수 240

강의 4:50에서 커넥션 풀 고려하는 부분 질문드립니다

미해결

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

리소스 정리에 관련해서 질문드립니다. con.close() 의 경우, 커넥션 풀을 사용하는 커넥션일 때 close() 시에 커넥션 종료가 아닌 커넥션 풀로 다시 반환된다는 것으로 이해했습니다. 그런데 con.setAutoCommit(true) 로 되돌릴 때 커넥션 풀을 고려 해야한다는 부분이 이해가 가지 않아서 질문드립니다. 커넥션 풀과 상관없이 오토커밋은 true로 바꿔야하는 것 아닌가 해서요. +추가 질문: 개발자가 트랜젝션 매니저를 이용한 트랜젝션을 구현한다면 따로 위의 두가지 코드를 작성해줄 필요가 없는 것 맞는가해서 질문드립니다.(ServiceV2에서의 finally 구문을 ServiceV3_1에서는 생략한 것과 같은 맥락으로) 친절한 답변 항상 감사드립니다

  • spring
  • mvc
  • spring-jdbc
Jaesang Yoon 댓글 1 좋아요 0 조회수 418

PK를 외부로 노출하지 않고 게시물 수정/삭제?

미해결

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

는 어떻게 하는 것이 좋은 건가요? PK이자 글 번호인 boardSeq를 가지고 와서 수정과 삭제를 진행하고 있었는데, PK는 최대한 외부로 노출하지 않는 것이 좋다고 하여서 문득 생각이 들었습니다. PK Seq를 따로 두고 UniqueKey로 똑같이 AutoIncrement해서 생성하게 된다면 결국 무슨 차이인가 싶어서 아닌 거 같기도 하고... 어떤 식으로 처리 해야 되는지 궁금하여 질문 남기게 되었습니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
댓글 1 좋아요 0 조회수 265

다대다 양방향관계를 풀어낼 때

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

회원 A테이블과 팀C 테이블의 다대다 양방향 관계를 풀기 위해 중간 테이블을 도입하여 A, B(중간테이블), C 와 같이 일대다/다대일 관계로 풀어낼 때 A와 C 양 쪽 모두 addTemMember와 같은 메소드를 만들어주고, 회원이 팀에 들어갈 때 A.addTeamMember와 C.addTeamMember()둘 다 호출해줘야 하는 게 맞나요? 다대다 양방향 관계를 풀 때 중간 테이블을 설정하는데 이것은 따로 외부에 노출할 필요 없이, 내부적으로 회원 A가 어떤 팀에 속해있는지, 팀C에 어떤 회원이 속해있는지 확인할 때만 사용하는 것이 맞나요?

  • java
  • jpa
댓글 1 좋아요 0 조회수 286

AopCheck() 로그가 강의와 다릅니다

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. memberService 부분의 로그가 강의에 나온 'EnhancerBySpringCGLIB..'부분으로 나오지 않고 SpringCGLIB로만 나옵니다. 오류가 나지는 않는데 강의와 동일하게 적용이 되고 있는지 궁금합니다.

  • spring
  • mvc
  • spring-jdbc
digeuthi 댓글 1 좋아요 0 조회수 309

handler의 정확한 의미

미해결

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

안녕하세요 핸들러가 아직 머리속으로 완전히 이해가 안됐는데요 제가 이해한 핸들러는 bean 이름이나 anootation으로 Controller를 찾아주는것으로 이해를했는데요 이게 아니라면 핸들러의 정확한 뜻이 뭘까요? 조금 헷갈리네요 ㅠ

  • spring
  • mvc
자바마스터하자 댓글 1 좋아요 0 조회수 709

DB PK 를 화면에 직접 노출 시켰을 때 문제점

미해결

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

강의 내용을 보면 상품 목록 화면에서 item.id 값을 뿌려주고 있습니다. 이건 DB 에 저장된 item 테이블의 PK 값 일텐데, 문득 이런 생각이 들었습니다. DB 데이터 관리를 위한 PK 를 클라이언트 단에 노출시켜도 되나요? (가급적 엔티티 객체를 클라이언트 단에 직접 노출시키지 말라고 하셔서, 이것도 비슷한 맥락으로 숨겨야되지 않을까 해서요)

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
김정배 댓글 1 좋아요 1 조회수 572

회원서비스(MemberService) 부분

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6y gx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴 얼 링크: https://bit.ly/2Ufe qCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요. 우선 회원 서비스 테스트 부분 까지 강의를 듣다가 궁금한 점이 생겨 문의 드립니다. 1. MemberRepository 인터페이스를 상속하는 MemoryMemberRepository에서 store라는 이름을 가진 map에 각 반환값들 저장 2. 그 후 MemberService에서 "private final MemberRepository memberRepository;" 인터페이스 사용 및 생성자 주입 방식을 통해 DI를 구현하는 것 까지는 알겠는데, 아래 회원가입 및 전체 회원 조회 시 사용되는 memberRepository.save(member); 혹은 memberRepository.findAll(); 여기서 말하는 memberRepository가 인터페이스 자체에서 값을 불러오고 거기에 저장이 되는건지, 정확히 무엇인지 궁금합니다. 여기까지 제가 이해한 내용이 맞는지 궁금하기도 하고, 2번 부분에서 memberRepository가 정확히 어디에 저장이 되고 데이터가 불러와지는지가 궁금합니다!

  • java
  • spring
  • mvc
  • spring-boot
seona321 댓글 1 좋아요 0 조회수 692

테스트 코드 오류 - java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMaker (alternate: null)

미해결

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

plugins { id 'java' id 'org.springframework.boot' version '3.2.2' id 'io.spring.dependency-management' version '1.1.4' } group = 'hello' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' // implementation 'org.springframework.boot:spring-boot-starter-jdbc' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'com.h2database:h2' testImplementation 'org.springframework.boot:spring-boot-starter-test' } tasks.named('test') { useJUnitPlatform() } 자바 17 로 잘되어있고 한데 자꾸 무슨 21이 보이고 웹에서는 정상 작동 하는데 테스트에서만 문제가 발생합니다. 해결 부탁드립니다. ㅠㅠ WARNING: A Java agent has been loaded dynamically (C:\Users\ㅋㅋ\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy-agent\1.14.11\f9cb566608fbac6bc7bf54901a7aa11543a989ee\byte-buddy-agent-1.14.11.jar) WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warning WARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information WARNING: Dynamic loading of agents will be disallowed by default in a future release 2024-01-31T22:27:28.360+09:00 WARN 3716 --- [ main] o.s.test.context.TestContextManager : Caught exception while invoking 'beforeTestMethod' callback on TestExecutionListener [org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener] for test method [public void hello.hellospring.sevice.MemberServiceIntegrationTest.회원가입() throws java.lang.Exception] and test instance [hello.hellospring.sevice.MemberServiceIntegrationTest@7901a5ab] java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMaker (alternate: null) at org.mockito.internal.configuration.plugins.PluginLoader$1.invoke(PluginLoader.java:84) ~[mockito-core-5.7.0.jar:na] at jdk.proxy2/jdk.proxy2.$Proxy112.getHandler(Unknown Source) ~[na:na] at org.mockito.internal.util.MockUtil.getMockHandlerOrNull(MockUtil.java:158) ~[mockito-core-5.7.0.jar:na] at org.mockito.internal.util.MockUtil.isMock(MockUtil.java:147) ~[mockito-core-5.7.0.jar:na] at org.mockito.internal.util.DefaultMockingDetails.isMock(DefaultMockingDetails.java:32) ~[mockito-core-5.7.0.jar:na] at org.springframework.boot.test.mock.mockito.MockReset.get(MockReset.java:106) ~[spring-boot-test-3.2.2.jar:3.2.2] at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:85) ~[spring-boot-test-3.2.2.jar:3.2.2] at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:73) ~[spring-boot-test-3.2.2.jar:3.2.2] at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.before:na] at org.mockito.internal.configuration.plugins.DefaultMockitoPlugins.create(DefaultMockitoPlugins.java:103) ~[mockito-core-5.7.0.jar:na] ... 67 common frames omitted Caused by: org.mockito.exceptions.base.MockitoInitializationException: Could not initialize inline Byte Buddy mock maker. It appears as if your JDK does not supply a working agent attachment mechanism. Java : 21 JVM vendor name : Oracle Corporation JVM vendor version : 21.0.1+12-29 JVM name : OpenJDK 64-Bit Server VM JVM version : 21.0.1+12-29 JVM info : mixed mode, sharing OS name : Windows 10 OS version : 10.0 at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<init>(InlineDelegateByteBuddyMockMaker.java:260) ~[mockito-core-5.7.0.jar:na] at org.mockito.internal.creation.bytebuddy.InlineByteBuddyMockMaker.<init>(InlineByteBuddyMockMaker.java:23) ~[mockito-core-5.7.0.jar:na] at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[na:na] ... 70 common frames omitted Caused by: java.lang.IllegalArgumentException: null at java.instrument/sun.instrument.InstrumentationImpl.appendToClassLoaderSearch0(Native Method) ~[na:na] at java.instrument/sun.instrument.InstrumentationImpl.appendToBootstrapClassLoaderSearch(InstrumentationImpl.java:280) ~[na:na] at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<clinit>(InlineDelegateByteBuddyMockMaker.java:177) ~[mockito-core-5.7.0.jar:na] ... 72 common frames omitted 2024-01-31T22:27:28.368+09:00 WARN 3716 --- [ main] o.s.test.context.TestContextManager : Caught exception while invoking 'afterTestMethod' callback on TestExecutionListen

  • java
  • spring
  • mvc
  • spring-boot
따뜻한 노새 댓글 2 좋아요 0 조회수 1027

keycloak이 강의 버전과 맞지 않아서 생기는 오류 일부 정리

미해결

스프링 시큐리티 OAuth2

keycloak 버전이 제일 낮은 게 20 버전이라서 저는 가장 최근 버전인 23 버전으로 사용했습니다. 23 버전 기준으로, 제가 파악한, 강의와 다른 부분입니다. 20 버전부터는 최초 로그인 할 때 동의 항목이 안 나올텐데요. 관리자 콘솔에서 Clients -> Cliend details에서 Login settings에서 Consent required를 켜면 됩니다. 엑세스 토큰 발급 이후에 userinfo 엔드포인트로 user 데이터를 요청하면 body에 아무 것도 안 나올 겁니다. 응답 헤더 살펴보면 insufficient_scope이며 Missing openid scope이라고 나오는데요. 이렇게만 써있으면 userinfo 요청할 때 param에 scope=openid 넣으면 될 것 같지만 안 됩니다. 토큰에 해당 정보가 없는 거라서, 토큰 발급 전에(code 얻어야할 때) scop에 openid를 추가하면 됩니다. http://localhost:8080/realms/oauth2/protocol/openid-connect/auth?response_type=code&client_id=oauth2-client-app&scope=profile email openid&redirect_uri=http://localhost:8081 공식문서 에 나와 있습니다. In case an access token is missing openid scope.

  • java
  • spring
  • spring-boot
  • oauth
literate_t 댓글 3 좋아요 9 조회수 1001

왜 실패가 뜨는지 모르겠습니다

해결됨

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

CMD 들어가서 java -version 확인해서 17버전인데 java version "17.0.10" 2024-01-16 LTS Java(TM) SE Runtime Environment (build 17.0.10+11-LTS-240) Java HotSpot(TM) 64-Bit Server VM (build 17.0.10+11-LTS-240, mixed mode, sharing) 인텔리로 실행하면 왜 저렇게 뜨는지 모르겠습니다... 삭제하고 다시 설치했는데도 저러는데 뭐가 문제일까요 ㅠ

  • java
  • spring
  • mvc
  • spring-boot
창윤 댓글 2 좋아요 1 조회수 828

테스트코드에서 ItemRepository 주입받을 때

해결됨

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 테스트코드 작성할 때 ItemRepository를 강의에서는 new 키워드로 직접 생성했는데, 저는 생성자 주입을 사용해보고 싶어서 시도했는데 주입이 안된건지 에러가 발생하네요 무언가 빼먹은게 있을까요? 다시 직접 new 키워드로 직접 객체를 생성하면 에러 발생하지 않고 제대로 테스트실행이 됩니다. 찾아보니 Jupiter는 스프링 IoC와 작동방식이 다르고 @Autowired를 명시해주어야한다라고 하는데 저는 명시했는데도 같은 에러를 발생시키네요 org.junit.jupiter.api.extension.ParameterResolutionException: No ParameterResolver registered for parameter [hello.itemservice.repository.ItemRepository arg0] in constructor [public hello.itemservice.repository.ItemRepositoryTest(hello.itemservice.repository.ItemRepository)]. at java.base/java.util.Optional.orElseGet (Optional.java:36 4) at java.base/java.util.ArrayList.forEach (ArrayList.java:159 6) at java.base/java.util.ArrayList.forEach (ArrayList.java:159 6)

  • spring
  • mvc
yuio7279 댓글 1 좋아요 2 조회수 359

스태틱 오류

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 뭐가 잘못된건지 모르겠습니다. 로그인 메서드를 스태틱으로 만들어야하나요..? https://drive.google.com/file/d/1gjPbYTN4X-ozjYDISGWff1BvvFdNOfen/view?usp=sharing

  • spring
  • mvc
봉준 댓글 1 좋아요 0 조회수 219

1강 Run이 활성화되지 않습니다.

해결됨

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

버전은 java 17, spring 3.2.2 입니다. Build tools>Gradle> 각각 gradle로 안되서 intellij로 바꾼상태를 캡쳐한것입니다. 자주묻는 질문에서도 봤는데.. 원인을 모르겠습니다..!ㅠㅠ 도와주세요

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

인기 태그

인프런 TOP Writers

주간 인기글