Spring/Spring DB

[μŠ€ν”„λ§ DB 1편] - 11. μŠ€ν”„λ§ λΆ€νŠΈμ˜ μžλ™ λ¦¬μ†ŒμŠ€ 등둝

hello_u 2023. 3. 25. 18:10

 

 

μŠ€ν”„λ§ λΆ€νŠΈκ°€ λ“±μž₯ν•˜κΈ° μ΄μ „μ—λŠ” λ°μ΄ν„°μ†ŒμŠ€μ™€ νŠΈλžœμž­μ…˜ λ§€λ‹ˆμ €λ₯Ό κ°œλ°œμžκ°€ 직접 μŠ€ν”„λ§ 빈으둜 λ“±λ‘ν•΄μ„œ μ‚¬μš©ν–ˆλ‹€.

  

@Bean
DataSource dataSource() {
   return new DriverManagerDataSource(URL, USERNAME, PASSWORD);
}

@Bean
PlatformTransactionManager transactionManager() {
   return new DataSourceTransactionManager(dataSource());
}

 

λ°μ΄ν„°μ†ŒμŠ€μ™€ νŠΈλžœμž­μ…˜ λ§€λ‹ˆμ €λ₯Ό 직접 μŠ€ν”„λ§ 빈으둜 등둝

 

μŠ€ν”„λ§ λΆ€νŠΈκ°€ λ‚˜μ˜€λ©΄μ„œ λ§Žμ€ 뢀뢄이 μžλ™ν™”λ˜μ—ˆλ‹€.

 

 

λ°μ΄ν„°μ†ŒμŠ€(DataSource) - μžλ™ 등둝

 

μŠ€ν”„λ§ λΆ€νŠΈλŠ” λ°μ΄ν„°μ†ŒμŠ€( DataSource )λ₯Ό μŠ€ν”„λ§ λΉˆμ— μžλ™μœΌλ‘œ λ“±λ‘ν•œλ‹€.

 

μžλ™μœΌλ‘œ λ“±λ‘λ˜λŠ” μŠ€ν”„λ§ 빈 이름: dataSource

 

application.properties

spring.datasource.url=jdbc:h2:tcp://localhost/~/test
spring.datasource.username=sa
spring.datasource.password=

 

μŠ€ν”„λ§ λΆ€νŠΈλŠ” λ‹€μŒκ³Ό 같이 application.properties μ— μžˆλŠ” 속성을 μ‚¬μš©ν•΄μ„œ DataSource λ₯Ό μƒμ„±ν•œλ‹€. κ·Έλ¦¬κ³  μŠ€ν”„λ§ λΉˆμ— λ“±λ‘ν•œλ‹€.

 

 

 

νŠΈλžœμž­μ…˜ λ§€λ‹ˆμ €(transactionManager) - μžλ™ 등둝

 

μŠ€ν”„λ§ λΆ€νŠΈλŠ” μ μ ˆν•œ νŠΈλžœμž­μ…˜ λ§€λ‹ˆμ €( PlatformTransactionManager )λ₯Ό μžλ™μœΌλ‘œ μŠ€ν”„λ§ λΉˆμ— λ“±λ‘ν•œλ‹€.


μžλ™μœΌλ‘œ λ“±λ‘λ˜λŠ” μŠ€ν”„λ§ 빈 이름: transactionManager


 

μ–΄λ–€ νŠΈλžœμž­μ…˜ λ§€λ‹ˆμ €λ₯Ό μ„ νƒν• μ§€λŠ” ν˜„μž¬ λ“±λ‘λœ 라이브러리λ₯Ό 보고 νŒλ‹¨ν•˜λŠ”λ°,

 

JDBCλ₯Ό κΈ°μˆ μ„ μ‚¬μš©ν•˜λ©΄ DataSourceTransactionManager λ₯Ό 빈으둜 λ“±λ‘ν•˜κ³ ,

 

JPAλ₯Ό μ‚¬μš©ν•˜λ©΄ JpaTransactionManager λ₯Ό 빈으둜 λ“±λ‘ν•œλ‹€.

 

λ‘˜λ‹€ μ‚¬μš©ν•˜λŠ” 경우 JpaTransactionManager λ₯Ό λ“±λ‘ν•œλ‹€.

 

참고둜 JpaTransactionManager λŠ” DataSourceTransactionManager κ°€ μ œκ³΅ν•˜λŠ” κΈ°λŠ₯도 λŒ€λΆ€λΆ„ μ§€μ›ν•œλ‹€.

 

 

 

정리

 

λ°μ΄ν„°μ†ŒμŠ€μ™€ νŠΈλžœμž­μ…˜ λ§€λ‹ˆμ €λ₯Ό μŠ€ν”„λ§ 빈으둜 λ“±λ‘ν•˜λŠ” μ½”λ“œκ°€ μƒλž΅λ˜μ—ˆλ‹€.

 

 λ”°λΌμ„œ μŠ€ν”„λ§ λΆ€νŠΈκ°€ application.properties μ— μ§€μ •λœ 속성을 μ°Έκ³ ν•΄μ„œ λ°μ΄ν„°μ†ŒμŠ€μ™€ νŠΈλžœμž­μ…˜ λ§€λ‹ˆμ €λ₯Ό μžλ™μœΌλ‘œ 생성해쀀닀.

 

 

λ°μ΄ν„°μ†ŒμŠ€μ™€ νŠΈλžœμž­μ…˜ λ§€λ‹ˆμ €λŠ” μŠ€ν”„λ§ λΆ€νŠΈκ°€ μ œκ³΅ν•˜λŠ” μžλ™ 빈 등둝 κΈ°λŠ₯을 μ‚¬μš©ν•˜λŠ” 것이 νŽΈλ¦¬ν•˜λ‹€.

 

μΆ”κ°€λ‘œ application.properties λ₯Ό 톡해 섀정도 νŽΈλ¦¬ν•˜κ²Œ ν•  수 μžˆλ‹€.

 

 

 

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-db-1/dashboard

 

μŠ€ν”„λ§ DB 1편 - 데이터 μ ‘κ·Ό 핡심 원리 - μΈν”„λŸ° | κ°•μ˜

λ°±μ—”λ“œ κ°œλ°œμ— ν•„μš”ν•œ DB 데이터 μ ‘κ·Ό κΈ°μˆ μ„ κΈ°μ΄ˆλΆ€ν„° μ΄ν•΄ν•˜κ³ , μ™„μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μŠ€ν”„λ§ DB μ ‘κ·Ό 기술의 원리와 ꡬ쑰λ₯Ό μ΄ν•΄ν•˜κ³ , 더 κΉŠμ΄μžˆλŠ” λ°±μ—”λ“œ 개발자둜 μ„±μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€., - κ°•μ˜

www.inflearn.com