묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
localhost 8080
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]구글드라이브https://drive.google.com/file/d/18wTrlbj52ce_TvtqyIKrY_tbfeHwuFnS/view?usp=sharing저는 아래와 같은 오류가 발생하며 localhost 8080에 연결이 되지 않습니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
글삭제시 질문입니다!
현재 코드를 치면서 강의를 따라가다보니 강의가 안들어와서강의에 집중하려고 코드를 미리 받고 진행을 하고있는데요.보시다시피 삭제하면 위의 내용처럼 user_loan_history 테이블이 존재하지않다 라고 되어있습니다.몬가 먼저 제가 코드를 받아서 db 쪽에 user_loan_history 테이블을 참조하는것같은데...궁금한점이 소스내에 어디에서도 user_loan_history 을 찾아도 해당내용이없는데 어떻게 해당 테이블을 참조하는건가요
-
해결됨스프링 부트 - 핵심 원리와 활용
질문이 있습니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]AppInit을 구현한 AppInitV1,V2는 urlpattern에따라 MyContainerInit을 통해 실행되는것이 맞나요 ?그리고 MyContainerInitV1,V2 둘 다 META-INF/services/jakarta.servlet.ServletContainerInitializer에 등록되어있는데 어떻게 구별해서 사용하는건가요 ? 왜 V2가 선택되어서 동작하는지 궁금합니다
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
임베디드 모드(메모리 모드)
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.3장의 14페이지의 부분입니다. 위의 url의 방식을 사용하면 임베디드(메모리 모드)로 동작한다고 적혀있습니다.그런데 db의 모드를 공부하다 보니 궁금증이 생겨 질문드립니다. db 모드에는 3가지 모드가 있습니다.server mode는 url: jdbc:h2:tcp://localhost/~/myShopProject이런 url 예시가 있으며 tcp 방식을 통해 네트워크 통신을 이용하여 서버의 디스크에 저장하는 것으로 이해했습니다.위의 경우는 localhost이므로 저의 로컬 컴퓨터의 디스크에 저장될 것 같습니다.만약 위의 localhost가 다른 ip라면 그 ip의 디스크에 저장될 것 같습니다. 임베디드 모드(Embedded Mode)는jdbc:h2:<databasePath> 이런 url 예시가 있으며 위의 경우는 데이터 베이스가 애플리케이션과 함께 하나의 프로세스 내에서 실행합니다.위의 databasePath에 데이터페이스 파일이 저장됩니다.로컬 컴퓨터의 애플리케이션에서 실행되므로 tcp 통신은 발생하지 않습니다. 인메모리 모드(In-Memory Mode)는jdbc:h2:mem:mydb 이런 url 예시가 있으며 위의 경우에는 데이터베이스가 메모리에만 저장되고, 따라서 파일의 경로를 지정할 필요가 없습니다.이렇게 하면 데이터베이스가 메모리에만 생성되며 디스크에 저장되지 않습니다. 그런데 위의 교재에서는 임베디드 모드는 위처럼 메모리 모드로 동작하는 기능이라고 설명해주고 있습니다. 하지만 제가 공부했던 임베디드 모드는 파일의 경로를 지정해서 영구히 저장해 주는 것으로 알았습니다.위의 임베디드 모드에 대한 설명이 잘 이해가 되지 않았습니다.=================================================================================정리하자면->jdbc:h2:mem:db 이므로 인메모리 모드로 동작하는 H2 데이터 베이스이다. 라고 바꿔야 하지 않을까요..? 임베디드 모드(메모리 모드) 라는 표현이 잘 이해가 안된다 -> 두개는 별개의 모드로 이해하고 있습니다. (메모리 모드와 인메모리 모드가 같은 의미라고 이해하고 있습니다.) + 위의 임데디드 모드에 대한 정의와 설명이 잘 이해되지 않았습니다. 좀 설명이 중구난방하고 제가 학습이 부족하여 잘 이해하지 못한 것 같습니다! 설명해주시면 감사하겠습니다!!
-
미해결스프링 핵심 원리 - 기본편
이것 때문에 진도를 못 나가고 있는데 혹시 강사님이 진행하신 코드를 다운받을 수 있을까요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]https://www.inflearn.com/questions/1241959/%EA%B0%95%EC%9D%98%EB%A5%BC-%EB%94%B0%EB%9D%BC%EA%B0%80%EB%8B%A4%EA%B0%80-%ED%95%98%EB%82%98%EC%9D%98-%EB%B9%88%EC%9D%B4-%ED%95%84%EC%9A%94%ED%95%9C%EB%8D%B0-2%EA%B0%9C%EC%9D%98-%EB%B9%88%EC%9D%B4-%EC%A1%B0%ED%9A%8C%EB%90%9C%EB%8B%A4%EA%B3%A0-%EB%82%98%EC%98%A4%EB%A9%B4%EC%84%9C-%EC%8A%A4%ED%94%84%EB%A7%81-%EC%84%9C%EB%B2%84%EA%B0%80-%EB%9D%84%EC%9B%8C%EC%A7%80%EC%A7%80-%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4 이 링크가 제가 어제 질문했던 부분인데요답변을 봐도 영한님이 쓰신 코드랑 똑같이 진행했던 코드라 틀리는 게 아무리 봐도 이해가 되질 않습니다 영한님의 컴포넌트 부분 코드를 다운 받을 수 있을까요?아니면 제 코드를 첨부하고 싶은데 여기에 첨부할 수가 없어서 너무 답답합니다 ㅠㅠ 빨리 진도도 나가고 싶은데 이런 이유도 모르는 부분에서 막히니 이거에만 계속 매달리고 있어요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
URL API 설계에서 form 페이지 접근 시 add 가 들어가는게 일반적인가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]리소스 기준으로 설계하는게 좋다고 http 강의에서 말씀해주셔서요그런데 일반적으로 form 페이지 접근은 url 에 add/edit 등을 사용해야 할 것 같긴 합니다
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
H2 url을 찾을 수 없다고합니다.
Caused by: java.lang.RuntimeException: Driver com.mysql.cj.jdbc.Driver claims to not accept jdbcUrl, jdbc:h2:tcp://localhost/~/jpashop라고 에러메세지가 뜹니다.apllication.yml대신 properties에 spring.datasource.url=jdbc:h2:tcp://localhost/~/jpashop spring.datasource.username=sa spring.datasource.password= spring.datasource.driverClassName=org.h2.Driverjpa.hibernate.ddl-auto=create jpa.properties.hibernate.format_sql=true logging.level.org.hibernate.SQL=debug logging.level.org.hibernate.type=trace 이렇게 작성했는데 왜 안되는걸까요??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
섹션2부터의 PPT 강의자료는 어디서 다운 받나요??
섹션2부터의 PPT 강의자료는 어디서 다운 받나요??
-
미해결스프링 핵심 원리 - 고급편
런타임 시점의 정확한 의미는?2개?한개?
1. CGLIB에서 말하는 런타임의 정확한 시점이 궁금한데? 프록시를 생성하고 바이트 코드를 조작하는 그 시점이 런타임 이다 라고 하는게 맞나요? 스프링이 빈을 컨테이너에 등록하기 이전에 프록시를 생성해서 빈으로 등록하는 그 시점을 런타임이라고 하는거죠?2. AOP 적용 방식 3가지 중 마지막 런타임시점에 대해여기서 스프링이 쓰는 AOP도 결국 CGLIB인데 그러면 여기서 말하는 런타임의 정확한 의미도 1번과 동일한 시점을 얘기하는건가요?아니면 실제 객체의 메소드를 호출하는 그 시점을 런타임 이라고 얘기하는건가요? 아니면 둘다인가요?
-
미해결스프링 핵심 원리 - 고급편
위빙
위빙이 AOP 적용을 위해 애스펙트를 객체에 연결한 상태라고 하셨는데객체는 실제 타겟 객체이지요?스프링 AOP 는 런타임시점에, 컨테이너 로딩시점에, 프록시 생성시점에 위빙을 한다라고 하셨는데위빙이란게 결국 아래 코드 부분의 부가기능이 타겟 객체 호출(joinPoint.proceed) 앞뒤로 만들어주는걸(프록시 객체를 생성하는 시점에서 바이트 코드를 조작해서 심어줌)말씀하시는건가요?
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
Redis만 사용하면 인증 상태 영속이 되지 않습니다..!
안녕하세요 구버전에 이어 신버전 강의도 출시해주셔서 감사합니다! 구버전 커뮤니티에 질문올렸었는데요~이번 강의를 봐도 해결이 되지않아서 질문 올려봅니답..!직접 spring security 메인테이너나 컨트리뷰터들한테도 물어봤는데, 제가 제대로 질문을 못해서인지 해결을 못했는데요. 시큐리티 + formlogin + Redis를 활용해서 인증방식을 구현했습니다. 아래 코드로 인증 객체를 꺼낼때 문제가 발생합니다. @ResponseStatus(HttpStatus.OK) @GetMapping("/test") public void test() { SecurityContextHolderStrategy contextHolderStrategy = SecurityContextHolder.getContextHolderStrategy(); System.out.println(">> contextHolderStrategy : " + contextHolderStrategy); // org.springframework.security.core.context.ThreadLocalSecurityContextHolderStrategy@7e1fbf12 SecurityContext context = contextHolderStrategy.getContext(); System.out.println(">> context : " + context); // SecurityContextImpl [Authentication=AnonymousAuthenticationToken Authentication authentication = context.getAuthentication(); System.out.println(">> authentication : " + authentication); // AnonymousAuthenticationToken MemberContext memberContext = (MemberContext) authentication.getPrincipal(); System.out.println(">> memberContext : " + memberContext); // ClassCastException String username = memberContext.getUsername(); System.out.println(">> username : " + username); } Redis를 사용하지 않고 tomcat에 저장할 경우 session을 통해서 인증 객체를 잘 받아오는데,>> contextHolderStrategy : org.springframework.security.core.context.ThreadLocalSecurityContextHolderStrategy@54f61d2b >> context : SecurityContextImpl [Authentication=UsernamePasswordAuthenticationToken [Principal=com.spring.security.config.security.service.MemberContext [Username=sejinpark@email.com, Password=[PROTECTED], Enabled=true, AccountNonExpired=true, CredentialsNonExpired=true, AccountNonLocked=true, Granted Authorities=[ROLE_ADMIN]], Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=0:0:0:0:0:0:0:1, SessionId=A220DB3D8904393F7D9831276564566A], Granted Authorities=[ROLE_ADMIN]]] >> authentication : UsernamePasswordAuthenticationToken [Principal=com.spring.security.config.security.service.MemberContext [Username=sejinpark@email.com, Password=[PROTECTED], Enabled=true, AccountNonExpired=true, CredentialsNonExpired=true, AccountNonLocked=true, Granted Authorities=[ROLE_ADMIN]], Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=0:0:0:0:0:0:0:1, SessionId=A220DB3D8904393F7D9831276564566A], Granted Authorities=[ROLE_ADMIN]] >> memberContext : com.spring.security.config.security.service.MemberContext [Username=sejinpark@email.com, Password=[PROTECTED], Enabled=true, AccountNonExpired=true, CredentialsNonExpired=true, AccountNonLocked=true, Granted Authorities=[ROLE_ADMIN]] >> username : sejinpark@email.com Redis만 사용하면 인증 완료 후 인증 후 요청에서 Anonymous로 변경됩니다.>> contextHolderStrategy : org.springframework.security.core.context.ThreadLocalSecurityContextHolderStrategy@577154a7 >> context : SecurityContextImpl [Authentication=AnonymousAuthenticationToken [Principal=anonymousUser, Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=0:0:0:0:0:0:0:1, SessionId=16bec162-3ad3-459d-8b97-bf3d6f1de226], Granted Authorities=[ROLE_ANONYMOUS]]] >> authentication : AnonymousAuthenticationToken [Principal=anonymousUser, Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=0:0:0:0:0:0:0:1, SessionId=16bec162-3ad3-459d-8b97-bf3d6f1de226], Granted Authorities=[ROLE_ANONYMOUS]] 2024-04-17T07:49:13.061+09:00 ERROR 84540 --- [nio-8080-exec-6] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.ClassCastException: class java.lang.String cannot be cast to class com.spring.security.config.security.service.MemberContext (java.lang.String is in module java.base of loader 'bootstrap'; com.spring.security.config.security.service.MemberContext is in unnamed module of loader 'app')] with root cause java.lang.ClassCastException: class java.lang.String cannot be cast to class com.spring.security.config.security.service.MemberContext (java.lang.String is in module java.base of loader 'bootstrap'; com.spring.security.config.security.service.MemberContext is in unnamed module of loader 'app') at com.spring.security.controller.MemberController.test(MemberController.java:43) ~[main/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]Redis 내부에 인증객체가 저장되어 있는것 까지 확인했는데요. 혹시 SecurityFilterChain에 Redis관련 저장소를 별도로 설정을 해줘야 하는지, 어떤 부분을 확인해야하는지 여쭙고 싶습니다. Redis를 사용하는데 계속 HttpSessionSecurityContextRepository에서 시큐리티 컨텍스트를 찾을 수 없다고 나옵니답.2024-04-17T17:05:01.251+09:00 WARN 30066 --- [nio-8080-exec-1] w.c.HttpSessionSecurityContextRepository : SPRING_SECURITY_CONTEXT did not contain a SecurityContext but contained: '{authentication={authorities=[{authority=ROLE_ADMIN}], details={remoteAddress=0:0:0:0:0:0:0:1, sessionId=null}, authenticated=true, principal={password=null, username=sejinpark@email.com, authorities=[{authority=ROLE_ADMIN}], accountNonExpired=true, accountNonLocked=true, credentialsNonExpired=true, enabled=true}, credentials=null, name=sejinpark@email.com}}'; are you improperly modifying the HttpSession directly (you should always use SecurityContextHolder) or using the HttpSession attribute reserved for this class? 우선 테스트용으로 SecurityFilterChain에서 아래처럼 기존 버전 처럼 사용해서 인증 상태를 무조건 저장할 수 있도록 해놨습니다.커스텀 인증필터를 사용 안하고, SecurityContextPersistanceFilter를 사용하도록했습니다.securityContext.requireExplicitSave(false);테스트용으로 만든 레포지토리 링크 첨부합니다!https://github.com/codesejin/security-test
-
미해결스프링 핵심 원리 - 기본편
request scope의 http 요청
"request: HTTP 요청 하나가 들어오고 나갈 때 까지 유지되는 스코프, 각각의 HTTP 요청마다 별도의 빈 인스턴스가 생성되고, 관리된다." 여기서 HTTP 요청이라는게 사용자가 웹 브라우저 주소창에 URL을 입력하는 것인지 아니면 myLoggerProvider.getObject();코드가 컨테이너에 MyLogger 빈의 존재 유무를 묻는 걸 뜻하는건지 궁금합니다
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
갑자기 코드가 실행이 안됩니다. Edit Configuration
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]View 환결설정 강의를 시청하는중 아무런 문제없이 코드들은 잘 작성하고있엇습니다. dev tools 추가해서 recompile로 간편하게 해보는걸 하는중 윈도우 단축기는 crtl shift f9이라고 나왔고 그래서 몇번 계속 해보던중 갑자기 코드가 실행이 안되기 시작했습니다. 우선 HelloController, JpaShopApplication 마크가 클래스에서 자바 커피 모양으로 바뀌면서 .java가 붙엇고 실행하려고하면 Edit Configuration 이 나오면서 사진과 같은 창이 나오고 Cannot snapshot C:\Users\juny2\OneDrive\Desktop\study\jpashop\jpashop\build\resources\main\static\index.html: not a regular file 이라는 경고문이 나옵니다. build.gradle 다시 세팅햇더니 다시 클래스 마크로 돌아오긴했는데 여전히 같은 경고문 , Edit configuration이 뜨면서 실행이 안됩니다. (수정) 저기 Edit Config 설정하고 다른 글에서 snapshot 에러뜨면 Onedrive 밖으로 프로젝트 옮겨보라고 하셔서 프로젝트 옮겻고 정상적으로 돌아는가네요. 근데 문제는 index.html파일이 없는 상태에서 이렇게 초기화면에 뭐가 주르륵 뜨는데 어떻게 해결하는지 모르겟습니다. ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
크롬 주소입력창 자동으로 대문자 변경
안녕하세요, View 환경설정을 수강하고 있습니다.Controller에서 hello 부분 작성하고 있는데요. 주소창에 localhost:8080/hello라고 검색해도 자동으로 localhost:8080/Hello 로 검색이 됩니다. 이 부분 때문에 계속 에러 페이지 떠서, GetMapping부분을 "Hello"로 바꿔서 실행하니까 데이터는 출력이 잘 됩니다. 다만, 강사님이 작성하신대로 localhost:8080/hello을 검색했을때, 화면이 잘 나오게 하고 싶습니다. 자동으로 변환하는걸 막을 수는 없을까요 ㅠㅠ?
-
해결됨
스프링 오류 질문드립니다.
package jpabook.jpashop; import org.assertj.core.api.Assertions; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; @RunWith(SpringRunner.class) @SpringBootTest public class MemberRepositoryTest { @Autowired MemberRepository memberRepository; @Test @Transactional @Rollback(false) public void testMember() { Member member = new Member(); member.setUsername("memberA"); Long savedId = memberRepository.save(member); Member findMember = memberRepository.find(savedId); Assertions.assertThat(findMember.getId()).isEqualTo(member.getId()); Assertions.assertThat(findMember.getUsername()).isEqualTo(member.getUsername()); Assertions.assertThat(findMember).isEqualTo(member); //JPA 엔티티 동일성 보장 } } 위의 코드를 실행했는데, 아래와 같은 오류가 나왔습니다. 해결책을 알려주시면 감사하겠습니다. ... 91 common frames omitted============================CONDITIONS EVALUATION REPORT============================Positive matches:----------------- NoneNegative matches:----------------- NoneExclusions:----------- NoneUnconditional classes:---------------------- None2024-04-17T00:07:39.846+09:00 WARN 5176 --- [ Test worker] o.s.test.context.TestContextManager : Caught exception while allowing TestExecutionListener [org.springframework.test.context.web.ServletTestExecutionListener] to prepare test instance [jpabook.jpashop.MemberRepositoryTest@41a23470]java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@48368a08 testClass = jpabook.jpashop.MemberRepositoryTest, locations = [], classes = [jpabook.jpashop.JpashopApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], 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.WebDriverContextCustomizer@49cb9cb5, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@146587a2, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@16c63f5, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@6127a7e, org.springframework.boot.test.context.SpringBootTestAnnotation@8694b330], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null] ... 55 moreCaused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided) > Task :test FAILEDMemberRepositoryTest > testMember FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:180 Caused by: org.springframework.beans.factory.BeanCreationException at AbstractAutowireCapableBeanFactory.java:1786 Caused by: org.hibernate.service.spi.ServiceException at AbstractServiceRegistryImpl.java:276 Caused by: org.hibernate.HibernateException at DialectFactoryImpl.java:1911 test completed, 1 failedFAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':test'.> There were failing tests. See the report at: file:///C:/study/jpashop/build/reports/tests/test/index.html* Try:> Run with --scan to get full insights.Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.For more on this, please refer to https://docs.gradle.org/8.7/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.BUILD FAILED in 6s4 actionable tasks: 1 executed, 3 up-to-date
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
errors.properties intelliJ 인식 문제
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]왜 제 errors.properties는 아이콘 모양이 바뀌지 않고 인식을 안하는 걸까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
findAny() 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]섹션3 회원 도메인과 리포지토리 만들기 강의 중 MemoryMemberRepository.java의 findByName 코드에 대해 질문 있습니다.@Override public Optional<Member> findByName(String name) { return store.values().stream() .filter(member -> member.getName().equals(name)) .findAny(); }해당 코드에서 findAny()는 하나라도 찾으면 반환한다고 설명해주셨는데 그럼 같은 이름의 서로 다른 회원이 여러 명 있어도 루프를 돌리면서 가장 먼저 찾은 한 명의 회원만 반환하는 건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
spring boot 초기 설치시 index파일
안녕하세요, spring boot를 처음에 설치하면 index.html이 없고 localhost:8080 으로 가면 error 문구가 적혀있는 화면이 출력됩니다. 개발자도구에 들어가서 보니까 해당 부분이 index이라고 되어있던데 실제로 스프링 부트에서 찾아보니까 해당 내용은 찾을 수가 없었습니다. 스프링부트에서 프로젝트를 생성한 후 임시로 index.html 파일을 생성해준것인가요?!
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
h2 db 설치 후 테이블 생성에서 오류
어떤게 문제 일까요.....
-
미해결스프링 핵심 원리 - 기본편
강의를 따라가다가 하나의 빈이 필요한데, 2개의 빈이 조회된다고 나오면서 스프링 서버가 띄워지지 않습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]스프링 핵심 원리 - 기본편 수강 도중 영한님 코드를 보면서 실습하면서 진행하다가 스프링을 띄우면 갑자기 아래의 오류가 발생합니다. Parameter 0 of constructor in hello.core.member.MemberServiceImpl required a single bean, but 2 were found: - memoryMemberRepository: defined in file [/Users/wonjunjeong/study/inflearn/kim/project/core/out/production/classes/hello/core/member/MemoryMemberRepository.class] - memberRepository: defined by method 'memberRepository' in class path resource [hello/core/AppConfig.class] @Component 애노테이션 때문이라고 생각되는데요, 코드를 보시면 아시겠지만, 이 애노테이션을 교재에 나와있는 것처럼 MemoryMemberRepository, RateDiscountPolicy, MemberServiceImpl, OrderServiceImpl에다가만 넣었습니다.그랬는데도 위와 같은 오류가 발생하는 게 이해가 가질 않아 질문 드립니다.분명 AutoAppConfig 클래스에서 excludeFilters로 Configuration.class를 제외했는데도 불구하고 이런 빈 오류가 발생하는 이유를 모르겠습니다.전체 코드를 올리고 싶지만 파일 업로드가 안 되는 것 같아, AppConfig와 MemoryMemberRepository 두 코드만 아래에 올리겠습니다. package hello.core; import hello.core.discount.DiscountPolicy; import hello.core.discount.FixDiscountPolicy; import hello.core.discount.RateDiscountPolicy; import hello.core.member.MemberRepository; import hello.core.member.MemberService; import hello.core.member.MemberServiceImpl; import hello.core.member.MemoryMemberRepository; import hello.core.order.OrderService; import hello.core.order.OrderServiceImpl; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class AppConfig { // @Bean: memberService -> new MemoryMemberRepository() // @Bean: orderService -> new MemoryMemberRepository() @Bean public MemberRepository memberRepository() { System.out.println("Call AppConfig.memberRepository"); return new MemoryMemberRepository(); } @Bean public DiscountPolicy discountPolicy() { // return new FixDiscountPolicy(); return new RateDiscountPolicy(); } @Bean public MemberService memberService() { System.out.println("Call AppConfig.memberService"); return new MemberServiceImpl(memberRepository()); } @Bean public OrderService orderService() { System.out.println("Call AppConfig.orderService"); return new OrderServiceImpl(memberRepository(), discountPolicy()); } } package hello.core.member; import java.util.HashMap; import java.util.Map; import org.springframework.stereotype.Component; @Component public class MemoryMemberRepository implements MemberRepository { private static Map<Long, Member> store = new HashMap<>(); @Override public void save(Member member) { store.put(member.getId(), member); } @Override public Member findById(Long memberId) { return store.get(memberId); } }