묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
프로젝트 생성시
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]여기에 질문 내용을 남겨주세요. https://start.spring.io 에서 프로젝트 생성시 지금은 project에 gradel project 가 아닌 gradle-groovy, gardle-kotlin 인데 어떤걸 선택해야하나요?
-
미해결스프링 핵심 원리 - 기본편
gradle이 아닌 maven 프로젝트 open 방법
안녕하세요. 강의 중 프로젝트를 처음 열 때, 여는 방법에 대해 알려주셔서 관련하여 질문드립니다.프로젝트가 gradle인 경우, 해당 프로젝트 내의 build.gradle 파일을 선택해 open하는 것으로 알려주셨는데요. maven의 경우에는 어떤 방법으로 여는 것이 올바르게 여는 것인지 궁금합니다.기존에 gradle 프로젝트를 열었을 때에는 프로젝트 경로에 들어가 해당 프로젝트를 바로 여는 방식으로 했는데 이 방법이 올바르게 여는 방법이 아닌지도 함께 질문드립니다.감사합니다.
-
미해결스프링 핵심 원리 - 기본편
프로젝트 open 방법
안녕하세요. 강의 중 프로젝트를 처음 열 때, 여는 방법에 대해 알려주셔서 관련하여 질문드립니다. 프로젝트가 gradle인 경우, 해당 프로젝트 내의 build.gradle 파일을 선택해 open하는 것으로 알려주셨는데요. maven의 경우에는 어떤 방법으로 여는 것이 올바르게 여는 것인지 궁금합니다. 기존에 gradle 프로젝트를 열었을 때에는 프로젝트 경로에 들어가 해당 프로젝트를 바로 여는 방식으로 했는데 이 방법이 올바르게 여는 방법이 아닌지도 함께 질문드립니다.감사합니다.
-
미해결실전! 스프링 데이터 JPA
06:25~07:05 강의 내용 관련 디버깅 하다가 질문 있습니다
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요! 강의 잘 듣고 있습니다.06:25~ 07:05 에서 설명하신 내용을 좀 더 파보기 위해서, 코드를 디버깅 하는 과정에서, 질문이 있습니다.(질문하고자 한 배경이 길어서, 질문의 내용은 맨 마지막에 있습니다!) => 설명해주신 내용을 제가 이해한 대로 적자면, "스프링 데이터 jpa는 NoResultException을 try-catch로 처리해서 null로 반환한다" 라고 이해했습니다.=> 그래서, 위 사진에서 breakPoint를 걸어서 F7로 저 메서드 내부를 파니까, 아래의 결과에서 해답이 있음을 유추했습니다=> 사진에서 retVal이 결국 null 값이며, 따라서 breakPoint인 retVal = invocation.proceed();에서, 강사님이 말씀해주신 "예외 처리 코드"가 있을 것이라고 생각했습니다. (질문)그런데 제가 위 breakPoint의 메서드를 F7로 들어가서 확인했는데 예외처리 코드 관련 부분이 어느 부분인지 잘 몰라서... 해당 부분을 어떻게 debugging으로 잡아낼 수 있을 지 문의드립니다.
-
해결됨스프링 핵심 원리 - 기본편
로그가 갑자기 안나옵니다 ㅠㅠㅠㅠ
강의들으면서 라이브 코딩 계속 진행했는데... 어느순간 부터 로그가 안나옵니다 ㅠㅠㅠㅠ위 그림처럼 로그가 나와야 하는데...아래처럼 실행해도 로그가 안나옵니다 ㅠㅠㅠ 도와주세요 ㅍ
-
해결됨스프링 핵심 원리 - 기본편
빈 생성 로그가 보이지 않아요
안녕하세요!강의를 따라하고 있었는데 선생님은 OrderApp MemberApp을 실행하면 빈생성 로그가 보이는데 저는 보이지 않습니다.추가적으로 프로퍼티파일에 로그찍히도록 설정해줘도 되지않아요ㅜㅜ 해결할 방법이 있을까요?감사합니다!
-
미해결스프링 핵심 원리 - 기본편
Spring boot 사용시 @Configuration 대한 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]제가 이해한 부분은 @ComponentScan은 해당 어노테이션이 붙은 클래스 패키지부터 시작해서 하위 패키지를 모두 뒤지고 @Component 가 붙은 부분을 스프링빈으로 컨테이너에 등록한다는것으로 이해했습니다.그리고 Spring boot의 경우 @SpringBootApplication이 CoreApplication에 붙어있고 해당 어노 테이션은 @ComponetScan 내포하고 있고 그 위치가 프로젝트 최상위에 위치하다보니 결국 @ComponetScan 을 쓸필요가 없어지는것으로 이해했습니다. 이해가 안되는것은 @Configuration 에 대한 내용인데요. @SpringBootApplication 로 들어가보니 @Configuration는 포함하고 있지 않던데 어떻게 Spring boot에서 @Configuration이 사용되는건가요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
바꾼 port 번호가 gradle build 후 적용되지 않는 문제
안녕하세요.다름이 아니라 제가 port 번호 8080을 쓰고 있었던 상태라, unauthorized라고 떠서 edit configuration에서 환경변수를 추가하여 포트 번호를 8090으로 변경했습니다. 문제는 gradle build를 완료했을 때 포트 번호가 8080으로 뜬다는 것입니다. 이 부분은 제가 인텔리제이를 실행해서 에러가 뜬 건데 8080으로 표시된다는 걸 보여주려고 첨부합니다. localhost:8090으로 들어가면 당연히 연결할 수 없다고 뜨고요. (인텔리제이에서 실행하고 8090으로 들어가면 잘 들어가집니다.) 부디 빠른 답변 부탁드립니다!
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
rejectValue() , reject()에대한 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]rejectValue(): fieldError 에만 사용하고 reject(): objectError에만 사용하는게 맞나요?
-
해결됨Practical Testing: 실용적인 테스트 가이드
setup 해야하는 데이터가 대용량인 경우 테스팅 가이드
안녕하세요. 우빈님양질의 강의 제공해주셔서 감사의 말씀드립니다. 강의를 듣던 도중 실무에서는 어떻게 해결을 할까? 🤔라는 궁금증이 생겨 질문 드립니다. 만약에 테스트 코드 작성시에 setup해야 할 데이터가 대용량이라면실무에서는 주로 어떤 방식으로 테스트 코드를 작성하여 해결하나요? 감사합니다.
-
미해결Practical Testing: 실용적인 테스트 가이드
테스트 오류
org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : example.cafekiosk.spring.domain.orderproduct.OrderProduct.product -> example.cafekiosk.spring.domain.product.Product; nested exception is java.lang.IllegalStateException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : example.cafekiosk.spring.domain.orderproduct.OrderProduct.product -> example.cafekiosk.spring.domain.product.Product 스프링부트 2.7.12 인데 오류가 납니다.. 강사님 코드를 보니 OrderProduct Entity 쪽엔 cascade 가 설정이 안되어 있는데 설정을 하니 오류가 없어졌습니다..!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
validateDuplicateMember 오류 질문
처음에는 org.opentest4j.assertionfailederror: expected java.lang.illegalstateexception to be thrown, but nothing was thrown.오류가 떴다가 이번에는 java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@496a31da testClass = hello.hellospring.service.MemberServiceIntegrationTest, locations = [], classes = [hello.hellospring.HelloSpringApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceLocations = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@54bff557, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@5b03b9fe, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@3ee37e5a, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@12aba8be, org.springframework.boot.test.context.SpringBootTestAnnotation@a6018aeb], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:142) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:127) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:191) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:130) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:241) at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$10(ClassBasedTestDescriptor.java:377) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:382) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$11(ClassBasedTestDescriptor.java:377) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:376) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:289) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:288) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:278) at java.base/java.util.Optional.orElseGet(Optional.java:364) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:277) at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:105) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:104) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:68) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:147) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:127) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:90) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:55) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:102) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:54) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86) at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86) at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53) at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:57) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberController' defined in file [C:\hello-spring\hello-spring\build\classes\java\main\hello\hellospring\controller\MemberController.class]: Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type 'hello.hellospring.service.MemberService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:245) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1352) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1189) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:560) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:941) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:608) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:733) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:435) at org.springframework.boot.SpringApplication.run(SpringApplication.java:311) at org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3(SpringBootContextLoader.java:137) at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58) at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46) at org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1405) at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:545) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:137) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:108) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:184) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:118) ... 72 moreCaused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.hellospring.service.MemberService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1824) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1383) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1337) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:888) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ... 96 more오류가 뜹니다 도저히 찾아봐도 왜 안되는지 알 수가 없네요 확인 해주시면 감사하겠습니다 ㅠ 압축파일입니다.https://drive.google.com/file/d/1fSiTnsVInZCqlfuigxqshCn_AkeKMBY3/view?usp=sharing
-
미해결스프링 부트 - 핵심 원리와 활용
스프링부트 버전 문의
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요 영한님! 이번 강의에서 프로젝트 생성하실 때 "스프링 부트 3.x 대 이상으로 하셔야 합니다" 라고 말씀해주셨는데 2.x대 버전이 아닌 3.x 대로 해야하는 특별한 이유가 있을까요~? 3.x 대의 업데이트에 대한 내용은 공식문서와 많은 블로그에 나와있어서 확인을 했는데 혹시 강의에 있어서 특별한 이유가 있는지 궁금합니다~!
-
해결됨실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
빌드 도구를 Gradle이 아닌 IntelliJ로 했을 때의 인식 오류(해결)
안녕하세요.강의 코드를 작성하던 도중 QUser 클래스가 UserRepositoryCustomImpl에서 인식이 되지 않는 오류가 발생하였습니다. 빌드도 다시 해보고, build 파일을 삭제하고 다시 빌드 해보고, 캐시도 삭제해봤는데도 인식이 안되길래, 혹시나 해서 설정에서 '다음을 사용하여 빌드 및 실행' 부분을 Gradle로 바꾸어주니 바로 인식이 되더라구요. 혹시나 저와 같은 상황에서 삽질하고 계신 분들을 위해 글 남깁니다 ㅎㅎ자세히 다시 읽어보니 일부 플러그인을 사용 시에 제대로 빌드가 되지 않을 수 있다고 적혀있네요..
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberServiceIntegrationTest 에러
MemberServiceIntegrationTest 회원가입 실행 했더니00:48:24.902 [main] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils -- Could not detect default configuration classes for test class [hello.hellospring.service.MemberServiceIntegrationTest]: MemberServiceIntegrationTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.00:48:24.954 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper -- Found @SpringBootConfiguration hello.hellospring.HelloSpringApplication for test class hello.hellospring.service.MemberServiceIntegrationTestJava HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended에러가 발생하는데 어떻게 해결을 해야 할지 모르겠습니다.spring boot version : 3.1.0 입니다.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' runtimeOnly 'com.h2database:h2' testImplementation 'org.springframework.boot:spring-boot-starter-test'}이렇게 설정되어있습니다.
-
해결됨스프링 핵심 원리 - 기본편
생성자 주입 시, final 키워드를 넣어야만 할까요?
final 키워드를 넣는 것이 가능하다.하지만, final 키워드를 넣어야만 하는가가 의문입니다. 만약, 생성자 주입 시 final 키워드를 넣어야 하는 이유가 뭔가요 라고 질문 받았을 때 뭐라고 답해야할까요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
JPA 패러다임의 불일치
안녕하세요! 강사님 책과 강의를 보면서 공부하고 있는 학생입니다!책을 보며 공부하던 중 궁금한 것이 있어 글을 씁니다!JPA를 사용하는 이유는 자바의 객체지향의 특징을 잃지 않기 위해서도 사용한다고 공부했습니다!RDBMS는 조인을 이용해 관계를 맺고 객체는 참조를 통해 관계를 맺기 때문에 객체 지향의 특징을 살리기 위해 연관관계를 사용하여 Entity를 짠다고 생각합니다!그러면 여기서 궁금증이 생겼습니다.ex) Member, Team 다대일 단방향다대일 단방향일 때, ManyToOne, JoinColumn으로 Member에서 외래키를 설정 했을 때, 외래키를 사용하면 양방향으로 조회를 할 수 있으니 해당 외래키를 가진 멤버를 spring data jpa를 이용해 findByTeamId()메서드를 사용해서 찾을 수 있지 않나요?? 만약 찾을 수 있다면, 해당 사항은 객체지향의 특징을 잃어버린 것인가요?? 만약 위 질문이 맞다면, 양방향 연관관계는 필요 없는 것이 아닌가요?? 틀렸다면, 어떤 방식으로 테이블을 짜야 좋은 엔티티를 만들었다고 할 수 있나요??JPA너무 어렵습니다.. 위 질문의 해결책을 주시면 감사하겠습니다!!
-
해결됨스프링 핵심 원리 - 기본편
destroyMethod = "close" 에 대해서 궁금한게 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]destoryMethod = "closed" 라고 하고NetworkClient 클래스에 private void closed() { System.out.println("destroy"); disconnect(); } 이렇게 메소드는 만들었는데 접근제한자가 private 인데도 detoryMethod= "closed"로 사용이 가능한데 이게 접근제한자와는 상관없이 사용가능한 이유를 알고싶습니다..
-
미해결스프링 시큐리티 OAuth2
springboot 3.1 마이그레이션
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 먼저, 유익한 강의를 나눠 주셔서 감사합니다.springboot 3.1버전을 사용 하면서 안되는 부분에 대해서 질문드립니다. 강의 간에 진행되는 springboot 버전을 2.7 버전으로 설정 하셨는데, end of support가 11월로 예정이 되어 있더라구요,,현재 섹션 9. OAuth 2.0 Client - Social Login (Google, Naver, KaKao) + FormLogin 파트까지 3.1 버전으로 마이그레이션 진행 하려 했으나, config의 메서드가 Deprecated된 부분을 해결 해야했습니다.공식 문서를 참고해서 일단 제가 바꾼 부분은 다음과 같습니다.authorizeRequests -> authorizeHttpRequestsantMatchers -> requestMatchershttp.formLogin(), http.logout() -> 람다 사용import io.security.oauth2.springsecurityoauth2.service.CustomOAuth2UserService; import io.security.oauth2.springsecurityoauth2.service.CustomOidcUserService; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Bean; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityCustomizer; import org.springframework.security.core.authority.mapping.GrantedAuthoritiesMapper; import org.springframework.security.web.SecurityFilterChain; @RequiredArgsConstructor @EnableWebSecurity public class OAuth2ClientConfig { private final CustomOAuth2UserService customOAuth2UserService; private final CustomOidcUserService customOidcUserService; @Bean public WebSecurityCustomizer webSecurityCustomizer() { return (web) -> web.ignoring().requestMatchers("/static/js/**", "/static/images/**", "/static/css/**", "/static/scss/**"); } @Bean SecurityFilterChain oauth2SecurityFilterChain(HttpSecurity http) throws Exception { http.authorizeHttpRequests((requests) -> requests .requestMatchers("/api/user") .hasAnyRole("SCOPE_profile','SCOPE_email") // .access("hasAuthority('SCOPE_profile')") .requestMatchers("/api/oidc") .hasRole("SCOPE_openid") //.access("hasAuthority('SCOPE_openid')") .requestMatchers("/") .permitAll() .anyRequest().authenticated()); http.oauth2Login(oauth2 -> oauth2.userInfoEndpoint( userInfoEndpointConfig -> userInfoEndpointConfig .userService(customOAuth2UserService) .oidcUserService(customOidcUserService))); http.logout(form -> form.logoutSuccessUrl("/")); return http.build(); } /*@Bean // hasAuthority 일경우 정의하지 않는다 public GrantedAuthoritiesMapper grantedAuthoritiesMapper(){ SimpleAuthorityMapper simpleAuthorityMapper = new SimpleAuthorityMapper(); simpleAuthorityMapper.setPrefix("ROLE_"); return simpleAuthorityMapper; }*/ @Bean public GrantedAuthoritiesMapper customAuthorityMapper() { return new CustomAuthorityMapper(); } } 이렇게 수정을 하니 메인 페이지("/")가 무조건 로그인 페이지("/login)로 리다이렉트 되는 문제(?)를 발견 했습니다. 이 부분에 대해서 어떻게 해결해야할지 여쭤보고 싶습니다.
-
미해결스프링 핵심 원리 - 기본편
SingletonTest.java 에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]기본편 - 프로토타입 스코프코드를 입력하던 중SingletonTest.javaa에서 assertions, assertThat에서 에러가 발생하였습니다.그래서 build.gradle에 다음과 같이 코드를 추가하고, reload를 하였음에도해당 오류가 사라지지 않는데, 어떻게 해결하면 될까요?