web developer๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป

[Spring] Spring Framework ์–ด๋…ธํ…Œ์ด์…˜ Annotation ์ •๋ฆฌ ๋ณธ๋ฌธ

Spring

[Spring] Spring Framework ์–ด๋…ธํ…Œ์ด์…˜ Annotation ์ •๋ฆฌ

natrue 2020. 9. 2. 10:56
728x90

 

 ์˜์กด์„ฑ ์ฃผ์ž… ์šฉ๋„  

 

@Required 

ํ•„์ˆ˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ์„ค์ •, ์ฝ”๋“œ ๋‚ด์— ํ”„๋กœํผํ‹ฐ ์„ค์ • ๋ฉ”์„œ๋“œ์— @Required ์–ด๋…ธํ…Œ์ด์…˜์„ ๋ถ™์ธ๋‹ค.

@Required
public void setName(String name) {
	this.name = name;
}

 

 

@Autowired

์˜์กด๊ด€๊ณ„๋ฅผ ์ž๋™์œผ๋กœ ์„ค์ •ํ•ด์ฃผ๋Š” ์–ด๋…ธํ…Œ์ด์…˜, Controllerํด๋ž˜์Šค์—์„œ DAO๋‚˜ Service์— ๊ด€ํ•œ ๊ฐ์ฒด๋“ค์„ ์ฃผ์ž…์‹œํ‚ฌ ๋•Œ ๋งŽ์ด ์‚ฌ์šฉ.

@Autowired
private DefaultBeanValidator beanValidator;

 

 

@Inject 

๊ฐ์ฒด์˜ ํƒ€์ž…์„ ๋ณด๊ณ  ์ฃผ์ž…๋  ํด๋ž˜์Šค๋ฅผ ํƒ์ƒ‰ํ•œ๋‹ค.

@Autowired์™€ ์ฐจ์ด์ ์€ 

@Autowired๋Š” ์Šคํ”„๋ง์—์„œ ์ง€์›ํ•˜๊ณ , @Inject์€ ์ž๋ฐ”์—์„œ ์ง€์›ํ•˜๋Š” ์–ด๋…ธํ…Œ์ด์…˜์ด๋‹ค. 

 

 

 ์ปจํŠธ๋กค๋Ÿฌ ๊ด€๋ จ  

 

@Controller

: @Controller์–ด๋…ธํ…Œ์ด์…˜์€ MVCํŒจํ„ด์—์„œ Controllerํด๋ž˜์Šค์— ์„ ์–ธ, @Component์–ด๋…ธํ…Œ์ด์…˜์„ ์จ๋„ ์ƒ๊ด€์—†๋‹ค. ํ•˜์ง€๋งŒ @Controller ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•จ์œผ๋กœ @RequestMapping ๋“ฑ์˜ ์ถ”๊ฐ€ ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

