Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 톰캣 실시간 로그
- tomcat log
- katalon 비교
- js 자동완성
- 한국투자증권 양도세 신고
- 피보나치함수
- 재귀 예제
- 최대공약수 예제
- CSTS 폭포수 모델
- java.sql.SQLSyntaxErrorException
- 해외주식 양도세 신고
- 테스트 자동화
- 해외증권 양도세 한국투자증권
- 피보나치함수 예제
- 재귀함수 예제
- katalon
- katalon 사용법
- git 연동
- 주식 양도세 신고방법
- katalon xpath
- javascript 자동완성
- recursion example
- oracle group by
- 피보나치 예제
- 한국투자증권 해외주식 양도세
- bfs 미로탐색 java
- 홈택스 해외주식 양도세
- Katalon Recorder 사용법
- katalon 자동화
- 국세청 해외주식 양도세 신고방식
Archives
- Today
- Total
엄지월드
스프링 부트의 자동 리소스 등록 본문
데이터소스 - 자동 등록
- 스프링 부트는 데이터소스(DataSource)를 스프링 빈에 자동으로 등록한다.
- 자동으로 등록되는 스프링 빈 이름 : `dataSource`
- 참고로 개발자가 직접 데이터소스를 빈으로 등록하면 스프링 부트는 데이터소스를 자동으로 등록하지 않는다.
이때 스프링 부트는 다음과 같이 `application.properties`에 있는 속성을 사용해서 DataSource를 생성한다. 그리고 스프링 빈에 등록한다.
spring.datasource.url=jdbc:h2:tcp://localhost/~/test
spring.datasource.username=sa
spring.datasource.password=
- 스프링 부트가 기본으로 생성하는 데이터소스는 커넥션풀을 제공하는 `HikariDataSource`이다. 커넥션 풀과 관련된 설정도 `application.properties`를 통해서 지정할 수 있다.
- spring.datasource.url 속성이 없으면 내장 데이터베이스(메모리 DB)를 생성하려고 시도한다.
트랜잭션 매니저 - 자동 등록
- 스프링 부트는 적절한 트랜잭션 매니저(`PlatformTransactionManager`)를 자동으로 스프링 빈에 등록한다.
- 자동으로 등록되는 스프링 빈 이름: `transactionManager`
- 참고로 개발자가 직접 트랜잭션 매니저를 빈으로 등록하면 스프링 부트는 트랜잭션 매니저를 자동으로 등록하지 않는다.
- 어떤 트랜잭션 매니저를 선택할지는 현재 등록된 라이브러리를 보고 판단하는데, JDBC 기술을 사용하면
`DataSourceTransactionManager`를 빈으로 등록하고, JPA를 사용하면 `JpaTransactionManager`를 빈으로 등록한다. 둘다 사용하는 경우 `JpaTransactionManager`를 등록한다. 참고로 `JpaTransactionManager`는 `DataSourceTransactionManager`가 제공하는 기능도 대부분 지원한다.
@Slf4j
@SpringBootTest
class MemberService_Test {
@TestConfiguration
static class TestConfig {
private final DataSource dataSource;
public TestConfig(DataSource datasource) {
this.dataSource = dataSource;
}
@Bean
MemberRepository memberRepository() {
return new MemberRepositry(datasSource);
}
@Bean
MemberService memberService() {
return new MemberService(memberRepository());
}
}
}
- 데이터소스와 트랜잭션 매니저를 스프링 빈으로 등록하는 코드가 생략되었다. 따라서 스프링 부트가 `application.properties`에 지정된 속성을 참고해서 데이터소스와 트랜잭션 매니저를 자동으로 생성해준다.
- 코드에서 보는 것처럼 생성자를 통해서 스프링 부트가 만들어준 데이터소스 빈을 주입 받을 수도 있다.
'java > Spring' 카테고리의 다른 글
Spring Boot 버전 낮추는 방법(3 -> 2.7.5) (0) | 2024.05.01 |
---|---|
Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. (0) | 2024.04.28 |
jUnit Spring 빈 주입 @TestConfiguration (0) | 2024.04.23 |
트랜잭션 프록시 (0) | 2024.04.23 |
템플릿 콜백 패턴 (0) | 2024.04.23 |
Comments