Spring

Spring ๊ธฐ๋ณธ [์Šคํ”„๋ง๋นˆ ์กฐํšŒ]

DAHLIA CHOI 2021. 7. 9. 21:55

 

์Šคํ”„๋ง ๋นˆ ์กฐํšŒ๋Š” ์กฐํšŒํ•˜๋Š” ๋ฒ•๋งŒ ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•˜๋Š” ์šฉ๋„๋กœ๋งŒ ํฌ์ŠคํŒ… ํ•ด์•ผ๊ฒ ๋‹ค.

 


[ ๋ชจ๋“  ๋นˆ ์ถœ๋ ฅ ]

โž– applicationContext.getBeanDefinitionNames(); : ์Šคํ”„๋ง์— ๋“ฑ๋ก๋œ ๋ชจ๋“  ๋นˆ ์ด๋ฆ„์„ ์กฐํšŒํ•œ๋‹ค. 

โž– applicationContext.getBean(); : ๋นˆ ์ด๋ฆ„์œผ๋กœ ๋œ ๋นˆ ๊ฐ์ฒด๋ฅผ ์กฐํšŒํ•œ๋‹ค.

 

[ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋นˆ ์ถœ๋ ฅ ]

โž– .getRole()์„ ์‚ฌ์šฉํ•˜๋ฉด ์Šคํ”„๋ง ๋‚ด๋ถ€์—์„œ ์ด์šฉํ•˜๋Š”๊ฑด์ง€ ์‚ฌ์šฉ์ž๊ฐ€ ๋“ฑ๋กํ•œ ๋นˆ์ธ์ง€ ํ™•์ธํ•ด์ฃผ๋Š” ์—ญํ• ์ด๋‹ค.

โž– ROLE_APPLICATION : ์‚ฌ์šฉ์ž๊ฐ€ ์ •์˜ํ•œ ๋นˆ

โž– ROLE_INFRASTRUCTURE : ์Šคํ”„๋ง์ด ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋นˆ

 

๐Ÿ‘‰ Ex

if(beanDefinition.getRole() == BeanDefinition.ROLE_APPLICATION){...}

์ด๋Ÿฐ์‹์œผ๋กœ ๋น„๊ตํ•˜๋ฉด ๋œ๋‹ค!

 

[ ๊ธฐ๋ณธ์ ์ธ ์กฐํšŒ ] 

โž–  .getBean(๋นˆ ์ด๋ฆ„, ํƒ€์ž…)

โž– .getBean(ํƒ€์ž…)

 

๐Ÿ‘‰ Ex

Service service = applicationContext.getBean("service" , Service.class); //.getBean("๋นˆ์ด๋ฆ„", ํƒ€์ž…)
Service service = applicationContext.getBean(ervice.class);//.getBean(ํƒ€์ž…)

 

[ ๋™์ผํ•œ ํƒ€์ž…์ด ์žˆ์„ ๊ฒฝ์šฐ ์กฐํšŒ ] 

โž–  ์œ„์˜ ๋ฐฉ์‹์„ ์ด์šฉํ•ด์„œ ์กฐํšŒํ•  ๊ฒฝ์šฐ , ๊ฐ™์€ ๋นˆ ํƒ€์ž…์ด ๋‘˜ ์ด์ƒ ์กด์žฌํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

      ์ด๋•Œ๋Š”get.BeanOfType() ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๋‹น ํƒ€์ž…์˜ ๋ชจ๋“  ๋นˆ์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ‘‰ Ex

Map<String , Repository> beansOfType = applicationContext.getBeanOfType(Repository.class);

 

[ ๋ถ€๋ชจ ํƒ€์ž…์œผ๋กœ ์กฐํšŒ ( ์ตœ๊ณ  ์กฐ์ƒ Object๋กœ ํ•˜๋Š” ๊ฒฝ์šฐ) ] 

 

๐Ÿ‘‰ Ex

Map<String , Repository> beansOfType = applicationContext.getBeanOfType(Object.class);

 

 

 


์Šคํ”„๋ง ๋นˆ์„ ์•„์ง์€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์Šคํ”„๋ง์—์„œ ์ •๋ง ์œ ์šฉํ•œ ๋„๊ตฌ์ธ ๊ฒƒ ๊ฐ™๋‹ค...

๊ฐ•์‚ฌ๋‹˜๊ป˜์„œ xml๊ณผ bean์œผ๋กœ ๋‘˜ ๋‹ค ๋“ฑ๋กํ•˜๋Š” ๋ฒ• ์•Œ๋ ค์ฃผ์…จ๋Š”๋ฐ xml์€ ์ •๋ง์ •๋ง์ •๋ง ๋ณต์žก...