์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- Vue.js
- GitHub
- Git
- Python
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- MySQL
- springboot
- JPA
- ํด๋ฆฐ์ฝ๋
- java
- ๋กฌ๋ณต
- Spring Boot
- ๊ฐ์ฌ์ค
- H2 ์ค์น
- ์๊ณ ๋ฆฌ์ฆ
- Postman
- spring security
- ์ฝ๋์
- ํด๋ฆฐ ์ฝ๋
- thymeleaf
- ์ค๋ธ์
- Spring
- Gradle
- mariadb
- Codeup
- go
- golang
- ์คํ๋ง
- ํ์ด์ฌ
- ๊ธฐ์ด100์
- Today
- Total
nyximos.log
[Spring] ๋น ์๋ช ์ฃผ๊ธฐ ์ฝ๋ฐฑ ๋ณธ๋ฌธ
๐ถ ๋น ์๋ช ์ฃผ๊ธฐ ์ฝ๋ฐฑ ์์
๊ฐ์ฒด์ ์ด๊ธฐํ์ ์ข ๋ฃ ์์ ํ์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปค๋ฅ์ ํ, ๋คํธ์ํฌ ์์ผ์ฒ๋ผ ์ ํ๋ฆฌ์ผ์ด์ ์์์์ ์ ํ์ํ ์ฐ๊ฒฐ ๋ฏธ๋ฆฌํด๋
- ์ ํ๋ฆฌ์ผ์ด์ ์ข ๋ฃ ์์ ์ ์ฐ๊ฒฐ ๋ชจ๋ ์ข ๋ฃ
์คํ๋ง ๋น์ ๋ผ์ดํ ์ฌ์ดํด
๊ฐ์ฒด ์์ฑ → ์์กด๊ด๊ณ ์ฃผ์ (๋ฐ์ดํฐ ์ฌ์ฉํ ์ ์๋ ์ค๋น ์๋ฃ)
๊ฐ๋ฐ์๋ ์์กด๊ด๊ณ ์ฃผ์ ์ด ์๋ฃ๋ ์์ ์ ์ด๊ธฐํ ์์ ์ ํธ์ถํด์ผ ํ๋ค.
์คํ๋ง์ ์คํ๋ง ๋น์๊ฒ ์ฝ๋ฐฑ ๋ฉ์๋๋ฅผ ํตํด ์ด๊ธฐํ ์์ ์ ์๋ ค์ฃผ๊ณ ๊ณผ ์ข ๋ฃ ์ง์ ์๋ฉธ ์ฝ๋ฐฑ์ ์ค๋ค!
์คํ๋ง ๋น์ ์ด๋ฒคํธ ๋ผ์ดํ ์ฌ์ดํด
์คํ๋ง ์ปจํ ์ด๋ ์์ฑ → ์คํ๋ง ๋น ์์ฑ → ์์กด๊ด๊ณ ์ฃผ์ → ์ด๊ธฐํ ์ฝ๋ฐฑ → ์ฌ์ฉ → ์๋ฉธ์ ์ฝ๋ฐฑ → ์คํ๋ง ์ข ๋ฃ
๐ ์ด๊ธฐํ ์ฝ๋ฐฑ
๋น์ด ์์ฑ๋๊ณ , ๋น์ ์์กด๊ด๊ณ ์ฃผ์ ์ด ์๋ฃ๋ ํ ํธ์ถ
๐์๋ฉธ์ ์ฝ๋ฐฑ
๋น์ด ์๋ฉธ๋๊ธฐ ์ง์ ์ ํธ์ถ
์คํ๋ง๋น์ 3๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ๋น ์๋ช ์ฃผ๊ธฐ ์ฝ๋ฐฑ์ ์ง์ํ๋ค.
- ์ธํฐํ์ด์ค InitializingBean, DisposableBean
- ์ค์ ์ ๋ณด์ ์ด๊ธฐํ ๋ฉ์๋, ์ข ๋ฃ ๋ฉ์๋ ์ง์
- @PostConstruct, @PreDestroy ์ ๋ ธํ ์ด์ ์ง์
๐คนโ๏ธ ์ธํฐํ์ด์ค InitializingBean, DisposableBean
๐ InitializingBean
afterPropertiesSet() ๋ฉ์๋๋ก ์ด๊ธฐํ๋ฅผ ์ง์ํ๋ค.
๐ DisposableBean
destroy() ๋ฉ์๋๋ก ์๋ฉธ์ ์ง์ํ๋ค.
๋จ์
- ์ด ์ธํฐํ์ด์ค๋ ์คํ๋ง ์ ์ฉ ์ธํฐํ์ด์ค๋ผ์ ์ฝ๋๊ฐ ์คํ๋ง ์ ์ฉ ์ธํฐํ์ด์ค์ ์์กดํ๋ค.
- ์ด๊ธฐํ, ์๋ฉธ ๋ฉ์๋์ ์ด๋ฆ์ ๋ณ๊ฒฝํ ์ ์๋ค.
- ๋ด๊ฐ ์ฝ๋๋ฅผ ๊ณ ์น ์ ์๋ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ์ฉํ ์ ์๋ค.
→ ์ต๊ทผ์๋ ๊ฑฐ์ ์ฌ์ฉํ์ง ์์!
๐คนโ๏ธ ๋น ๋ฑ๋ก ์ด๊ธฐํ, ์๋ฉธ ๋ฉ์๋ ์ง์
์ค์ ์ ๋ณด์ @Bean(initMethod="init", destroyMethod="close") ์ฒ๋ผ ์ด๊ธฐํ, ์๋ฉธ ๋ฉ์๋ ์ง์
์ค์ ์ ๋ณด ์ฌ์ฉ ํน์ง
- ๋ฉ์๋ ์ด๋ฆ์ ์์ ๋กญ๊ฒ ์ค ์ ์๋ค.
- ์คํ๋ง ๋น์ด ์คํ๋ง ์ฝ๋์ ์์กดํ์ง ์๋๋ค.
- ์ฝ๋๊ฐ ์๋๋ผ ์ค์ ์ ๋ณด๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ฝ๋๋ฅผ ๊ณ ์น ์ ์๋ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์๋ ์ด๊ธฐํ, ์ข ๋ฃ ๋ฉ์๋๋ฅผ ์ ์ฉํ ์ ์๋ค.
์ข ๋ฃ ๋ฉ์๋ ์ถ๋ก
- @Bean์ destroyMethod ์์ฑ์๋ ํน๋ณํ ๊ธฐ๋ฅ์ด ์๋ค.
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋๋ถ๋ถ close, shutdown์ด๋ผ๋ ์ด๋ฆ์ ์ข ๋ฃ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
- @Bean์ destroyMethod๋ ๊ธฐ๋ณธ๊ฐ์ด inferred(์ถ๋ก )์ผ๋ก ๋ฑ๋ก๋์ด ์๋ค.
- inferred ๊ธฐ๋ฅ์ close, shutdown์ด๋ผ๋ ์ด๋ฆ์ ๋ฉ์๋๋ฅผ ์๋์ผ๋ก ํธ์ถํด์ค๋ค. →์ข ๋ฃ ๋ฉ์๋๋ฅผ ์ถ๋ก ํ์ฌ ํธ์ถ
- ์ง์ ์คํ๋ง ๋น์ผ๋ก ๋ฑ๋กํ๋ฉด ์ข ๋ฃ ๋ฉ์๋๋ฅผ ์ ์ด์ฃผ์ง ์์๋ ์ ๋์ํ๋ค.
- destroyMethod="" : ๋น๊ณต๋ฐฑ ์ง์ ํ ์ ์ถ๋ก ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ง ์๋๋ค๋ ๋ป
๐คนโ๏ธ ์ ๋ ธํ ์ด์ @PostConstruct, @PreDestroy
@PostConstruct, @PreDestroy๋ฅผ ์ฌ์ฉํ์ฌ ํธ๋ฆฌํ๊ฒ ์ด๊ธฐํ์ ์ข ๋ฃ ์คํํ๋ค.
ํน์ง
- ์ต์ ์คํ๋ง์์ ๊ถ์ฅํ๋ ๋ฐฉ๋ฒ์ด๋ค.
- ์ ๋ ธํ ์ด์ ๋ง ๋ถ์ฌ์ ํธ๋ฆฌํ๋ค.
- ํจํค์ง - javax.annotation.PostConstruct
→ JSR-250์ด๋ผ๋์๋ฐ ํ์ค ๐โ๏ธ ์คํ๋ง ์ข ์๐ โ๏ธ
→์คํ๋ง์ด ์๋ ๋ค๋ฅธ ์ปจํ ์ด๋์์๋ ๋์ - ์ปดํฌ๋ํธ ์ค์บ์ด๋ ์์ด์ธ๋ฆฐ๋ค.
- ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ์ฉํ์ง ๋ชปํ๋ค.
- ์ธ๋ถ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ด๊ธฐํ, ์ข ๋ฃํด์ผํ ์ @Bean์ initMethod, destroyMethod ์ฌ์ฉํ์!
์ฐธ์กฐ
๊น์ํ, ์คํ๋ง ํต์ฌ ์๋ฆฌ - ๊ธฐ๋ณธํธ https://inf.run/ryWP
'Programming > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring] ์น ์ ํ๋ฆฌ์ผ์ด์ ์ดํด (0) | 2022.02.03 |
---|---|
[Spring] ๋น ์ค์ฝํ (0) | 2022.01.27 |
[Spring] ๋ค์ํ ์์กด๊ด๊ณ ์ฃผ์ ๋ฐฉ๋ฒ (0) | 2022.01.14 |
[Spring] ์ฑ๊ธํค ์ปจํ ์ด๋๋? (1) | 2022.01.13 |
[Spring] ์ปดํฌ๋ํธ ์ค์บ๊ณผ @Autowired (2) | 2022.01.12 |