[질문 내용] 여기에 질문 내용을 남겨주세요. Parameter 0 of constructor in hello.hellospring.SpringConfig required a single bean, but 2 were found: - memoryMemberRepository: defined in file [C:\Users\Han\IdeaProjects\hello-spring\out\production\classes\hello\hellospring\repository\MemoryMemberRepository.class] - springDataJpaMemberRepository: defined in hello.hellospring.repository.SpringDataJpaMemberRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration springconfig에 빈이 2개있어서 그런거 같은데 어느 파일을 수정해야할까요 @Configuration public class SpringConfig { private MemberRepository memberRepository; private EntityManager em; @Autowired public SpringConfig(MemberRepository memberRepository) { this.memberRepository = memberRepository; } // @Autowired // public SpringConfig(DataSource dataSource) { // this.dataSource = dataSource; // } @Bean public MemberService memberService() { return new MemberService(memberRepository); } // @Bean // public MemberRepository memberRepository() { // return new MemoryMemberRepository(); // return new JdbcMemberRepository(dataSource); // return new JpaMemberRepository(em); // } } 생성자 주입을 못받고 있다고 합니다. @Autowired public SpringConfig(MemberRepository memberRepository) { this.memberRepository = memberRepository; }
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. https://drive.google.com/file/d/13B3t74Z3Xy8CyY0XTSTYjosfFZOhgOMB/view?usp=sharing 위는 프로젝트 파일입니다. db연결 까지 완료 했고 테이블까지 생성 했습니다. 하지만, 홈 화면에서 회원 목록을 조회 하려고 하면, 인텔리제이 콘솔창에 이와 같은 오류가 발생합니다. select * from member [42104-224]] with root cause org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "MEMBER" not found (this database is empty); SQL statement: select * from member [42104-224] db까지 연결을 잘 했다고 생각하는데, 대체 어디가 잘 못 되어 member테이블을 찾지 못하는지 모르겠습니다.
현재 스프링 로드맵부터 시작하여 JPA 로드맵까지 완강하고, 한 프로젝트에 쭈욱 적용해보며 다시 복습하고 있는 취준생입니다!! 학습한 내용 중에 (JPA 로드맵 중) 엔티티 노출은 최대한 피하여 DTO로 변환해 화면에 보여주거나, API 스펙에 맞추어 내려준다 라고 배웠었는데요. MVC2 프로젝트안에 저장할 때의 ItemSaveForm(dto), 수정할 때의 ItemUpdateForm으로 나누어 각각 저장, 수정할 때 dto로 사용하고 있습니다. 이때, 상품 상세, 상품 수정 등 GetMapping으로 저장된 객체를 불러올 때에 새로운 Dto클래스를 만들어 새로운 Dto 클래스에 바인딩하는 코드로 짜주는 것이 맞나요??
보통 실무에서는 controller ->service(interface) -> repository -> dao ^ | serviceImpl (service Interface 구현체) 이렇게 많이 사용합니다. 제가 개발자로 실무를 하지 않아서 정확하지는 않지만 @Configuratiain 을 이용한 클래스에서 구성을 잡고 포인트컷으로 지정된 패키지와 그 하위 *Impl 메서드에 모든 @Transaction 어노테이션이 적용되도록 설정을 했던 것 같습니다. 그리고 serviceImpl에서 @Transactional 어노테이션을 사용하지 말라고 가이드가 내려 옵니다. 코딩은 public class serviceImpl { public int createMember(MemberVO member) { deleteMember(member); insertMember(member); updateMember(member); } public int deleteMember(MemberVO member) { //비지니스 로직 수행 String id = member.getId(); //null 체크 되어 있다고 가정 repository.delete(id); } public int insertMember(MemberVO member) { //비지니스 로직 수행 repository.insert(member); } public int updateMember(MemberVO member) { //비지니스 로직 수행 repository.update(member); } } 그런데 한번도 아키텍처나 업무 공통 단에서 내부 호출에 대한 가이드가 없었습니다. 그리고 실제로 내부 호출을 해도 Transaction 처리에 문제가 있지는 않았습니다. 그렇다고 AspectJ 의 컴파일러를 이용하는 것 같지도 않고 ObjectProvider를 사용하는 것 같지도 않는데 말입니다. 고급편에서도 궁금했지만 DB2편을 다 수강하고 나서 질문을 드립니다 아키텍처 쪽에서 내부 호출에 대한 문제를 모르진 않았을것 같은데 통상적으로 어떻게 @Transactional 처리를 하기에 개발자들은 내부 호출 문제에 신경 쓰지 않을까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] findCookie() 메서드에서 String cookieName으로 SESSION_COOKIE_NAME = "mySessionId"; 위의 상수를 받고있고, 그럼 모든 사용자의 cookieName이 다 "mySessionId"인건데 사용자가 달라질때 같은 cookieName인 "mySessionId"로 UUID를 찾는 것이 이해가 가지않습니다. return Arrays.stream(cookies).filter (cookie -> cookie.getName().equals(cookieName)).findAny().orElse(null); 위와 같이 return하면 무조건 sessionStore에 첫번째로 저장 된 "mySessionId"의 uuid가 나가지않나요..??
실습도중 Script 클릭시 해당 오류가 납니다. 컴퓨터 스펙은 m1 입니다.. 2024-03-25 14:53:51,833 ERROR FileEntryRepository.java:192 : Error while fetching files from SVN for admin 다른 버전으로 설치해도 동일한 이슈가 나서 혹시 해결하셨던 내용이 있을지 문의드립니다.
[질문 내용] 안녕하세요 자바 17에 스프링 3이상으로 실습해보고있습니다. 처음엔 의존관계 설정을 implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta" annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" 이렇게 해줬는데 clean만 빌드가 되며 compileJava가 빌드가 안되고 그래들에서 의존관계에 빨간불이 뜨며 persistence를 찾을 수 없다는 에러 메세지가 나왔습니다 찾아보던 도중 persistence버전을 3.0.1로 높이면 해결이 된다라는 글을 보고 버전을 올려줬습니다. 그 후 빌드를 해줬더니 jakarta로 import해주었던게 다 javax로 바뀌어있더라고요 그래서 일일히 들어가 다시 jakarta로 바꿔주니까 clean과 compileJava 둘 다 정상적으로 빌드되었습니다. 하지만 그래들은 저렇게 아직 빨간불이 뜹니다 이대로 진행해도 되는걸까요 ? 왜 persistance 버전을 높이면 javax로 돌아가는건가요 ?
안녕하세요. 24.03.24일 날 스프2탄을 구매하였습니다. 시작부터 문제가 발생되어서 글 남깁니다. 강사님의 영상을 따라 eGovFrame-4.0.0을 다운로드 하였고 1. 프로젝트를 생성하기위해 Spring Legacy Project 클릭 ---문제 발생 ---- 2.Simple Projects만 보이고 MVC프로젝트가 보이질 않습니다. 구글링을 해보고 시도 하였지만 해결되지 못했습니다. 초보의 입장에서 난감해하고 있습니다. 해결방법과 그따른 영상을 업데이트를 해주실수 있을까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 강의대로 h2데이터베이스 잘 들어가지는데 빌드하고 실행하면 조회와 멤버 등록에서 오류가 납니다 [2m2024-03-25T10:58:04.317+09:00[0;39m [31mERROR[0;39m [35m10840[0;39m [2m---[0;39m [2m[demo] [nio-8080-exec-5][0;39m [2m[0;39m[36mo.a.c.c.C.[.[.[/].[dispatcherServlet] [0;39m [2m:[0;39m Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.IllegalStateException: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection] with root cause org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-224] 오류는 이렇게 납니다. 어떻게 해야 하나요? 강의대로 application.properties 도 잘 했고, h2디비 실행도 잘 됩니다. 디비 켜놓고 해도 오류나네요 ㅜㅡ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 밑에 무슨 경고문이 뜨고 실행버튼이 여기서는 보이지 않아요 이걸 어떻게 하면 되나요 ㅠㅠ ++)build.gradle 을 open as project 로도 해보았습니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 이 오류는 무엇인가요?
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 이미지와 같이 model.addAttribute("data","hello!!"); 입력했을 때, 아래와 같은 오류가 발생합니다. Cannot resolve method 'addAttribute' in 'Model'
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemoryMemberRepository; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*; class MemberServiceTest { MemberService memberService; MemoryMemberRepository memberRepository; @BeforeEach public void beforeEach() { memberRepository = new MemoryMemberRepository(); memberService = new MemberService(memberRepository); } @AfterEach public void afterEach() { memberRepository.clearStore(); } @Test public void 회원가입() throws Exception { //Given Member member = new Member(); member.setName("hello"); //When Long saveId = memberService.join(member); //Then Member findMember = memberRepository.findById(saveId).get(); assertEquals(member.getName(), findMember.getName()); } @Test public void 중복_회원_예외() throws Exception { //Given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); //When memberService.join(member1); IllegalStateException e = assertThrows(IllegalStateException.class, () -> memberService.join(member2));//예외가 발생해야 한다. assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); } } 강의를 따라하다가 좀 잘 안되서 pdf내용을 그대로 긁어왔는데 import org.junit.jupiter.api.AfterEach;가 빠져있더라구요. 그것만 수정하면 될 줄 알았는데, get()과 assertThrows에서 문제가 발생하고있는것 같습니다 왜그럴까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 강의 4분28초 부분까지 내용 따라하는데 코드 다른것도 없는데 상품 등록을 누르면 500에러가 발생합니다. @PostMapping("/add") public String save(@RequestParam String itemName, @RequestParam int price, @RequestParam Integer quantity, Model model) { Item item = new Item(); item.setItemName(itemName); item.setPrice(price); item.setQuantity(quantity); itemRepository.save(item); model.addAttribute("item", item); return "basic/item"; } 2024-03-24T23:35:00.277+09:00 ERROR 924 --- [item-service] [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.IllegalArgumentException: Name for argument of type [java.lang.String] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag.] with root cause java.lang.IllegalArgumentException 찾아보려 해도 이유를 모르겠습니다.
만약 규모가 작은 프로젝트인 경우 현업에서 controller, service, vo 이런식으로 구조를 나누고 그 안에 비지니스 로직기준해서 폴더를 나누어 주는 경우도 있는데, 그 경우에는 말씀하셨던 비지니스따라 class파일을 만드는것과 크게 구조적으로 차이가 클까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] supports에서 주석 처리된 Item.class.isAssignableFrom(aClass.getClass()); 로 실행해보니 Validator를 추가하는 부분에서 에러가 발생했습니다. 그래서 return aClass.isAssignableFrom(Item.class)로 바꾸니 정상 동작하더라고요. 왜 aClass와 Item.class의 순서를 바꿨을 때 정상 동작하는지 잘 모르겠어서 질문드립니다. Item.class.isAssignableFrom(aClass.getClass()) 이렇게 사용해야지 aClass(파라미터로 전달받는 객체)가 Item 클래스의 자식일 때도 true로 반환하지 않나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] spring 파일에 hello-spring을 생성했고 터미널에서 cd spring을 입력하면 파일을 찾을 수 없다고 뜨는데 어떻게 해야하나요??