안녕하세요 스프링 데이터 접근 기본 1편 에 강의 내용 중 JpaTransactionManager와 DatasourceTransactionManager를 같이 사용할 경우 JpaTransactionManager 를 사용하면 된다고 하셨는데 관련해서 궁금한 것이있습니다. Jpa와 myBatis를 같이 사용 할 경우 반드시 JpaTransactionManager를 사용해야 하는지 궁금합니다. 현재 JBPM 이라는 오픈소스를 근간으로 하는 솔루션을 개발 중인데 해당 오픈소스 엔진영역은 JPA를 사용하고 나머지 Service class에는 myBatis를 사용 중입니다. 현재 직면하고있는 문제는 일반 서비스 클래스에서 DatasourceTransactionManager로 트랜잭션이 이어지는 중에 JpaTransactionManager를 사용하고 있는 클래스를 호출 하게 되면 JpaTransactionManager 의 getTransaction() 메서드에서 unable to begin transaction 이라는 에러가 발생합니다. 현재 AOP 로 일괄적으로 2개의 트랜잭션매니저를 사용 하고 있는데, AOP DatasourceTransactionManager 를 주석 처리 하니까 에러가 발생하지 않습니다. 2개의 트랜잭션매니저를 사용해서 발생하는 문제 일까요? 그렇다면 JpaTransactionManager 하나만 사용하면 될까요 ? 영한님 께서 트랜잭션이 시작되면 TransactionManager에서 커넥션을 생성하고 쓰레드로컬에 해당 커넥션을 저장한다고 하셨는데, 2개의 트랜잭션 매니저를 사용해서, A 라는 트랜잭션매니저를 사용하고있는 메서드에서 B라는 트랜잭션매니저를 사용하는 메서드를 호출하면, 2개의 커넥션이 생성되는 것인가요 ?
안녕하세요 김영한님 스프링 db2강의를 듣는중 강사님께서 올려주신 프로젝트에는 보시는것처럼 test / resources 파일이 있어 test에서 application.properties파일에 접근할 수 있습니다. 강의에서 배운내용을 적용하기위해 새로 플젝을까서 공부하고있는데 보시는것과같이 resources폴더가 없더라구요. 이런경우엔 어떻게 해결하면될까요
'스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB접근 기술' 수강자입니다. 섹션 6번 스프링 DB접근 기술 첫 강의에서 h2 database 실행이 안됩니다. OS: Windows11 H2 databse: 2.1.214ver All Platform 이렇게 사용하는데 압축 푼 폴더를 ~/study/h2 에 위치시키고 bin폴더에서 h2.sh 파일 실행이 안됩니다. bash창 열어서 권한을 보면 -rwxr-xr-x 1 hongsj 1049089 109 Apr 11 09:01 h2.sh* 라고 뜨고, ./ h2.sh 명령어나 더블 클릭으로 실행하면 bash창이 잠깐 켜졌다가 아무런 문구도 없이 금방 사라집니다. 어떻게 진행하나요..? h2.bat, h2w.bat 파일들도 cmd창이 잠시 열렸다가 아무런 문구도 없이 사라집니다.
안녕하세요 수업중에 글로벌 validator를 등록하는 소스를 보여주셨는데요. 궁금한 게 있어 질문 드립니다. @SpringBootApplication public class ItemServiceApplication implements WebMvcConfigurer { public static void main(String[] args) { SpringApplication.run(ItemServiceApplication.class, args); } @Override public Validator getValidator() { return new ItemValidator(); } } 글로벌 적용 시 사용하는 WebMvcConfigurer를 들어가봐도 반환 타입이 Validator[]는 없고 Validator만 존재하는데, 여러 개의 validator를 등록이 가능할까요? 아래는 컨트롤러에 적용하는 소스인데 여기는 함수를 까보니 여러 개의 인자를 받을 수 있도록 되어 있더라구요. @InitBinder public void init(WebDataBinder dataBinder) { //dataBinder.addValidators(itemValidator); dataBinder.addValidators(itemValidator, memberValidator, storeValidator); } 글로벌 적용은 복수개의 validator를 어떻게 적용할 수 있을까요?
이번에 취업하게 된 신입 개발자 입니다. 회사에서 스프링/VUE를 사용하고있습니다. 자바를 공부하고있었는데 스프링에 대해선 아무것도 모릅니다. 보니깐 저희 회사는 maven? 을 사용하고있습니다. 혹시 스프링 공부하기 위한 책 과 인프런에서 봐야할 강의를 각각 추천 부탁드립니다. 그리고 강의보면 gradle 로 설정해서 강의 하는 부분이 많은 거같은데 강의보는데 지장이 있을까요? 여러분의 도움이 필요합니다.
안녕하세요 초급개발자입니다. 최근 전자정부표준프레임워크 기반으로 개발된 어떤 소스를 보면서 componentScan에 관해 궁금한것이있었습니다. 우선, WEB-INF 아래의 dispatcher-servlet.xml에 명시되어있는 componentScan에는 Controller가 include 되어있고, service와 repository가 exclude 되어있습니다. <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/> 제가 알기로는 controller, service, repository 어노테이션에는 component 어노테이션이 포함되어있어서 component scan시 전부 bean으로 올리는 것으로 알고있는데 저렇게 exclude를 해놓으면 빈으로 등록이 안되는것 아닌가요 ? basepackage는 최상위 디렉터리가 맞습니다. 또한, web.xml에 명시되어있는 다른 설정 xml파일도 있는데(context-common.xml) 이 파일에도 componenScan이 있습니다. basepackage는 dispatcher-servlet에 명시되어있는 값과 같고, exclude filter로 컨트롤러는 빈 으로 올리지 않는다고 되어있습니다. 그리고 default filter는 따로 설정 해놓지 않아서 default 값인 true로 되어있기 때문에 기본 어노테이션(서비스, 레포지토리)는 빈으로 올린다고 알고 있습니다. <context:exclude-filter expression="org.springframework.stereotype.Controller" type="annotation"/> 결론으로는 두 개의 컴포넌트 스캔(dispatcher-servlet.xml, context-common.xml)의 스캔 조건이 상반되게 되어있는데, 왜 그런지 이유가 궁금합니다 ....
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요. @RestController public class TestController { @GetMapping("/get-string") public String getString() { return "hello"; } @GetMapping("/get-model") public User getUser() { User user = new User("hello", 20); return user; } @GetMapping("/get-list") public List<User> getList() { List<User> userList = new ArrayList<>(); User userA = new User("hello1", 20); User userB = new User("hello2", 20); userList.add(userA); userList.add(userB); return userList; } @GetMapping("/get-map") public Map<Integer, User> getMap() { Map<Integer, User> userMap = new HashMap(); User userA = new User("hello1", 20); User userB = new User("hello2", 20); userMap.put(1, userA); userMap.put(2, userB); return userMap; } } 코드가 위와 같을 때, /get-string 에서는 문자 처리 이므로 StringHttpMessageConverter 가 동작하고, /get-model 에서는 객체 처리 이므로 MappingJackson2HttpMessageConverter 가 동작함을 알았습니다. 그런데 /get-list , /get-map 에서는 어떤 메시지 컨버터가 작동하게 되는 것인지 잘 모르겠습니다. 포스트맨을 이용해 출력해 봤을 때는 JSON 형식으로 나왔는데, 그러면 List 와 Map 으로 응답하는 경우에도 MappingJackson2HttpMessageConverter 가 작동하게 되는 것 인가요? ⬇️ List 리턴 시 ⬇️ Map 리턴 시
안녕하세요 !! 자바 TPC부터 스프1탄, 2탄 등 좋은 강의 잘 보고 있는 학생입니다 ! 항상 좋은 가르침 주셔서 감사드려요 ㅎㅎ 다름이 아니라 해당 자바 기술을 통해 Spring FrameWork 환경에서 채팅 기능을 구현하고자 하는데요.. 아직 초보라서 어떤 객체에 어떤 내용을 담아야 하는지, 화면에 구현할 때 실시간으로 대화가 진행되게 하려면 감이 안오는 상황입니다.. 명령 프롬프트에서가 아닌 웹 뷰 페이지 내에서도 채팅 기능 구현이 가능할까요 ,,? 가능하다면 어떻게 할 수 있을까요 ..? ㅠㅠ 주제에 조금 벗어난 질문일지 모르지만 웹 페이지에서도 구현이 하고 싶어 여쭈었습니다..! 답변 남겨주시면 정말 감사드리겠습니다 ㅠㅠ
항상 영한님 강의를 들으며 공부하는 학생입니다. 좋은 강의를 제공해주셔서 감사합니다. 질문이 하나 있습니다. 강의와 관련된 질문은 아닙니다. 공부를 하다가 문득 저도 작은 프로젝트를 하나 만들어 보고 싶다는 생각을 하게 되었습니다. 그래서 영한님의 로드맵을 어디까지 수강하고 프로젝트를 시작하면 좋을지 기본은 알고 프로젝트를 진행해야 한다고 생각하는데 어디까지가 기본인지 감이 안잡힙니다. 그래서 혹시나 어디까지 강의를 들었다면 부족해도 프로젝트를 진행해도 되는지와 처음 연습 프로젝트는 어떤걸 만들어 보는것이 좋은지 알려주셨으면 좋겠습니다. 감사합니다.
블록체인 고급 프로젝트과정 참여자 모집 공고를 아래와 같이 안내 드리오니, 참여 희망자는 해당 홈페이지로 참가 신청서를 제출하시길 바랍니다. 블록체인 고급 프로젝트과정 > 블록체인 | AI배울랑교_동남권ICT이노베이션스퀘어 ( baeulang.kr ) 조기 신청자가 많기에, 빠른 지원 바랍니다. ※ 경상권 거주자분들은 즉시 신청 가능하며, 타 지역거주자는 신청 전에 오픈카톡으로 문의를 주시기 바랍니다. (경상권 거주자 즉시 참여가능) - 블록체인 훈련과정 문의 [ https://open.kakao.com/o/sctcWywe ] [모집 개요] * 사업명: 블록체인 고급 프로젝트 과정 * 대상인원: 30명 * 모집대상: 블록체인 분야에 관심있는 누구나 / 블록체인 관련 스타트업을 준비하는 사람 * 모집기간: 2022년 08월 17일 ~ 2022년 09월 27일 * 교육기간: 2022년 09월 28일 ~ 2022년 11월 19일 * 교육장소: 경남테크노파크 정보산업진흥본부(봉암동) (실시간 온라인 수강 가능) * 교육내용: 암호기술, 스마트 컨트랙트 및 보안 취약점 사례 분석 등 자세한 내용 첨부파일 참조 * 교육비: 전액 무료 * 수강혜택: 교육비 전액 무료 , 수료증 발급, 블록체인 민간 자격증 응시 기회 제공 [교육 문의 사항] - 블록체인 훈련과정 문의 [ https://open.kakao.com/o/sctcWywe ] - E-MAIL : by.choi@k-abc.com / hi.kang@k-abc.com - 전화번호 : 02 - 6101 - 9956 / 8855 자세한 내용은 블록체인 고급 프로젝트과정 > 블록체인 | AI배울랑교_동남권ICT이노베이션스퀘어 ( baeulang.kr ) 에서 확인하시기 바랍니다. 문의사항이 있으신 경우 연락주시길 바랍니다. 감사합니다.
안녕하세요 선생님 강의 잘보고 있습니다. 지금까지 잘 따라오면서 공부하다 객체오류와 필드 오류에 대해서 궁금한 점이 있어 질문드립니다. 저는 필드 오류에 대해서는 해당 필드하나에서 처리할 수 있는 오류이고 객체 오류에 대해서는 필드 오류에 해당하지 않는 오류들을 말을 하는 것으로 이해 했는데 혹시 제가 이해한 것이 맞을까요?? 그렇다면 타입이 맞지 않아서 생기는 오류는 객체 오류인가요??
맥북 m1에어 사용중인데요 학원에서 패러렐즈로 윈도우환경에서 이클립스 자바8버전 설치해서 사용중입니다 곧 스프링을 들어갈거같아서 미리 예습 차원에서 스프링강의를 들을려고하는데요 강의를 그대로 따라하고싶어서 맥환경에서 인텔리제이와 자바11버전을 설치할려고 합니다 이렇게 설치하면 학원에서 수업들을때 윈도우환경에 이클립스 자바8인데 오류없이 학원수업때 사용할수 있을까요?? 오류날까바 무서워서 아직 강의를 듣지 못하고있습니다ㅜㅜ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 스프링 부트로 몇가지 애플리케이션을 만들어본 경험이 있는데 갑자기 일반 스프링프레임워크를 사용해야될 일이 생겨서 좀 당황스럽습니다. 스프링레거시에 대한 강의가 있는지 궁금합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 이렇게 오류가 발생합니다! "C:\Program Files\Java\jdk-11.0.14\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3.3\lib\idea_rt.jar=59490:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\하늬하루\OneDrive - SangMyung University\바탕 화면\이 찬\스프링\JPA\ex1hellojpa\target\classes;C:\Users\하늬하루\.m2\repository\org\hibernate\hibernate-entitymanager\5.3.10.Final\hibernate-entitymanager-5.3.10.Final.jar;C:\Users\하늬하루\.m2\repository\org\jboss\logging\jboss-logging\3.3.2.Final\jboss-logging-3.3.2.Final.jar;C:\Users\하늬하루\.m2\repository\org\hibernate\hibernate-core\5.3.10.Final\hibernate-core-5.3.10.Final.jar;C:\Users\하늬하루\.m2\repository\org\javassist\javassist\3.23.2-GA\javassist-3.23.2-GA.jar;C:\Users\하늬하루\.m2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar;C:\Users\하늬하루\.m2\repository\org\jboss\jandex\2.0.5.Final\jandex-2.0.5.Final.jar;C:\Users\하늬하루\.m2\repository\com\fasterxml\classmate\1.3.4\classmate-1.3.4.jar;C:\Users\하늬하루\.m2\repository\javax\activation\javax.activation-api\1.2.0\javax.activation-api-1.2.0.jar;C:\Users\하늬하루\.m2\repository\org\dom4j\dom4j\2.1.1\dom4j-2.1.1.jar;C:\Users\하늬하루\.m2\repository\org\hibernate\common\hibernate-commons-annotations\5.0.4.Final\hibernate-commons-annotations-5.0.4.Final.jar;C:\Users\하늬하루\.m2\repository\javax\persistence\javax.persistence-api\2.2\javax.persistence-api-2.2.jar;C:\Users\하늬하루\.m2\repository\net\bytebuddy\byte-buddy\1.9.5\byte-buddy-1.9.5.jar;C:\Users\하늬하루\.m2\repository\org\jboss\spec\javax\transaction\jboss-transaction-api_1.2_spec\1.1.1.Final\jboss-transaction-api_1.2_spec-1.1.1.Final.jar;C:\Users\하늬하루\.m2\repository\com\h2database\h2\2.1.212\h2-2.1.212.jar;C:\Users\하늬하루\.m2\repository\javax\xml\bind\jaxb-api\2.3.0\jaxb-api-2.3.0.jar" hellojpa.JpaMain 7월 14, 2022 12:51:28 오후 org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation INFO: HHH000204: Processing PersistenceUnitInfo [ name: hello ...] 7월 14, 2022 12:51:28 오후 org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core {5.3.10.Final} 7월 14, 2022 12:51:28 오후 org.hibernate.cfg.Environment <clinit> INFO: HHH000206: hibernate.properties not found 7월 14, 2022 12:51:28 오후 org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit> INFO: HCANN000001: Hibernate Commons Annotations {5.0.4.Final} 7월 14, 2022 12:51:29 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!) 7월 14, 2022 12:51:29 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001005: using driver [org.h2.Driver] at URL [jdbc:h2:tcp://localhost/~/test] 7월 14, 2022 12:51:29 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001001: Connection properties: {user=sa} 7월 14, 2022 12:51:29 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001003: Autocommit mode: false 7월 14, 2022 12:51:29 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections <init> INFO: HHH000115: Hibernate connection pool size: 20 (min=1) 7월 14, 2022 12:51:29 오후 org.hibernate.dialect.Dialect <init> INFO: HHH000400: Using dialect: org.hibernate.dialect.H2Dialect Hibernate: drop table Member if exists Hibernate: create table Member ( id bigint not null, name varchar(255), primary key (id) ) 7월 14, 2022 12:51:29 오후 org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@523d6bdb] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode. 7월 14, 2022 12:51:29 오후 org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@74294c1a] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode. 7월 14, 2022 12:51:29 오후 org.hibernate.tool.schema.internal.SchemaCreatorImpl applyImportSources INFO: HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@7479b626' 7월 14, 2022 12:51:30 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl stop INFO: HHH10001008: Cleaning up connection pool [jdbc:h2:tcp://localhost/~/test] 7월 14, 2022 12:51:30 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections close ERROR: Connection leak detected: there are 1 unclosed connections upon shutting down pool jdbc:h2:tcp://localhost/~/test