@Controller
public class AdmController {

 

 

@RequestMapping

: @RequestMapping ์–ด๋…ธํ…Œ์ด์…˜์€ Spring ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ฐ€์žฅ ์ž์ฃผ ์‚ฌ์šฉ 

http request๋กœ ๋“ค์–ด์˜ค๋Š” url ํŠน์ • controller ํด๋ž˜์Šค๋‚˜ ๋ฉ”์„œ๋“œ๋กœ ์—ฐ๊ฒฐ์‹œํ‚ค๋Š” ์—ญํ• 

controller์— class์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  ํŠน์ • method์— ์ ์šฉ ๊ฐ€๋Šฅ 

@RequestMapping(value="/adm")
public class AdmController {

 

 

@PathVariable

: URL ๊ฒฝ๋กœ์— ๋ณ€์ˆ˜๋ฅผ ๋„ฃ์–ด์ฃผ๋Š” ๊ธฐ๋Šฅ 

@RequestMapping(value="/{page}")
public String onlyPageFowarding(@PathVariable String page,Model model){
	return "ttest/adm/"+page;
}

 

 

@ResponseBody
: ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ HTTP ์š”์ฒญ์˜ body ๋‚ด์šฉ์œผ๋กœ ๋งคํ•‘ํ•˜๋Š” ์—ญํ• ์„ ํ•จ

@RequestBody

: @RequestBody์— ๋ถ™์€ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” HTTP ์š”์ฒญ์˜ ๋ณธ๋ฌธ body๋ถ€๋ถ„์ด ์ž๋ฐ” ๊ฐ์ฒด ๊ทธ๋Œ€๋กœ ์ „๋‹ฌ 

@RequestMapping(value="/bi200.do")
@ResponseBody
public Map<String, Object> exSelect (
	@RequestBody List<HashMap<String, String>> exc,

 

์›นํŽ˜์ด์ง€์—์„œ json์œผ๋กœ request ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ๋“ค์„ java์—์„œ ๋ฐ›์œผ๋ ค๋ฉด java object๋กœ์˜ ๋ณ€ํ™˜์ด ํ•„์š”ํ•˜๋ฉฐ

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ response ์‹œ์—๋„ java object์—์„œ json์œผ๋กœ ๋ณ€ํ™˜์ด ํ•„์š”ํ•˜๋‹ค.

์ด๋Ÿฌํ•œ ์ž‘์—…๋“ค์„ ํ•ด์ฃผ๋Š” ์–ด๋…ธํ…Œ์ด์…˜์ด ๋ฐ”๋กœ @RequestBody์™€ @ResponseBody์ด๋‹ค. 

์ปจํŠธ๋กค๋Ÿฌ์— ๋‘ ์–ด๋…ธํ…Œ์ด์…˜์„ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด, JSON์ด๋‚˜ key/value ๋ฐฉ์‹ xml ๋“ฑ์œผ๋กœ ์†ก์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

@RequestParam

: ๋‹จ์ผ HTTP ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ method ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋„ฃ์–ด์ฃผ๋Š” ์–ด๋…ธํ…Œ์ด์…˜

๊ฐ€์ ธ์˜ฌ ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ ์ด๋ฆ„์„ @RequestParam ์–ด๋…ธํ…Œ์ด์…˜์˜ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ง€์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. 

@RequestMapping(value="/admUpdateView.do", method=RequestMethod.POST)
public @ResponseBody Map<String, Object> adm03UpdateView(
	@RequestParam("unId") String unId,
	@ModelAttribute("searchVO") UserDefaultVO userSearchVO,

 

 

 

@ModelAttribute

@RequestParam๊ณผ ๋น„์Šทํ•˜๊ณ  

Controller ๋ฉ”์†Œ๋“œ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋‚˜ ๋ฆฌํ„ด ๊ฐ’์„ Model ๊ฐ์ฒด์™€ ๋ฐ”์ธ๋”ฉํ•˜๊ธฐ ์œ„ํ•œ ์–ด๋…ธํ…Œ์ด์…˜



 ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ด€๋ จ  

 

@Service

: Service ๋ ˆ์ด์–ด ํด๋ž˜์Šค๋“ค์— ์‚ฌ์šฉ๋˜๋Š” ์–ด๋…ธํ…Œ์ด์…˜, @Component์–ด๋…ธํ…Œ์ด์…˜์„ ์จ๋„ ์ƒ๊ด€์—†๋‹ค.

@Service์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ํ•ด๋‹น ํด๋ž˜์Šค๊ฐ€ ์„œ๋น„์Šค ๋ ˆ์ด์–ด ํด๋ž˜์Šค๋ผ๋Š” ๊ฒƒ์„ ๋ช…ํ™•ํžˆ ํ•จ  

@Service("admService")
public class AdmServiceImpl extends EgovAbstractServiceImpl implements AdmService {

 

 

@Repository

: DAO์— ํŠนํ™”๋œ ์–ด๋…ธํ…Œ์ด์…˜, @Component์–ด๋…ธํ…Œ์ด์…˜์„ ์จ๋„ ์ƒ๊ด€์—†๋‹ค. 

 

 

 

 

 

 

์ฐธ๊ณ  : medium.com/@aaaalpooo/%EB%A7%8E%EC%9D%B4-%EC%93%B0%EB%8A%94-spring-framework-annotation-%EC%A0%95%EB%A6%AC-summary-of-annotations-frequently-used-in-spring-framework-935e1c1a4877