๐Ÿ“– Java&Spring

Looking For Annotation~

bell22 2023. 1. 16. 15:49


Annotation

Annotation ์ž์ฒด๋Š” ์ฃผ์„์ด๋ผ๋Š” ๋œป์ž…๋‹ˆ๋‹ค.
C++/C ๋‹ค๋ฃจ๋‹ค๊ฐ€ Java ์ฝ”๋“œ๋ฅผ ๋ดค์„ ๋•Œ ๊ฐ€์žฅ ์žฌ๋ฐŒ๊ฒŒ ๋ณธ ๋ฌธ๋ฒ•์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์ž‘์„ฑ์ž ์ด๋ฆ„์ด๋‚˜ ๋ฐฐํฌ ๋‚ ์งœ๋งŒ ์ ๋Š”์ค„ ์•Œ์•˜๋˜ ์ฃผ์„์ด...! ๋‹ค๋ฅด๊ฒŒ ๋ณด์˜€๊ธฐ ๋•Œ๋ฌธ์ธ๋ฐ์š”, ํŠน์ง•์„ ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ’ซ


Annotation ํŠน์ง•

  • AOP(Aspect Oriented Programming)์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ๊ตฌ์„ฑํ•ด์ฃผ๋Š” ์ฃผ์„ ๊ธฐ๋Šฅ
  • ์ปดํŒŒ์ผ๋Ÿฌ์—๊ฒŒ ์ฝ”๋“œ์˜ ๋ฌธ๋ฒ• ์—๋Ÿฌ๋ฅผ ์ฒดํฌํ•  ๋•Œ ์“ฐ๋Š” ์ •๋ณด๋ฅผ ์ œ๊ณต
  • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๋นŒ๋“œ/๋ฐฐํฌ ์‹œ ์ฝ”๋“œ๋ฅผ ์ž๋™ ์ƒ์„ฑํ•˜๋„๋ก ์ •๋ณด ์ œ๊ณต
  • ๋Ÿฐํƒ€์ž„์— ์–ด๋–ค ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•˜๋„๋ก ์ •๋ณด๋ฅผ ์ œ๊ณต

 

Annotation ์ •๋ฆฌ (๊ณ„์† ์—…๋ฐ์ดํŠธ ์˜ˆ์ •)

1) @Override

  • ๋ฉ”์†Œ๋“œ๋ฅผ Override ํ•  ๊ฒƒ์ด๋‹ˆ ์ปดํŒŒ์ผ๋Ÿฌ์—๊ฒŒ ์•Œ๋ ค์ค๋‹ˆ๋‹ค
  • ์ƒ์† ๋ฐ›์€ ๋ถ€๋ชจ ํด๋ž˜์“ฐ/์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์—†๋‹ค!?๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ์ค๋‹ˆ๋‹ค
@Override
public void overrideFunc()
{
    System.out.println("Override");
}

2) @Deprecated

  • ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฉ”์†Œ๋“œ๋ผ๋Š” ์ •๋ณด๋ฅผ ์ œ๊ณต
  • Deprecated๋กœ ํ‘œ์‹œํ•ด๋†“์€ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ณณ์ด ์žˆ์œผ๋ฉด ๊ฒฝ๊ณ ํ•ด์ค๋‹ˆ๋‹ค
@Deprecated
public void deprecatedFunc()
{
    System.out.println("Deprecated ์ด์ œ ์•ˆ ์จ์š”");
}

3) @Autowired

@Autowired
@Qualifier("nameAddService")
  • ํ•ด๋‹น ๋ณ€์ˆ˜ ๋ฐ ๋ฉ”์„œ๋“œ์— ์Šคํ”„๋ง์ด ๊ด€๋ฆฌํ•˜๋Š” Bean์„ ์ž๋™์œผ๋กœ ๋งตํ•‘ ํ•ด์คŒ
    • ๋ณ€์ˆ˜ ํƒ€์ž…๊ณผ ์ผ์น˜ํ•˜๋Š” ์ปจํ…์ŠคํŠธ ๋‚ด์˜ Bean์„ ์ฐพ์•„์คŒ
  • ํƒ€์ž…์ด ์ผ์น˜ํ•˜๋Š” Bean์ด ์žˆ์œผ๋ฉด ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์— ์ฃผ์ž…ํ•ด์คŒ (DI)
    • ์ผ๋ฐ˜์ ์œผ๋กœ DI๋ฅผ ์œ„ํ•ด์„œ๋Š” ์ƒ์„ฑ์ž/์ˆ˜์ •์ž ๊ฐ™์€ ๋ฉ”์„œ๋“œ๊ฐ€ ํ•„์š”ํ•˜์ง€๋งŒ @Autowired๋ฅผ ์“ฐ๋ฉด ๋ฉ”์„œ๋“œ๊ฐ€ ์—†์–ด๋„ ์ฃผ์ž… ๊ฐ€๋Šฅ
  • @Resource๋Š” ์ด๋ฆ„์œผ๋กœ ์˜์กด์„ฑ ์ฃผ์ž…! @Autowired๋Š” ํƒ€์ž…์œผ๋กœ ์˜์กด์„ฑ ์ฃผ์ž…
    • ๋™์ผํ•œ Bean ํƒ€์ž…์ด ์žˆ๋‹ค๋ฉด @Qualifier๋ฅผ ๊ฐ™์ด ์‚ฌ์šฉํ•ด์•ผ ํ•จ

compenent-scan Tag

<context:component-scan base-package="test.worldTest">

@Qualifier

  • @Autowired๋กœ ์—ฐ๊ฒฐํ•œ Bean ๋ชฉ๋ก์—์„œ Bean์„ ๊ตฌ๋ณ„ํ•ด์คŒ

'๐Ÿ“– Java&Spring' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Spring Cron Expression  (0) 2023.01.25
StringUtils  (0) 2023.01.18
Intellij) Junit Test Code ์ž‘์„ฑ ์‹œ "Execution failed for task" ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•  (0) 2023.01.09
Web Server vs WAS  (0) 2022.04.25
Spring Framework๋ฅผ ์•Œ์•„๋ณด์ž  (0) 2022.04.22