Bean์ด ๋ญ์?
newํด์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๊ฒ ์๋ Spring์ด ๊ด๋ฆฌํด์ฃผ๋ ๊ฐ์ฒด์
Bean ์๋ช ์ฃผ๊ธฐ
์คํ๋ง ์ปจํ ์ด๋๊ฐ Bean์ ์์ฑํ๊ณ ์์กด์ฑ์ ๋ฃ๊ณ ์ด๊ธฐํํ์ฌ ์ฌ์ฉํ ํ ์๋ฉธ ์ํค๋ ์ผ๋ จ์ ๊ณผ์
- ์์ฑ Create - Spring์ด ๋น ๊ฐ์ฒด๋ฅผ new ๋ก ๋ง๋ฆ
- ์์กด์ฑ ์ฃผ์ DI - ํ์ํ ์๋ฃ๋ ๊ตฌ์ฑ์์๋ฅผ ๋ฃ์ด์ค
- ์ต์ ํ Initialize - ์ฌ์ฉํ ์ค๋น๋ฅผ ํจ
- ์ฌ์ฉ use - ๋น์ฆ๋์ค ๋ก์ง ์คํ
- ์๋ฉธ Destroy - ์ ํ๋ฆฌ์ผ์ด์ ์ข ๋ฃ ์ ์ ๋ฆฌ
์ค์ ์ฝ๋๋ก ๋ณด๋ ์๋ช ์ฃผ๊ธฐ
@Component
public class MyService{
public MyService(){
System.out.println("1. ์์ฑ์ ํธ์ถ -> Bean ๊ฐ์ฒด ์์ฑ");
}
@PostContstruct // ์ด๊ธฐํ
public void init(){
System.out.println("2. ์ด๊ธฐํ ๋จ๊ณ -> ํ์ํ ์์ ์ฐ๊ฒฐ");
}
@PreDestroy // ์๋ฉธ
public void destroy(){
System.out.println("3. ์๋ฉธ ๋จ๊ณ -> ์์ ๊ด๋ฆฌ");
}
}
์คํ๋ง์ด ์ด๊ธฐํ/์๋ฉธ ๊ฐ์งํ๋ ๋ฐฉ๋ฒ
@PostConstruct, @PreDestroy - ๋ฉ์๋์ ์ด๋ ธํ ์ด์ ๋ถ์
์ ์ค์ํ ๊น?
์์ฑ → ์ด๊ธฐํ → ์ฌ์ฉ → ์๋ฉธ ๊ณผ์ ์ค ์ด๊ธฐํ์ ์๋ฉธ ๋จ๊ณ๊ฐ ํนํ ์ค์ํด ๋ณด์
DB์ฐ๊ฒฐ, Socket, Redis ๋ฑ ์ธ๋ถ ์์ ์ฐ๊ฒฐ์ด ๋ฑ์ฅํ๋๋ฐ,,,
Bean์ ๊ฐ์ฒด
์ธ๋ถ ์์์ ์๋ฒ ๋ฐ์ ์๋ ๋ฌด๊ฑฐ์ด ๊ฒ(DB, Redis)
@PostConstruct // Bean ์ด๊ธฐํ ๋จ๊ณ
public void connect(){
// DB ์ฐ๊ฒฐ ์ฝ๋๋ฅผ ์ฌ๊ธฐ์ ๋ฃ์
}
@PreDestroy // Bean ์๋ฉธ ๋จ๊ณ
public void close(){
// DB ์ฐ๊ฒฐ์ ๋ซ๋ ์ฝ๋
}
์ฌ๊ธฐ์ ์ด๊ธฐํ ๋จ๊ณ๋ ๋ฆฌ์์ค๋ฅผ ์ฐ๊ฒฐํ๋ ์ผ
์๋ฉธ ๋จ๊ณ๋ ๋ฆฌ์์ค๋ฅผ ์ ๋ฆฌํ๋ ์ผ์ ๋งํ๋ค
์ฐ๊ฒฐ/์ ๋ฆฌ ์ฆ, ์์ ๊ณผ ๊ด๋ จ์ด ์์ด๋ณด์
DB ์ปค๋ฅ์ ์ ์ด๊ณ @PostConstruct, ์ ํ๋ฆฌ์ผ์ด์ ๋๋ ๋ ๋ซ์์ฃผ๋ @PreDestroy ์์ ์ ํ ์ ์๋ ๊ฒ
๋ง์ฝ ์ด๊ฑธ ์ํ๋ฉด?
- ์ปค๋ฅ์ ์ด ๋ซํ์ง ์์
- ๋ฉ๋ชจ๋ฆฌ์ ์ปค๋ฅ์ ๋์ ๋ฐ์
- ์๋ฒ ํญํ
๋ฐ๋ผ์ Bean ์๋ช ์ฃผ๊ธฐ๊ฐ ์ค์ํ ์ด์ ๋ ๊ด๋ฆฌํด์ผ ํ ์ธ๋ถ ์์์ ์ฐ๊ฒฐ/ ์ ๋ฆฌ ์์ ์ ์ ์ ์๊ธฐ ๋๋ฌธ
์ปค๋ฅ์ ์ด๋?
์๋ฒ๊ฐ ๋ค๋ฅธ ์์คํ (DB/Redis/์์ผ ๋ฑ)๊ณผ ํต์ ํ๊ธฐ ์ํด ๋ง๋๋ ํต๋ก
๋ฐ์ดํฐ๊ฐ ์ค๊ฐ ์ ์๋๋ก ์ฐ๊ฒฐ๋ ์ํ
ํ์ํ ์ด์ ๋?
DB๋ Redis๊ฐ์ ์ธ๋ถ ์ ์ฅ์์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ ค๋ฉด ๊ทธ ์์คํ ๊ณผ ์ํตํ ๋ฐฉ๋ฒ์ด ์์ด์ผ ํจ
๋ฐ์ดํฐ ๋ฌ๋ผ๊ณ ๋งํ ๊ธธ์ด ์์ด์ผ ํ๋๋ฐ ๊ทธ ๊ธธ์ด connection
๋ ์๋ฌธ, ์ธ์คํด์คํ ๋ ๊ฐ์ฒด๋ Bean์ธ๊ฐ? - X
private Service service = new Service();
์ด๊ฒ์ ๋จ์ํ ๊ฐ๋ฐ์๊ฐ ์ง์ new๋ก ๋ง๋ ๊ฐ์ฒด = ์ผ๋ฐ ๊ฐ์ฒด
Bean ์๋
@Service
public class Service{}
์ด๊ฒ Bean.
์ ํํ ๋งํ๋ฉด Spring container๊ฐ ์์ฑํ ๊ฐ์ฒด
๋ฐ๋ผ์
- @PostConstruct๋ ๋ฆฌ์์ค๋ฅผ ์ฐ๊ฒฐํ๋ ์ด๊ธฐํ ๋จ๊ณ
- @PreDestroy๋ ๋ฆฌ์์ค๋ฅผ ์ ๋ฆฌํ๋ ์๋ฉธ๋จ๊ณ์ ํด๋น๋๋ค ์์ฑ→์์กด์ฑ์ฃผ์ →์ด๊ธฐํ→์ฌ์ฉ→์๋ฉธ ์ ๊ณผ์ ์ ๊ฑฐ์น๋ค
- ์คํ๋ง Bean ์์ฑ์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ๋ ๋ชฉ์ : ๊ฐ์ฒด๋ฅผ ์ฑ๊ธํค์ผ๋ก ์ ์งํ๊ณ ์ด๊ธฐํ/์๋ฉธ ํ์ด๋ฐ์ ์ ์ดํ๊ธฐ ์ํจ์ด๋ค
'Backend > ๐ฑ Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| GlobalException & ErrorException (0) | 2026.01.12 |
|---|---|
| MVC(ModelโViewโController) (0) | 2026.01.12 |
| [Spring]API ๋ก๊น (0) | 2025.08.21 |
| [Spring]ํ์ผ๊ตฌ์กฐ (์ค์) (0) | 2025.07.29 |
| [Spring]Filter (0) | 2025.07.29 |