묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
DataSource 구현체를 변경하는 일이 잦나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]안녕하세요!강의를 듣고 DataSource의 최대 장점이 추상화라고 이해했습니다.사용하는 입장에서는 구현부에 의존하지 않아도 된다는 것인데요.그런데 실무에서는 과연 DataSource 구현체를 갈아끼우는 일이 잦은지 궁금합니다.여러 후보군들 사이에서 HikariCP와 같은 커넥션 풀이 압도적으로 우세하다면, 커넥션 개수와 같은 DataSource 설정을 변경하는 일은 있을 수 있어도 DataSource 구현체 자체를 변경하는 일은 적지 않을까 생각이 들어서요!
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
HikariDataSource 실제 사용법
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.강의에서는 테스트 코드만 있어서 질문 드립니다.히카리 커넥션풀을 이용하는 코드를 작성하려고 하는데 헷갈리는 부분이 있습니다. private final DataSource dataSource;@RequiredArgsConstructor에 의해 DataSource에 히카리 커넥션 풀을 주입받은 상태에서 강의 테스트 코드의 dataSource.setJdbcUrl(URL); dataSource.setUsername(USERNAME); dataSource.setPassword(PASSWORD); dataSource.setMaximumPoolSize(10); dataSource.setPoolName("MyPool");에 해당하는 작업을 어디에서 해야하는 것인지 잘 모르겠습니다.@PostConstructpublic void init() {((HikariDataSource) dataSource).setJdbcUrl(URL); ((HikariDataSource) dataSource).setUsername(USERNAME); ((HikariDataSource) dataSource).setPassword(PASSWORD); ((HikariDataSource) dataSource).setMaximumPoolSize(10); ((HikariDataSource) dataSource).setPoolName("MyPool");}처럼 하는 방법과 생성자에서 같은 작업을 실행하는 방법이 떠오르는데 어느 방법이든 DataSource가 아닌 HikariDataSource에 의존하게 되는 것 같은데 어떻게 해결하면 좋을까요?
-
해결됨토비의 스프링 부트 - 이해와 원리
여러 DataSource 빈 등록 우선순위를 가늠할 수 없었습니다
안녕하세요 토비님. 우선, 감동으로 청강을 이어갈 기회를 얻게되어 참 감사드립니다.아래는 섹션8 - DataSource 자동 구성 클래스 파트의 @Bean 메서드 등록과정에 생긴 문제입니다.의문점은 메서드 선언 순서에 영향을 받는다는것을 알게되서 다음처럼 2번의 테스트를 진행했습니다.@Bean 메서드 선언순서 에 따른 등록 테스트simple , hikarihikari, simple 1 결과: simple 이 등록됨 /* DataSourceConfig.java */ @Bean @ConditionalOnMissingBean public DataSource simpleDriverDataSource() { ... } @Bean @ConditionalOnMissingBean @ConditionalMyOnClass("com.zaxxer.hikari.HikariDataSource") public DataSource hikariDataSource() { ... }hikari 에 `@ConditionalMyOnClass` 가 있기때문에 등록될 것으로 예상했지만, simple 이 등록되었습니다. 2 결과: hikari 가 등록됨 @Bean @... public DataSource hikariDataSource() { ... } @Bean @... public DataSource simpleDriverDataSource() { ... } 기묘하게도 @Bean 메서드 선언순서를 바꾸니 Hikari 빈이 등록되었습니다. 이상하다 싶어, @Primary 와 @Order(n) 을 주고 다시 테스트 해봤지만, 영향을 주지 않았습니다. 질문: 위와 같이 @Bean 메서드 순서에 영향을 받는 이유가 궁금합니다.이 결과로 @ConditionalOnClass 의 인식되는 FQCN 의 조건을 바꿔보기도 하고, 위치도 바꿔봤는데, 이렇다할 동작방식을 파악하기 힘들었습니다.그리고 @Primay 나 @Order 를 붙여가며 추가적인 등록순서에 대해 테스트를 진행했으나, 이것들 역시 영향을 주지 않았습니다.여러 곳에서 알아본 바, @Bean 메서드는 등록순서에 영향을 주지 않는것으로 알고있었는데, 이런 경우에는 어떤 매커니즘이 동작하는지가 궁금합니다. 이 결과를 보고 생각에 혼란이 와서 질문을 드리게 되었어요. 혹시 제가 놓친것이 있다면 조언을 부탁드려도 되겠습니까? 읽어주셔서 감사합니다☺️
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
DataSource 개념이 잘 이해가 되지 않습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]SpringConfig.java의 DataSource dataSource 필드의 개념이 잘 이해가 되지 않습니다. 혹시 자세하게 더 알려주실 수 있나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
db 설정 datasource 를 springboot application 시작후 사용자 입력
사용자에게 datasource 를 입력 받도록 할 수 있을까요? springboot application 이 시작하기 전에 db 관련 된 정보를 저장해 두는데 사용자에게 화면 UI 제공한 다음 입력 받아서 db 를 사용하도록 할 수 있나요?