@Autowired, @Component, @Service, @Repository ๋“ฑ ์Šคํ”„๋ง ์–ด๋…ธํ…Œ์ด์…˜์— ๊ด€ํ•ด..
ยท
Languages | Frameworks/Spring
Spring ๊ณต๋ถ€๋ฅผ ํ•˜๋‹ค๋ณด๋ฉด, ํ•ด๋‹น ์–ด๋…ธํ…Œ์ด์…˜๋“ค์„ ๋งˆ์ฃผํ•  ์ˆ˜ ์žˆ์„๊ฒƒ์ด๋‹ค. @Autowired๋Š” ์ปจํ…Œ์ด๋„ˆ์— ๋“ฑ๋ก๋œ Bean์„ ์ฃผ์ž…๋ฐ›์•„ ์‚ฌ์šฉํ•˜๋Š” ์–ด๋…ธํ…Œ์ด์…˜(์˜์กด์„ฑ ์ฃผ์ž… ๋ฐฉ์‹์—๋Š” 3๊ฐ€์ง€ ๋ฐฉ์‹์ด ์žˆ๋Š”๋ฐ, ์ƒ์„ฑ์ž ์ฃผ์ž… ๋ฐฉ์‹์„ ๊ถŒ๊ณ ํ•จ) **์ƒ์„ฑ์ž ์ฃผ์ž… ๋ฐฉ์‹ ์˜ˆ์‹œ** @Component public class WebProject { private Developer developer; @Autowired public WebProject(Developer developer) { this.developer = developer; } } @Component๋Š” DI(์˜์กด์„ฑ ์ฃผ์ž…)์„ ํ†ตํ•ด ํ•ด๋‹น ํด๋ž˜์Šค๋ฅผ Bean์œผ๋กœ ๋“ฑ๋กํ•ด์ฃผ๋Š” ์–ด๋…ธํ…Œ์ด์…˜ (@Service, @Controller, @Repository ๋“ฑ๋“ฑ)
[Springboot] Spring-security ์ ์šฉ๊ธฐ(1) - ์ผ๋ฐ˜๋กœ๊ทธ์ธ
ยท
Languages | Frameworks/Spring
Springboot Maven ํ™˜๊ฒฝ์—์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ ์šฉํ•˜๋Š”๋ฒ•์„ ๋…ธํŠธํ•˜์˜€์Šต๋‹ˆ๋‹ค. 1. pom.xml ์—์„œ ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค(ํ•„์ž๋Š” security, jpa, mysql, lombok, Mustache ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•จ) org.springframework.boot spring-boot-starter-security org.springframework.boot spring-boot-starter-data-jpa com.mysql mysql-connector-j runtime org.projectlombok lombok true org.springframework.security spring-security-test test org.springframework.boot spring-boot-starter..
[Spring] ์„ธ์…˜ ํƒ€์ž„์•„์›ƒ
ยท
Languages | Frameworks/Spring
session์€ ์ƒ์„ฑํ• ๋•Œ๋งˆ๋‹ค ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, session.invalidate()๋ฅผ ํ˜ธ์ถœํ•ด์„œ ์‚ญ์ œํ•˜์ง€ ์•Š์œผ๋ฉด ๊ณ„์† ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์Œ“์ด๊ฒŒ ๋˜์–ด ๋‚˜์ค‘์—” ๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ณผ๋ฅผ ์œ ๋ž˜ํ•œ๋‹ค.(๋ณดํ†ต ๋กœ๊ทธ์•„์›ƒ ๋ˆ„๋ฅด์ง€ ์•Š๊ณ  ๋ธŒ๋ผ์šฐ์ € ์ข…๋ฃŒํ• ๋•Œ) ์„ธ์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์„ฑ๋˜๋Š”๋ฐ, ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ๊ฐ€ ๋ฌดํ•œํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ผญ ํ•„์š”ํ•œ ๊ฒฝ์šฐ๋งŒ ์ƒ์„ฑํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. (10๋งŒ๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธํ•˜๋ฉด 10๋งŒ๊ฐœ์˜ ์„ธ์…˜์ด ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์ž„) ๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด์„  ์ข…๋ฃŒ ์‹œ์ ์„ ์ •ํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์–ด๋–ป๊ฒŒ ์ •ํ•˜๋ฉด ์ข‹์„๊นŒ? ๊ฐ€์žฅ ๋‹จ์ˆœํ•˜๊ฒŒ ์ƒ๊ฐํ•ด๋ณด๋ฉด, ์„ธ์…˜ ์ƒ์„ฑ ์‹œ์ ์œผ๋กœ๋ถ€ํ„ฐ 30๋ถ„ ์ •๋„๋กœ ์žก์œผ๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋ฌธ์ œ๋Š” 30๋ถ„์ด ์ง€๋‚˜๋ฉด ์„ธ์…˜์ด ์‚ญ์ œ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐ€๋ น ๊ฒŒ์ž„์„ ํ•˜๋‹ค๊ฐ€ 30๋ถ„์ด ์ง€๋‚˜๋ฉด ๊ฒŒ์ž„์ด ๊บผ์ง€๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ๋” ๋‚˜์€ ๋Œ€์•ˆ์€ ์„ธ์…˜ ์ƒ์„ฑ ์‹œ..
[Spring] jsessionid๋ฅผ url์— ๋…ธ์ถœ์•ˆ์‹œํ‚ค๊ธฐ(์ฟ ํ‚ค๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์„ธ์…˜ ์œ ์ง€)
ยท
Languages | Frameworks/Spring
application.properties์— server.servlet.session.tracking-modes=cookie ์ถ”๊ฐ€!
Cookie๋ฅผ ์‚ฌ์šฉํ•œ ๋กœ๊ทธ์ธ/๋กœ๊ทธ์•„์›ƒ(์„ธ์…˜์ฟ ํ‚ค) + ๋ณด์•ˆ
ยท
Languages | Frameworks/Spring
์„ธ์…˜์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ข…๋ฃŒ๋˜๊ธฐ ์ „๊นŒ์ง€ ์›น๋ธŒ๋ผ์šฐ์ €์— ์ฟ ํ‚ค์ •๋ณด๊ฐ€ ๋‚จ์•„์žˆ์–ด์„œ ํ•œ๋ฒˆ ๋กœ๊ทธ์ธ ํ•œ ํ›„์—๋Š” ๋กœ๊ทธ์•„์›ƒ ํ›„์— ์ถ”๊ฐ€์ ์ธ ์ •๋ณด์ž…๋ ฅ์—†์ด ๋ฐ”๋กœ ๋กœ๊ทธ์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค. @GetMapping("/login") public String loginForm(@ModelAttribute("loginForm") LoginForm form) { return "login/loginForm"; } @PostMapping("/login") public String login(@Valid @ModelAttribute LoginForm form, BindingResult bindingResult, HttpServletResponse response) { if (bindingResult.hasErrors()) { return "..