๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Spring

[Spring MVC ํ”„๋กœ์ ํŠธ ๋ฆฌํŒฉํ† ๋ง] 2. SqlSessionFactory -> SqlSessionTemplate

by LasBe 2022. 4. 28.
๋ฐ˜์‘ํ˜•

๐Ÿ“„ ๊ด€๋ จ ๊ธ€


 

 

 

โšก๏ธ๋ฆฌํŒฉํ† ๋ง Before -> After


๐Ÿ“Œ Before

 

์Šคํ”„๋ง์—์„œ SqlSessionFactory ๊ฐ์ฒด๋กœ MyBatis๋ฅผ ์—ฐ๋™ํ•ด ์‚ฌ์šฉ์ค‘์ด์—ˆ์Šต๋‹ˆ๋‹ค.

 

 

์ฟผ๋ฆฌ ์‚ฌ์šฉ ์‹œ ์„ธ์…˜์„ ์ƒ์„ฑํ•˜๊ณ  close ํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ๋ฐ˜๋ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 


๐Ÿ“Œ After

 

์Šคํ”„๋ง์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ SqlSessionFactoryBean๊ณผ SqlSessionTemplate์„

dispatcher-servlet.xml์—์„œ ๋นˆ ๋“ฑ๋ก๊ณผ ์˜์กด์„ฑ ์ฃผ์ž…์„ ํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

 

 

Dao ํŒŒ์ผ์—์„œ SqlSessionTemplate ๋นˆ์„ ์ฃผ์ž…ํ•ด์ฃผ์—ˆ๊ณ 

์„ธ์…˜ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ณ  ๋‹ซ๋Š” ์ค‘๋ณต ์ฝ”๋“œ๋“ค์„ ์ •๋ฆฌํ•จ์œผ๋กœ์จ ์ž์›์˜ ์ ˆ์•ฝ๊ณผ ๊ฐ€๋…์„ฑ์„ ์ฑ™๊ฒผ์Šต๋‹ˆ๋‹ค.

 

(ํŽธ์•ˆ)

 

 

 

โšก๏ธ๋ฆฌํŒฉํ† ๋ง ์ด์œ 


๐Ÿ“Œ SqlSessionFactory์™€ SqlSessionTemplate ์ฐจ์ด

MyBatis์—์„œ๋Š” SqlSession์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด SqlSessionFactory๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

 

์ด๋Š” ๊ธฐ๋ณธ์ ์ธ ์„ธ์…˜๋งŒ ์ƒ์„ฑํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ธ์…˜ ์‚ฌ์šฉ ํ›„ ๋‹ซ์•„์ฃผ๋Š” ๋“ฑ,

๊ด€๋ฆฌํ•ด์•ผ ํ•˜๊ณ  ์ค‘๋ณต๋˜๋Š” ์ฝ”๋“œ๊ฐ€ ๋Š˜์–ด๋‚˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

Spring์—์„œ๋Š” MyBatis์™€ ์—ฐ๋™ํ•˜๊ธฐ ์œ„ํ•ด SqlSessionFactoryBean๊ณผ SqlSessionTemplate์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋ฅผ ์ด์šฉํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ์Šคํ”„๋ง ํŠธ๋žœ์ ์…˜ ์„ค์ •์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ์ปค๋ฐ‹๊ณผ ๋กค๋ฐฑ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

๋˜ํ•œ ๊ธฐ์กด ์„ธ์…˜์€ Thread-Safe๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์•„ ์š”์ฒญ๋งˆ๋‹ค ๊ฐ์ฒด ์ƒ์„ฑ๊ณผ close๋ฅผ ํ•ด์ฃผ์–ด์•ผํ•˜๋Š” ๋ฐ˜๋ฉด,

SqlSessionTemplate๋Š” ๊ทธ๋Ÿดํ•„์š” ์—†์ด Thread-Safe๋ฅผ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์ž… ํ•œ๋ฒˆ์œผ๋กœ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

 

์ด๋Š” ์ปค๋„ฅ์…˜ ํ’€(DBCP)์™€๋„ ๊ด€๋ จ์ด ๋˜์–ด์žˆ๋Š”๋ฐ ์ด ๋ถ€๋ถ„์€ ์•„์ง ๊นŠ๊ฒŒ ๊ณต๋ถ€ํ•˜์ง€ ์•Š์•„ ๋” ์ฐพ์•„๋ณผ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€


์˜คํ”ˆ ์ฑ„ํŒ