묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결1시간만에 끝내는 spring boot rest api 서비스 개발
QuickMapper를 찾을 수 없다는 오류가 뜹니다. @Autowired 사용에 문제가 있는 걸까요?
안녕하세요?강의 내용이 너무 좋아서 빠져서 듣고 있습니다.그런데 mybatis연결 과정에서 QuickMapper interface와 xml연결하는 부분 수업 중에 아래와 같은 에러가 발생했습니다. 에러 내용만 보면 Service 에서 QuickMapper를 @Autowired하는 부분부터 문제가 생기는 것 같은데 해결방법을 모르겠습니다.현재 에러가 나는 상태로 git에 소스 올려두었습니다.https://github.com/ljpson/quickstart.git에러 내용은 아래와 같습니다. 2024-04-03T11:20:24.392+09:00 WARN 74964 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'quickController': Unsatisfied dependency expressed through field 'quickService': Error creating bean with name 'quickService': Unsatisfied dependency expressed through field 'quickMapper': No qualifying bean of type 'com.helloworld.quickstart.mapper.QuickMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}2024-04-03T11:20:24.395+09:00 INFO 74964 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]2024-04-03T11:20:24.404+09:00 INFO 74964 --- [ main] .s.b.a.l.ConditionEvaluationReportLogger :Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.2024-04-03T11:20:24.418+09:00 ERROR 74964 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :***************************APPLICATION FAILED TO START***************************Description:Field quickMapper in com.helloworld.quickstart.service.QuickService required a bean of type 'com.helloworld.quickstart.mapper.QuickMapper' that could not be found.The injection point has the following annotations:- @org.springframework.beans.factory.annotation.Autowired(required=true)Action:Consider defining a bean of type 'com.helloworld.quickstart.mapper.QuickMapper' in your configuration.Process finished with exit code 1
-
미해결1시간만에 끝내는 spring boot rest api 서비스 개발
mybatis의 hashmap 데이터 호출시 대문자로 불러와야 되나요?
강의 내용에 대해 질문해 주세요에러가 날 경우 본인 코드가 있는 git 주소를 알려주거나 최대한 상세히 적어주세요 소문자로하면 null로만 나옵니다...
-
미해결1시간만에 끝내는 spring boot rest api 서비스 개발
@Autowired 관련
강의 내용에 대해 질문해 주세요에러가 날 경우 본인 코드가 있는 git 주소를 알려주거나 최대한 상세히 적어주세요 @Autowired 를 사용해도 QuickService가 호출되지 않는 것 같습니다 어떻게 해야 하나요?
-
해결됨1시간만에 끝내는 spring boot rest api 서비스 개발
마이바티스 - 해쉬맵
안녕하세요! 강의 잘듣고있습니다! 마이바티스 설정관련 parameter를 1개임에도 불구하고 HashMap으로 감싸서 보내는데 원래 마이바이스트 매개변수 넘길때 보통 해쉬맵으로 감싸서 보내나요?또한가지 만약 넘겨줄 매개변수가 Object 타입 (id,username....), String 타입 2가지 혹은 그 이상인 경우에도 해쉬맵에 Object도 매핑해서 보내준 후 #{objec명.필드명} 이런식으로 빼쓰나요?
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Mybatis만 사용하는 경우의 Data Class 구조에 조언 구합니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예 - 부분적인 관련이긴 합니다ㅜ)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]JPA를 사용하는 경우 Entity와 request/response(DTO)를 구분하는 부분은 충분히 공감하였습니다.그러면 혹시 Mybatis만을 활용하여 SQL로 바로 접근하는 프로젝트의 경우도 JPA와 같이 DB 계층(Entity/Repository)과 그 외 계층(DTO - Controller/Service)을 구분하여 Data Class를 설계하는 것이 필요할까요?현재 프로젝트는 Mybatis만을 사용하고 있으며 각 요청과 응답에 대해서는 request와 response DTO를 각각 생성하여 사용하고 있는 상황입니다.강의를 듣다보니 여기에 추가적으로 DB 계층으로 접근할 때의 Data Class를 추가하여 접근하는 것이 필요하지 않을까 해서 질문 드리게 되었습니다. 강의 내용과 조금 거리가 있을 수 있으나 궁금함이 생겨 간단한 의견이라도 부탁 드립니다.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
Mybatis 학습을 위해 실행 도중 오류에 대한 해결방법이 궁금합니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]프로젝트를 따라 실행하며 학습하기위해itemservice-db 프로젝트를 받아 실행해봤지만앞서 학습내용을 건너 뛴 탓에 에러가 떴습니다.처음엔 H2가 실행되어있지 않는 오류로 떠서 해결하고보니 이런 오류가 뜹니다..테이블 ITEM 이 없다는 내용같은데앞에 강의내용을 건너뛰고 Mybatis 부분을 학습하고 싶은데 (지금 공부에 목표가 Mybatis 라서 해결 후에 완강을 해야겠다고 목표하고 있습니다.)영한님의 강의에서 Mybatis 부분을 문제없이 듣고 따라하기 위해선 어떤부분을 빠르게 수정해야 하는지 알려주시면 감사하겠습니다.
-
미해결
jsp 체크박스 기능 사용
안녕하세요 현재 spring을 이용하여 개발 중인 초보개발자입니다.다름이 아니라 현재 spring의 ajax 통신 기능을 사용하여 체크박스 기능을 구현 중인데, 생각보다 잘 풀리지 않아 질문하고자 합니다.javascript에 배열을 선언 후 체크박스가 요청하는 데이터베이스 데이터를 mybatis로 구분하여 불러오려 하는데, 배열의 size가 null로 나와 조회가 되지 않습니다. 현재 화면에 데이터를 불러오는데 getmapping을 사용 중인데, 구글링을 하다보니 postmapping이 적합하다고 하는데 혹시 어떤 이유 때문인지 궁금합니다.만약 꼭 바꿔야한다면 getmapping -> postmapping 으로 변경하려 하는데, 컨트롤러와 ajax의 type을 get에서 post로 변경하였는데 아예 데이터가 올라오지 않는 현상이 발생했습니다.혹시 어떻게 형식을 바꾸면 되는지 궁금합니다.
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
[생애 최초 JPA 사용하기]로 넘어가기 전 Mybatis 공부..? 관련 질문입니당(3번질문 추가)
안녕하세요 공부하는 개발자 최태현님!강의가 너무 재밌어서 23강까지 후딱 와버린 지금, 두번째 질문 드리게 되었네요 ㅎㅎ오늘도 감사한 마음을 가지고 바로 본론으로 넘어가보도록 하겠습니다~(2월 26일 오전 11시 50분 3번질문 추가)22강까지 마치고 나서 데이터 접근 기술에 대해 더 알아보았는데요!크게 아래와 같은 5가지 기술을 사용하고 있다고 하더라구요SQLMapperJDBC TemplateMyBatisORM 기술JPA, HibernateSpring Data JPAQuerydsl이 중, JDBC Template과 JPA쪽은 본 강의에서 다루고 있고 Querydsl은 [실전!코틀린과 스프링부트로 도서관리 애플리케이션 개발하기(Java프로젝트 리팩토링)]에서 배울 수 있는 것 같은데,, MyBatis 같은 경우는 따로 다루고 계신 것 같지 않아서 독학으로 해보고자 하고 있는 상태입니다..ㅠ그래서 문의 드리고자 하는 부분은,MyBatis를 따로 강의에서 다루지 않으신 이유!도서관리 애플리케이션에 MyBatis를 적용해보려면?2-1. 혹시 강의 내용에 업데이트 해주실 수 있으신지...!?(영상이나 문서등의 강의자료)MyBaits 검색하다보니 DAO & VO 같은 것들을 보게되었는데, 본 강의에서 배운 [외부 API 호출- DTO | Controller - Service - Repository - 데이터베이스]것과 유사해보이는데, 어떤 차이가 있는지 궁금해요!크게 이렇게 3가지 입니다... 사실 2번(+2-1)은 조금 양심에 찔리는 문의 내용같기도 하네요 ㅠ2번은 사실 스스로 찾아서 적용해보는 노력으로 얻는 결과가 제일 본인에게 도움이 되는 것을 알고 있으나,, 생각보다 이게 쉽지 않더라구요 ㅠㅠ.. 계속 시도하다가 답답해진 마음을 조금 담아 이렇게 문의 글 드려봅니다..!!오늘도 질의응답 퀄리티마저도 훌륭한 태현님의 강의를 들으며 공부 이어가고 있겠습니다~미리 답변 감사드리며, 행복한 하루 보내시길 바랄게요~!감사합니다 행복하세요~
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
spring-mybatis 이미지 업로드 관련 NullPointerException 에러
안녕하세요!수업 듣다가 Mybatis로 이미지 업로드 해보려는데, 실패해서요 조언 좀 듣고 싶습니다.아래 코드에서 fileData.setFilePath가 Null 값으로 나오는데 왜그런걸까요 ? ㅠㅠjava.lang.NullPointerException: nullcom.restapi.bin.service.FileUploadDownloadService.uploadImageToFileSystem(FileUploadDownloadService.java:29) ~[main/:na]@Data public class FileData { private Long id; private String name; private String fileType; private String filePath; public FileData(Long id, String name, String fileType, String filePath) { this.id = id; this.name = name; this.fileType = fileType; this.filePath = filePath; } }@Service @Slf4j public class FileUploadDownloadService { @Autowired private FileDataMapper mapper; private static FileData fileData; private final String FOLDER_PATH = "/Users/david/Downloads/image/"; public String uploadImageToFileSystem(MultipartFile file) throws IOException { String filePath = FOLDER_PATH + file.getOriginalFilename(); log.info("file Path={}", filePath); fileData.setFilePath(filePath); fileData.setName(file.getOriginalFilename()); fileData.setFileType(file.getContentType()); log.info("fileData={}", fileData); mapper.insert(fileData); log.info("fileData={}/{}/{}", fileData.getFileType(), fileData.getName(), fileData.getFilePath()); file.transferTo(new File(filePath)); return null; } public byte[] downloadImageFromFileSystem(String fileName) throws IOException { Optional<FileData> dbImageData = mapper.findByFile(fileName); //이미지가 저장된 파일을 가져옴 > 바이트배열로 변환 > 서비스에서 다시 반환하여 얻음 String filePath = dbImageData.get().getFilePath(); byte[] images = Files.readAllBytes(new File(filePath).toPath()); return images; } }
-
미해결
mybatis 스프링 데이터 업데이트 foreach문 관련 질문입니다.
는지 검dservice 문에서 for 문을 돌려 받은 map list 를 Dao로 보내 어 이런 데이터 값을 받았습니다. [{orderProductQty=3, productCd=4}, {orderProductQty=2, productCd=1}] . 여기서 이 데이터 값이 mybatis에서 update가 되지 않고 있습니다. foreach 문을 다양한 방법으로 변경 해 보았으나 1, <foreach collection="list" item="productMap" separator=";"> 2,<foreach collection="list" item="productMap" separator=";" open="" close=""> 3. <foreach collection="list" item="productMap" separator=";" close=";"> 4, <foreach collection="list" item="productMap" separator=","> 5. <foreach collection="list" item="productMap" separator=";" open=";" close=";"> 모두 같은 에러의 연속이네요. 이거 어떻게 해결 할 수 있을까요? 도와 주시면 너무너무 감사드립니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
Mybatis, JPA 혼용사용
안녕하세요 강의 잘 듣고 있습니다. 다름이 아니라, 기존 진행하던 프로젝트가 Spring, Mybatis를 사용하고 있어, JPA를 추가하여 혼용 사용하려고 합니다. 하나의 DB를 바라보게 하기 위해서 Datasource를 나눠서 생성하고, trancsaction을 Mybatis용 JPA용으로 나눠서 생성하였고, ChainedTransactionManager를 사용하여 트랜잭션을 묶어줬습니다. 하지만 계속 다음과 같은 에러가 발생하고 있습니다. [o.s.d.r.c.RepositoryConfigurationDelegate] - Multiple Spring Data modules found, entering strict repository configuration mode! 이런 문제가 발생했을때 어떻게 처리해야할까요 ㅜㅜㅜ 도움이 필요합니다. config.xml 파일입니다.. <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jpa="http://www.springframework.org/schema/data/jpa" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/tx http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd"> <bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <value>classpath:mybatis/jdbc.properties</value> </property> </bean> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="${jdbc.driverClassName}"/> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <property name="maxWait" value="3000" /> <property name="poolPreparedStatements" value="true" /> <property name="maxOpenPreparedStatements" value="50" /> <!-- connection - validation query --> <property name="validationQuery" value="select 1"/> <property name="testWhileIdle" value="true" /> <property name="timeBetweenEvictionRunsMillis" value="7200000" /> </bean> <bean id="jpadataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="${jdbc.driverClassName}"/> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <property name="maxWait" value="3000" /> <property name="poolPreparedStatements" value="true" /> <property name="maxOpenPreparedStatements" value="50" /> <!-- connection - validation query --> <property name="validationQuery" value="select 1"/> <property name="testWhileIdle" value="true" /> <property name="timeBetweenEvictionRunsMillis" value="7200000" /> </bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:mybatis/mybatis-config.xml" /> <property name="mapperLocations" value="classpath:mybatis/mapper/*.xml" /> </bean> <bean id="transactionManager" class="org.springframework.data.transaction.ChainedTransactionManager"> <constructor-arg> <list> <ref bean="mybatisTransactionManager"/> <ref bean="jpaTransactionManager"/> </list> </constructor-arg> </bean> <bean id="mybatisTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <bean id="jpaTransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="jpaEntityManagerFactory" /> </bean> <bean id="jpaEntityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="dataSource" ref="jpadataSource"></property> </bean> <tx:annotation-driven /> <aop:config proxy-target-class="true"> <aop:pointcut id="serviceOperation" expression="execution(* com.xii..*Service.*(..))" /> <aop:advisor id="transactionAdvisor" pointcut-ref="serviceOperation" advice-ref="txAdvice"/> </aop:config> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="insert*" rollback-for="Exception"/> <tx:method name="save*" rollback-for="Exception"/> <tx:method name="update*" rollback-for="Exception"/> <tx:method name="delete*" rollback-for="Exception"/> </tx:attributes> </tx:advice> <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg index="0" ref="sqlSessionFactory" /> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.xii" /> </bean> <jpa:repositories base-package="com.xii"/> </beans>
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Mybatis vs JdbcTemplate 어떤것이 더 좋은가요?
안녕하세요 스프링 JdbcTemplate 편을 보다가 문뜩 궁금한게 생겼습니다. Mybatis와 비교한 자료를 찾아보니 두가지 모두 SQL Mapper 계열로 나옵니다. 더 검색을 해봐도 같은 계열이라고 표시는 되는점 말고 정확하게 어떤점이 더 좋거나 하는 내용들은 찾을수가 없네요... 아무래도 스프링 계열인 jdbc Template가 더 좋아보이긴 하는데.... 궁금합니다.