EEALL@ONCE
๐ฑ BeanFactory๔งฌ& ApplicationContext ๋ณธ๋ฌธ
๋ ๊ฐ๋ฅผ ๊ตฌ๋ถํ๊ธด ์ข ์ด๋ ต๋ค. ์๋๋ฉด, ๋ณดํต BeanFactory๋ฅผ ๋ฐ๋ก ์ฐ๊ธฐ๋ณด๋จ, BeanFactory๋ฅผ ์์ํ ApplicationContext๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ด๋ค.
๋ ๋ค ์คํ๋ง ์ปจํ ์ด๋๋ผ๊ณ ๋ถ๋ฅด๊ธด ํ๋ค.
1. BeanFactory
(1) ์คํ๋ง ์ปจํ ์ด๋์ ์ต์์ ์ธํฐํ์ด์ค
(2) ์คํ๋ง ๋น์ ๊ด๋ฆฌํ๊ณ ์กฐํํ๋ ์ญํ ์ ๋ด๋น.
(3) getBean()์ ์ ๊ณต
2. Application Context
(1) BeanFactory ๊ธฐ๋ฅ์ ๋ชจ๋ ์์๋ฐ์์ ์ ๊ณต
(2) ๋น ํํ ๋ฆฌ๊ฐ ์ ๊ณต ํ์ง ์๋ ๋ถ๊ฐ๊ธฐ๋ฅ์ ์ ๊ณต
- MessageSource : ๊ฐ ์ธ์ด๋ฅผ ๋ค์ด์ค๋ ๊ฐ๋๋ก ์ถ๋ ฅ
๊ตญ์ ํ(i18n)์ ์ง์ญํ(l10n)๋ฅผ ์ํด ์ฌ์ฉ๋๋ฉฐ, ์ฌ์ฉ์์ ๋ก์ผ์ผ์ ๋ฐ๋ผ ๋ค๋ฅธ ์ธ์ด๋ก ๋ฉ์์ง๋ฅผ ํ์ํ ์ ์๋๋ก ๋์์ค
- EnviromentCapable: ํ๊ฒฝ๋ณ์ - ๋ก์ปฌ/๊ฐ๋ฐ/์ด์ ๋ฑ์ ๊ตฌ๋ถํด์ ์ฒ๋ฆฌํด์ค
- ApplicationEventPublisher: ์ด๋ฒคํธ๋ฅผ ๋ฐํํ๊ณ ๊ตฌ๋ ํ๋ ๋ชจ๋ธ์ ํธ๋ฆฌํ๊ฒ ์ง์
์ด๋ฒคํธ(Events)๋ฅผ ๋ฐํํ๊ณ ์ด๋ฅผ ๊ตฌ๋ ํ๋ ๋ฆฌ์ค๋(Listener)๋ค์๊ฒ ์ ๋ฌ
์ด๋ฒคํธ (Events): ์ด๋ฒคํธ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ด์์ ๋ฐ์ํ๋ ํน์ ์ฌ๊ฑด์ ๋ํ๋ด๋ ๊ฐ์ฒด
๋ฆฌ์ค๋ (Listeners): ๋ฆฌ์ค๋๋ ํน์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ ๋ ์ด๋ฅผ ์์ ํ๊ณ ์ฒ๋ฆฌํ๋ ๊ฐ์ฒด
- ResourceLoader : ํ์ผ, ํด๋์คํจ์ค, ์ธ๋ถ ๋ฑ์์ ๋ฆฌ์์ค๋ฅผ ํธ๋ฆฌํ๊ฒ ์กฐํ
import org.springframework.context.ResourceLoaderAware;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
import org.springframework.stereotype.Component;
@Component
public class MyResourceLoader implements ResourceLoaderAware {
private ResourceLoader resourceLoader;
@Override
public void setResourceLoader(ResourceLoader resourceLoader) {
this.resourceLoader = resourceLoader;
}
public void loadResource(String location) {
// ์ฃผ์ด์ง ์์น์ ํด๋นํ๋ ๋ฆฌ์์ค ๋ก๋
Resource resource = resourceLoader.getResource(location);
// ๋ฆฌ์์ค๋ฅผ ํตํด ์ฝ๊ธฐ ์์
์ํ
try {
// ์์: ํ์ผ ์์คํ
๋ฆฌ์์ค๋ฅผ ์ฝ์ด์ด
File file = resource.getFile();
// ํ์ผ์ ์ฝ๊ฑฐ๋ ์ฒ๋ฆฌํ๋ ๋ก์ง ์์ฑ ๊ฐ๋ฅ
} catch (IOException e) {
// ํ์ผ ์ฝ๊ธฐ ์คํจ ์ ์์ธ ์ฒ๋ฆฌ
}
}
}
'Spring๐ฑ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ฑ๋น ์ค์ ๋ฉํ ์ ๋ณด (0) | 2023.08.19 |
---|---|
๐ฑ ์คํ๋ง ์ปจํ ์ด๋์ ์คํ๋ง ๋น - xml, java ์ค์ (0) | 2023.07.31 |
๐ฑ ์คํ๋ง ๋น ์กฐํ - ์์ ๊ด๊ณ getBean() / getBeansOfType(.class) (0) | 2023.07.29 |
๐ฑ ์คํ๋ง ๋น ์กฐํ - ๊ธฐ๋ณธ / ๋์ผํ ํ์ ์ด ๋ ์ด์ (0) | 2023.07.25 |
๐ฑ ์คํ๋ง ์ปจํ ์ด๋ ์์ฑ (0) | 2023.07.23 |