30%
61,600원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결스프링 핵심 원리 - 기본편
인테리 j에서도 오픈콜하이라키 기능이 있나요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]반복적으로 복습을 하고있는상황인데요 특정 메서드 호출하여 사용하는 클래스 위치 알아내는 방법이 있을까요?
- 해결됨스프링 핵심 원리 - 기본편
Assertion에러가 납니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]java.lang.AssertionError: Expecting actual:hello.core.member.MemoryMemberRepository@2796aeaeand:hello.core.member.MemoryMemberRepository@1fa1cab1to refer to the same object 도와주세요~~assertThat(orderService.getMemberRepository()).isSameAs(memberRepository);
- 미해결스프링 핵심 원리 - 기본편
널 포인트 익셉션이 터지는 이유가 뭔가요 ?
강의 21분쯤에 스프링에서 돌리는게 아니라 순수하게 돌리기 때문에 널포인트 익셉션이 터진다고 말씀하시는데 스프링 컨테이너인 ApplicationContext.getBean()을 통해 인스턴스를 가져오는게 아니라 new OrderServiceImpl() 를 했기 때문에 @Autowired가 동작하지 않게 된 것 맞나요 ? 24분쯤 설명을 보시면 스프링 테스트코드를 이용할 수 있다고 하시면서 CoreApplicationTest를 보여주시는데 CoreApplicationTest 클래스를 제외한 test코드를 작성하는 클래스 에서는 스프링 컨테이너가 작동하지 않는 것인가요? 일반 메서드 주입이랑 생성자 주입이랑 차이점이 무엇인가요? 메서드명을 init으로 하느냐, 클래스 이름으로 하느냐의 차이인가요? 메서드 주입의 이점이 있나요?
- 해결됨스프링 핵심 원리 - 기본편
테스트코드에 대한 이해
안녕하세요 영한님! 강의 너무 잘 수강하고있습니다.다름이 아니라 제가 테스트코드를 작성하는 부분들에서 JUnit에 대한 학습이 전무한 상황에서 테스트 코드를 작성하는 부분의 강의를 들어도 괜찮은걸까요?ㅠㅠ그냥 영한님의 코딩을 베껴서 치는 코딩원숭이가 된 기분입니다 ㅠㅠㅠ.....모든것을 다 한번에 학습을 할 수는 없다는것을 알지만... 이런 상태로 로드맵을 계속 쫓아가도 될지 여쭤봅니다..!
- 미해결스프링 핵심 원리 - 기본편
질문드립니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. BeanA beanA= ac.getBean("beanA", BeanA.class)에서 "beanA"는 메서드 이름 자리 아닌가요??클래스만 지정하고 beanA라는 메서드를 지정한적이없는데 이게 어떻게된것인지요?
- 해결됨스프링 핵심 원리 - 기본편
안녕하세요 싱글톤 컨테이너에 대해 질문이 있습니다.
스프링 컨테이너가 객체 인스턴스를 싱글톤으로 관리한다. 라고 이해를 했습니다. 그렇다면 사용자가 10명이 존재하고 이 사용자 10명 전부가 memberService 이름을 가지는 빈 객체를 호출 한다고 했을때 첫번째 사용자가 호출해서 memberService 객체를 사용하고 있을때 나머지 사용자 9명은 첫번째 사용자의 memberService 객체 사용이 끝날때까지 대기하고 있어야 하나요?만약 1번 처럼 대기하고 있는게 맞다면 사용자가 100만명과 같이 대규모 사용자일때도 스프링 컨테이너가 객체 인스턴스를 싱글톤으로 잘 관리를 할 수가 있나요? 성능적인 부분에서 부하가 오지는 않을까요?
- 해결됨스프링 핵심 원리 - 기본편
@BeforeEach 에러
MemberServiceTest를 실행하면 memberService에서 NullPointException이 뜹니다. 찍어보니까 beforeEach()메서드보다 Join() 메서드가 먼저 실행되는거 같은데 뭐가 문제일까요?.. 추가적으로 OrderServiceTest는 beforeEach가 먼저 들어와서 오류 없이 실행됩니다..!
- 해결됨스프링 핵심 원리 - 기본편
pdf 자료 3. 스프링 핵심 원리 이해2 - 객체 지향 원리 적용 4페이지에 질문이 있습니다.
지금 코드는 기능을 확장해서 변경하면, 클라이언트 코드에 영향을 준다! 따라서 OCP를 위반한다.클라이언트 코드에서 클라이언트가 클라이언트 - 서버 할때 그 클라이언트 인가요? 클라이언트 코드라는게 무슨 의미인건가요? 감사합니다.
- 해결됨스프링 핵심 원리 - 기본편
외부 라이브러리 표시가 안보입니다..
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]프로젝트 안에서 외부 라이브러리 자체가 안보이는 데 보이게 하는 방법이 있을까요?
- 미해결스프링 핵심 원리 - 기본편
질문있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이전강의부터 불변이라는게 좀 헷갈렸는데요setXxx 메서드로 다른개발자가 MemberRepositroy를MemoryRepository에서 JdbcRepositroy로 바꾸면 안되니까final을 붙여 수정을 못하게하고 생성자를 열어놔서 AppConfig에서 Bean을 등록하여 거기서 인스턴스화해서 생성자에 값을 넣어주잖아요 그런데 궁금한건 다른 개발자가 AppConfig에서 똑같이 Memory를 Jdbc로 바꿀수있을텐데 왜 불변인지 잘 이해가 안갑니다 ㅠㅠ
- 미해결스프링 핵심 원리 - 기본편
() {} 이거 빨리치시던데 어떻게하나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 바로치면 ({) 이렇게 나오던데 빨리치는법이있나요?
- 미해결스프링 핵심 원리 - 기본편
람다식 화살표는 어떻게 입력하는건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 인터넷 검색해봐도 답이안나오네요 람다식이 뭔지만나오고입력어떻게하는거죠?
- 미해결스프링 핵심 원리 - 기본편
에러부분이 나서 진행이 안되네요... 의존성 문제인거 같기도한데
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'orderServiceImpl' defined in file [C:\hello\core\out\production\classes\hello\core\order\OrderServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.core.member.MemberRepository' 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:229)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955)at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)at org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:93)at hello.core.scan.AutoAppConfigTest.basicScan(AutoAppConfigTest.java:15)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.base/java.lang.reflect.Method.invoke(Method.java:566)at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725)at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84)at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214)at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210)at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135)at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66)at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)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:1541)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:1541)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:107)at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)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.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.core.member.MemberRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1801)at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1357)at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311)at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887)at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)... 83 more종료 코드 -1(으)로 완료된 프로세스 @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired // 생성자에서 여러 의존관계도 한번에 주입받을 수 있다. public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = discountPolicy; } @Override public Order createOrder(Long memberId, String itemName, int itemPrice) { Member member = memberRepository.findById(memberId); int discountPrice = discountPolicy.disCount(member, itemPrice); return new Order(memberId , itemName, itemPrice ,discountPrice); } // 테스트 용도 public MemberRepository getMemberRepository() { return memberRepository; } } public class AutoAppConfigTest { @Test void basicScan() { ApplicationContext ac = new AnnotationConfigApplicationContext(AutoAppConfig.class); MemberService memberService = ac.getBean(MemberService.class); assertThat(memberService).isInstanceOf(MemberService.class); // AnnotationConfigApplicationContext를 사용하는 것은 기존과 동일하다. // 설정 정보로 AutoAppConfig 클래스를 넘겨준다. // 설정해보면 기존과 같이 잘 동작하는 것을 확인할 수 있다. } @Configuration @ComponentScan( //자동으로 스프링 빈을 등록할 수 있는 기능 excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION ,classes = Configuration.class) ) public class AutoAppConfig { }빈을 찾기 못해서 발생하는 문제인건 알겠는데 어느부분인지는 모르겠네요ㅜㅜ
- 미해결스프링 핵심 원리 - 기본편
java.lang.IllegalStateException: Failed to load ApplicationContext
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)java.lang.IllegalStateException: Failed to load ApplicationContext 라고 계속 뜨는데 왜 실패하는 지 모르겠습니다.. 어떤걸 해결해야 테스트가 완료될까요?
- 미해결스프링 핵심 원리 - 기본편
memberRepositroy() 질문있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. AppConfig에서 순서는 보장되지 않는다하셨는데return new MemberServiceImpl(memberRepository())return new OrderServiceImpl(memberRe~~~,dis~~)이부분에서 memberRepository() 메서드를 빼고직접 new MemoryMemberRepository()를 넣으니까서로 다른 객체를 생성하더라구요 ( @Configration 사용한상태 )Configration 애너테이션을 사용해도하나의 메서드로 안빼고 직접 객체를 생성하면스프링컨테이너가 CGLIB?를 통해찾지못하는건가요?
- 미해결스프링 핵심 원리 - 기본편
단축키 cnt+alt_m 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 메서드 추출 단축키를 제목처럼 실행해도 아무것도 안뜨네요.. 키맵들어가도 이게 맞는데 왜이럴까요?
- 미해결스프링 핵심 원리 - 기본편
질문있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 싱글톤 문제점에서 order(){ this.price = price) } 이 부분으로 인해서 private int price필드를 서로 참조하고있어 테스트에서 주문금액 조회시 A사용자와 B사용자 값이 같은건 이해가 갔습니다.그런데 궁금한건 예로들어 회원정보 필드가있으면private String nickName; public String getNickName(){ return nickName } 유저가 닉네임을 변경시 setNickName(String nickName) { this.nickName = nickName} setNickName을 사용하여 변경할텐데 왜 이부분에서는 잘 처리되는지 이해가 잘안갑니다 ㅠㅠ
- 해결됨스프링 핵심 원리 - 기본편
pdf 자료 7. 의존관계 자동 주입 7페이지에 질문 있습니다.
[질문 내용]여기에 질문 내용을 남겨주세요.생성자 주입은 객체를 생성할 때 딱 1번만 호출되므로 이후에 호출되는 일이 없다.이 부분에 대해 질문이 있습니다.스프링 컨테이너에 등록되는 객체들은 싱글톤 패턴으로 등록이 되기 때문에 스프링 컨테이너에 객체가 한번 등록되고 나서는 다른 서비스 로직에서 그 객체를 호출할때 계속 그 객체만 사용한다 그래서 스프링 컨테이너에 객체 등록시 생성자를 불러오고 생성자를 불러왔으니 생성자 주입이 발생한다 이때 생성자 주입 호출이 딱 1번만 발생하고 그 이후는 객체를 스프링 컨테이너에 다시 등록할 일이 없으니 생성자 주입이 호출될 일이 없다 라고 이해를 했는데 제가 이해를 한게 맞을까요?감사합니다.
- 해결됨스프링 핵심 원리 - 기본편
빈 등록 과정 질문입니다.
안녕하세요빈 수동등록과 자동등록 과정에 대해서 질문드립니다.챕터 4번째인 스프링 컨테이너와 스프링 빈 편의 교재에 나와있는 참고사항에서 궁금한 점이 생겼습니다.참고 : 스프링은 빈을 생성하고, 의존관계를 주입하는 단계가 나누어져 있다. 그런데 이렇게 자바 코드로 스프링 빈을 등록하면 생성자를 호출하면서 의존관계 주입도 한번에 처리된다. 여기서는 이해를 돕기 위해 개념적으로 나누어 설명했다. 자세한 내용은 의존관계 자동 주입에서 다시 설명하겠다. 용어에 대해서 궁금한 점이 있어요. 교재에 나와있는 빈의 생성은 빈의 등록과 같은 의미인가요?아니면 빈의 생성은 new키워드로 객체를 생성한다는 의미인가요..? 죄송합니다. 이 부분은 쓸 데 없는 질문이지만, 정확한 원리를 모르기 때문에 이러한 단어들의 차이 때문에 혼동이 오는 경우가 있어서요ㅠㅠ. 수동 빈 등록 시 원리가 궁금합니다.@Bean이 붙은 메서드에서 new 키워드로 객체를 생성하고, return이 되는 객체가 빈으로 등록되는 게 맞나요?자동 빈 등록 시 원리가 궁금합니다.@Component가 붙게 되면 해당 클래스 객체를 생성한 뒤에 그 인스턴스를 빈에 등록하는 것이 맞나요? 빈이 등록되는 데에는 순서가 있다고 배웠습니다.2번 질문에서 제가 여쭤본 것 처럼, 수동 등록은 @Bean이 붙은 메서드에서 자바코드로 의존관계를 주입하고 난 뒤에, return으로 반환되는 객체가 비로소 빈으로 등록되는 건가요? 그러면 교재에 나와있듯이, 의존관계 주입은 return하기 전, 즉 객체생성 시에 이뤄지는 건가요? 반면 @ComponentScan방법인 자동등록은 생성자주입일 때를 제외하면, 모든 방법들이 클래스가 우선 빈으로 등록되고 난 뒤에 의존관계 주입이 이뤄지는 것인가요? 그러니까 객체생성 후, 빈으로 등록이 되고, 의존관계는 그 이후에 의존관계가 주입이 되는건지요. 제가 이런 질문으로 확인하고 싶은 점은 스프링 컨테이너에 빈이 등록되는 정확한 시점을 알기 위함입니다. 수동 등록은 @configuration 클래스의 빈 메서드에서 의존관계를 수동으로 모두 설정 후에 return한 객체가 스프링 컨테이너에 빈으로서 올라가는 것인지.또자동 등록은 @Component가 붙은 클래스의 객체를 생성할 때, 생성자 주입이면 의존관계가 우선적으로 주입이 되고 스프링 컨테이너에 빈으로서 등록이 되는지.또한 @Component방법의 나머지 방법들은 객체의 인스턴스가 우선적으로 스프링 컨테이너에 빈으로서 등록이 되고 난 뒤에 의존관계주입이 일어나는지 그 시점들이 궁금합니다. 답변 부탁드립니다.
- 미해결스프링 핵심 원리 - 기본편
원래 Test 는 나중에 작성하는건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의에서 Test파일을 돌려보기전에XXX_App을 만든후 XXX_Test를 돌리잖아요그러면 결국 완성본까지 만든 후 Test를 돌리는건데Test를 나중에 만드는 이유가 뭔가요?(강사님이 콘솔로 확인하냐 Test로 확인하냐 차이라고 하시는데 짧은코드에 서로 App과 Test가 동일한코드라 콘솔로 확인해도 충분하기에 XXX_App을 만들어서 콘솔로확인한건가요?)