묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
errors.properties와 검증 애너테이션을 함께 사용할 때 적용되는 메시지
안녕하세요, 수업을 다 듣고 따로 프로젝트를 생성하여에러 메시지를 errors.properties에서 작성한 후 적용 여부를 확인해봤는데적용이 되지 않아 질문드립니다. 프로젝트 환경Spring Boot 3.2.1 / Java 17 / Jar Packaging / IntelliJ IDEA 입니다. 설정 및 작성 코드 application.propertiesspring.messages.basename=messages,errors errors.properties#추가(스프링이 생성한 기본 오류 메시지 코드 설정하기) typeMismatch.java.lang.Integer = 숫자를 입력해주세요!!!!! typeMismatch = 타입 오류입니다!!!! #Bean Validation 추가 NotNull.validation.minVal = 널 안됨!! Range={0}, {2} ~ {1} 허용 Max={0}, 최대 {1} NotNull={0} Null 안됨!!!! 검증 대상 객체@Data @NoArgsConstructor @AllArgsConstructor public class Validation { // @NotNull(message = "값 필수 입력!") // @NotNull(message = "{NotNull}") @NotNull @Min(1) private Integer minVal; @Max(100) private Integer maxVal; @Range(min = 10, max = 100) private Integer rangeVal; } 컨트롤러@Slf4j @RestController public class ValidationController { @GetMapping("/test") public String setValues(@Validated @ModelAttribute Validation validation, BindingResult bindingResult) { log.info("validation={}", validation); if (bindingResult.hasErrors()) { List<FieldError> fieldErrors = bindingResult.getFieldErrors(); for (FieldError fieldError : fieldErrors) { log.info("errorMessage={}", fieldError.getDefaultMessage()); } } return "OK"; } } 위와 같이 작성을 하였고 에러를 발생시켜 보면errorMessage={}의 로그 부분에서 errors.properties에 설정한 메시지가 아니라스프링에서 기본으로 제공하는 오류 메시지가 출력됩니다. 여러가지 테스트 결과application.properties와 errors.properties 자체를 인식하지 못하는 건가 했지만 파일을 인식하는 것을 확인함애너테이션에 메시지를 직접 적용하는 것은 적용이 됨@NotNull(message = "{NotNull}")과 같이 {} 안에 errors.properties에서의 적용 이름?을 직접 넣으면 메시지가 제대로 출력됨 강의에서의 프로젝트와 다른 점이 버전 뿐인 것 같은데,혹시 자바 혹은 스프링 부트의 버전에 따라 검증 애너테이션의 메시지가 적용되는 로직에 차이가 있나요?그게 아니라면 어떤 이유로 이렇게 되는 건지 꼭 이유를 알고 싶습니다. 제가 작성한 부분 중 틀린 부분이나 추가해야 할 부분이 있다면 알려주세요..!여러군데 검색을 해봤지만 원하는 답을 얻을 수 없어 질문 올립니다!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
JSP파일 인식
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]사진처럼 JSP코드에서 자바코드가 인식이 안되네요...라이브러리 설치하라는데로 했는데 뭐가 문제인지알수있을까요?build.gralde 파일plugins { id 'java' id 'war' id 'org.springframework.boot' version '3.2.1' id 'io.spring.dependency-management' version '1.1.4' } group = 'hello' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' //JSP 추가 시작 implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' implementation 'jakarta.servlet:jakarta.servlet-api' //스프링부트 3.0 이상 implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api' //스프링부트 3.0 이상 implementation 'org.glassfish.web:jakarta.servlet.jsp.jstl' //스프링부트 3.0 이상 //JSP 추가 끝 compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' //providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' testImplementation 'org.springframework.boot:spring-boot-starter-test' } tasks.named('test') { useJUnitPlatform() }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
아무리 봐도 틀린게 없고 다 참고 했는데 뭐가 문제인지 봐주세요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]잘했는데 왜 안녕하세요 null. 이라고 뜨는지 모르겠습니다. ㅠㅠ 뭐가 문젠가요
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
모든 itemTypes를 도는건데 왜 BOOK만 정적값으로 적어놓는 건가요?
<div>상품 종류</div> <div th:each="type : ${itemTypes}" class="form-check form-check-inline"> <input type="radio" th:field="*{itemType}" class="form-check-input"> <label th:for="${#ids.prev('itemType')}" th:text="${type.description}" class="form-check-label"> BOOK </label> </div>여기서 thymeleaf 로 Model 객체 내 에 있는 itemTypes 인 enm 배열을 받아서 사용하는거잖아요? 그러면 정적 값들을 하나도 적어놓을 필요가 없는데 왜 BOOK만 적어놓은건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
똑같이 따라했는데 왜 null이 뜰까용?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]이런식으로 (안녕하세요 hello!!!) 가 안뜨고 (안녕하세요 null) 이 뜹니다. 뭐가 문제죵?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
ArgumentResolver가 Interceptor를 대체할 수 있을까요??
ArgumentResolver가 Interceptor를 대체할 수 있을까요??프로젝트가 커지면 커질 수록 제외할 패턴이나 인증이 필요한 라우터 패턴을 webconfig에 입력해줘서 관리를 계속 해줘야하는데 관련 DTO를 만들어서 해당 dto가 붙어있으면 인증이 필요한 메소드라는 것을 나타내면 인터셉터가 없이 ArgumentResolver로 대체가 가능하지 않을까하는 생각이 들어서요 그래서 이런 인증 수행을 인터셉터가 아니라 리졸버 안에서 해도 무방하지 않을까 생각하는데 ArgumentResolver와 Interceptor가 지향하는 것이 다르기 때문에 그렇게 하면 안되는 것이가 궁금해서 질문드립니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 웹
섹션2 부터 7까지는 웹에 대한 강의인가요? 앱개발 커리큘럼 듣고 싶으면 강사님 강의 중 '스프링 핵심 원리 - 기본편'이거부터 들으면 될까요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
RequestMapping에 대해서 궁금한점이 있습니다.
@RequetMapping의 경우 기존 Handler가 Class단위로 매핑되던것에서 -> Method단위로 매핑된다고 하셨는데 그러면 해당 부분을 동작할때 내부에서 리플렉션을 활용해서 invoke형식으로 작동되는 방식인건가요
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
섹션2. 서블릿 / Hello 서블릿 에서
로그 기록에서 Receive[] 를 찾는 부분입니다.강사님의 로그 기록이 나오지 않습니다.Ultimate 버전을 구매하면 나온다는 내용이 구글 검색에서 보이는데요,아무래도... 해당 로그를 보려면 Ultimate 버전을 구매해야겠죠?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원 목록 조회가 안됩니다 ㅠㅠ
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 회원가입에서 spring1 , spring2 등록하고 회원 목록에 들어가면 #이름 만 뜹니다 ㅠㅠConsole 창에도 member = spring1 으로 잘 뜨는데 왜 안될까요?? 회원 목록에서 소스 보기하면 저 가운데가 코드가 안뜨는데 이거 때문일까요? 코드는 강의자료 그대로 복붙했습니다!딱히 에러가 뜨는건 아니라 뭐가 잘못된지 모르겠네요 ㅠㅠ 구글 드라이브 첨부해드려요!https://drive.google.com/file/d/1s2D6rLue9yPAHlZbNnCFVKsv2aKGZtEX/view?usp=sharing 오류 해결했습니다^^;;; 주석처리된 부분이 있었네요 ...ㅠㅠㅎㅎㅎㅎㅎ
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
동일한 인스턴스명의 인스턴스를 만들 수 있는 이유
@TestMethodOrder(MethodOrderer.OrderAnnotation.class) class MemoryMemberRepositoryTest { MemoryMemberRepository repository = new MemoryMemberRepository(); @Test public void save() { //given Member member = new Member(); member.setName("spring"); //when repository.save(member); //then Member result = repository.findById(member.getId()).get(); assertThat(result).isEqualTo(member); } @Test public void findByName() { //given Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); //when Member result = repository.findByName("spring1").get(); //then assertThat(result).isEqualTo(member1); } @Test public void findAll() { //given Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); //when List<Member> result = repository.findAll(); //then assertThat(result.size()).isEqualTo(2); } }안녕하세요 지난 번에 동일한 질문을 올렸었는데 제가 설명을 명확하게 하지 않은 것 같아서 다시 올리게 되었습니다. "회원 서비스 테스트" 강의 중 내용입니다.제가 헷갈리는 것은, 중복된 인스턴스명으로 인스턴스를 만드는데 왜 예외가 발생하지 않는가? 입니다.예를 들어 아래 코드를 작성하면 Variable 'member1' is already defined in the scope라는 에러가 납니다. public void hello() { Member member1 = new Member(); Member member1 = new Member(); // Variable 'member1' is already defined in the scope }다시 원래 코드로 되돌아와서, findAll()이 실행 후 member1 = "spring1", member2 = "spring2" 라는 인스턴스가 만들어집니다. 이후 findByName()을 실행할 때 밑에서 두번째 코드처럼 같은 이름인 member1으로 인스턴스를 만드는데 왜 에러가 발생하지 않는건가요?(findAll()에서 member1 생성 -> findByName()에서 member1 생성이 가능한 이유?)Member member1 = new Member(); // findAll() 에서 member1 생성 member1.setName("spring1"); // name 할당 ---------- Member member1 = new Member(); // 인스턴스명이 같은데도 불구하고 findAll() 에서 member1 생성
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
IntelliJ decompiled .class parameter name 이 달라보이는 이유
안녕하세요 강의 중에 IntelliJ 가 제공하는 파라미터 이름이 다르게 보여서 질문 드립니다.강의에서는 errorCode, 저는 s현재 인텔리제이 2023.3.2 Ultimate 사용 중 입니다.인텔리제이 자체에서 decompile 해주는거 같은데 혹시 다른 설정이 있는지 문의 드립니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@RequestMappingHandlerAdapter 관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]V5강의에서 HandlerAdapter가 HandlerMapping를 통해 모든 핸들러를 조회한 뒤 적절한 핸들러를 호출한다고 이해했습니다 그런데 이 강의에서는 정확히 어떤 역할을 하는 지 궁금합니다.SpringMemberFormControllerV1, SpringMemberListControllerV1를 V5 강의에서 보여주신 V3,V4로 생각하면 될까요?
-
해결됨스프링 부트 웹 개발 입문 - 따라하며 배우기
선생님 혹시 세션하고 쿠키 부분 언제쯤 올려주실수있나여?
백엔드 로그인할때 쿠키하고 세션을 써야 하는데 선생님 강의를 보면서 하고싶습니다좀 알려주시면 안되나여? 언제쯤 하는지 알고 싶습니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 통합테스트 도중 MemberSeviceIntegrationTest 오륲
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 앞전의 영상까지는 테스트 환경 문제없이 했고 그 전의 강의도 문제 없이 하였습니다. 하지만 해당 강의 첫 부분 부터 회원가입(join0을 실행하면 해다 오류가 나옵니다.17:08:49.341 [main] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils -- Could not detect default configuration classes for test class [com.example.test.Sevice.MemberServiceIntTest]: MemberServiceIntTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.17:08:49.463 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper -- Found @SpringBootConfiguration com.example.test.TestApplication for test class com.example.test.Sevice.MemberServiceIntTest 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) at jdk.proxy2/jdk.proxy2.$Proxy72.getHandler(Unknown Source) at org.mockito.internal.util.MockUtil.getMockHandlerOrNull(MockUtil.java:158) at org.mockito.internal.util.MockUtil.isMock(MockUtil.java:147) at org.mockito.internal.util.DefaultMockingDetails.isMock(DefaultMockingDetails.java:32) at org.springframework.boot.test.mock.mockito.MockReset.get(MockReset.java:106) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:85) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:73) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.beforeTestMethod(ResetMocksTestExecutionListener.java:60) at org.springframework.test.context.TestContextManager.beforeTestMethod(TestContextManager.java:320) at org.springframework.test.context.junit.jupiter.SpringExtension.beforeEach(SpringExtension.java:240) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) Suppressed: 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) at jdk.proxy2/jdk.proxy2.$Proxy72.getHandler(Unknown Source) at org.mockito.internal.util.MockUtil.getMockHandlerOrNull(MockUtil.java:158) at org.mockito.internal.util.MockUtil.isMock(MockUtil.java:147) at org.mockito.internal.util.DefaultMockingDetails.isMock(DefaultMockingDetails.java:32) at org.springframework.boot.test.mock.mockito.MockReset.get(MockReset.java:106) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:85) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:73) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.afterTestMethod(ResetMocksTestExecutionListener.java:67) at org.springframework.test.context.TestContextManager.afterTestMethod(TestContextManager.java:487) at org.springframework.test.context.junit.jupiter.SpringExtension.afterEach(SpringExtension.java:278) ... 2 more Caused by: java.lang.IllegalStateException: Internal problem occurred, please report it. Mockito is unable to load the default implementation of class that is a part of Mockito distribution. Failed to load interface org.mockito.plugins.MockMaker at org.mockito.internal.configuration.plugins.DefaultMockitoPlugins.create(DefaultMockitoPlugins.java:105) at org.mockito.internal.configuration.plugins.DefaultMockitoPlugins.getDefaultPlugin(DefaultMockitoPlugins.java:79) at org.mockito.internal.configuration.plugins.PluginLoader.loadPlugin(PluginLoader.java:75) at org.mockito.internal.configuration.plugins.PluginLoader.loadPlugin(PluginLoader.java:50) at org.mockito.internal.configuration.plugins.PluginRegistry.<init>(PluginRegistry.java:27) at org.mockito.internal.configuration.plugins.Plugins.<clinit>(Plugins.java:22) at org.mockito.internal.MockitoCore.<clinit>(MockitoCore.java:73) at org.mockito.Mockito.<clinit>(Mockito.java:1683) at org.springframework.boot.test.mock.mockito.MockReset.get(MockReset.java:105) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:85) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:73) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.beforeTestMethod(ResetMocksTestExecutionListener.java:60) at org.springframework.test.context.TestContextManager.beforeTestMethod(TestContextManager.java:320) at org.springframework.test.context.junit.jupiter.SpringExtension.beforeEach(SpringExtension.java:240) ... 2 more Caused by: java.lang.reflect.InvocationTargetException at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:484) at org.mockito.internal.configuration.plugins.DefaultMockitoPlugins.create(DefaultMockitoPlugins.java:103) ... 15 more 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 : 19JVM vendor name : Oracle CorporationJVM vendor version : 19.0.1+10-21JVM name : OpenJDK 64-Bit Server VMJVM version : 19.0.1+10-21JVM info : mixed mode, sharingOS name : Windows 11OS version : 10.0 at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<init>(InlineDelegateByteBuddyMockMaker.java:260) at org.mockito.internal.creation.bytebuddy.InlineByteBuddyMockMaker.<init>(InlineByteBuddyMockMaker.java:23) ... 18 more Caused by: java.lang.IllegalStateException: Could not self-attach to current VM using external process at net.bytebuddy.agent.ByteBuddyAgent.installExternal(ByteBuddyAgent.java:706) at net.bytebuddy.agent.ByteBuddyAgent.install(ByteBuddyAgent.java:636) at net.bytebuddy.agent.ByteBuddyAgent.install(ByteBuddyAgent.java:616) at net.bytebuddy.agent.ByteBuddyAgent.install(ByteBuddyAgent.java:568) at net.bytebuddy.agent.ByteBuddyAgent.install(ByteBuddyAgent.java:545) at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<clinit>(InlineDelegateByteBuddyMockMaker.java:133) ... 19 moreCaused by: [CIRCULAR REFERENCE: java.lang.IllegalStateException: Internal problem occurred, please report it. Mockito is unable to load the default implementation of class that is a part of Mockito distribution. Failed to load interface org.mockito.plugins.MockMaker] 커뮤니티 찾아다니면서 혼자 해결할려했으나, 도저히 방법이 ㅇ없어서 질문드립니다 ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
뭐가 문제일까여?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]왜 cd study를 경로를 찾을 수없다고 하나요?study를 c밑에 study에 저장했는데 ㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberServiceIntegrationTest 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]package hello.hellospring.service;import hello.hellospring.domain.Member;import hello.hellospring.repository.MemberRepository;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.transaction.annotation.Transactional;import static org.assertj.core.api.Assertions.assertThat;import static org.junit.jupiter.api.Assertions.assertEquals;import static org.junit.jupiter.api.Assertions.assertThrows;@SpringBootTest@Transactionalclass MemberServiceIntegrationTest {@Autowired MemberService memberService;@Autowired MemberRepository memberRepository;@Testpublic void 회원가입() throws Exception {//GivenMember member = new Member();member.setName("hello");//WhenLong saveId = memberService.join(member);//ThenMember findMember = memberRepository.findById(saveId).get();assertEquals(member.getName(), findMember.getName());}@Testpublic void 중복_회원_예외() throws Exception {//GivenMember member1 = new Member();member1.setName("spring");Member member2 = new Member();member2.setName("spring");//WhenmemberService.join(member1);IllegalStateException e = assertThrows(IllegalStateException.class,() -> memberService.join(member2)); //예외가 발생해야 한다.assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다.");}} 이렇게 넣었는데 오류가 납니다. 오류 메세지는 이거 WARNING: A Java agent has been loaded dynamically (C:\Users\halia\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy-agent\1.14.10\90ed94ac044ea8953b224304c762316e91fd6b31\byte-buddy-agent-1.14.10.jar)WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warningWARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more informationWARNING: Dynamic loading of agents will be disallowed by default in a future releaseJava HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended입니다 ,,
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
viewResolver
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]핸들러 어댑터가 핸들러를 사용해서 ModelAndView를 return하면 Dispatcher Servlet이 내부에서 자동으로 InternalResourceViewResolver(이 예시기준)에 ModelAndView의 viewName을 인자로 넘겨서 다시 View를 DispatcherServlet이 돌려받는 건가요??
-
해결됨[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
53강 후반부 경로
53강 강의를 듣다가 마지막 부분에 MVC04/memberList.do에서 회원가입 완료 시 MVC03/memberList.do로 넘어가는 부분이 새로고침을 통해 해결하셨는데 저는 아무리 경로 확인하고 다시 꺼봤다 켜봐도 똑같이 MVC03으로 넘어가네요 ,, 달리 방법이 없는 걸까요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
MyBatis 적용시 오류
질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]저와 같은 내용의 질문이 있어서 참고해 봤는데도 해결이 안되어 질문드립니다.<MyBatis 적용2 - 설정과 실행 부분 테스트 오류>MyBatis 적용 후 테스트코드 돌려보았는데, Bean설정과 관련된 오류가 나타납니다. 패키지 Path도 확인해보고, 교재와 비교도 해보았는데 어떤 문제인지 잘 모르겠습니다ㅠㅠ테스트 돌렸을때 아래와 같은 오류가 납니다.Parameter 0 of constructor in hello.itemservice.config.MyBatisConfig required a bean of type 'hello.itemservice.repository.mybatis.ItemMapper' that could not be found.Action:Consider defining a bean of type 'hello.itemservice.repository.mybatis.ItemMapper' in your configuration. 구글드라이브 링크 첨부드립니다!https://drive.google.com/file/d/1U8YIKxbUDMvnv2ZaWjzB5gUTgqcwTZ-t/view?usp=sharing