๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

JAVA/Spring8

Spring ์ปค์Šคํ…€ Annotation (@Target, @Retention) ์ƒˆ๋กœ์šด ํŒ€์— ๋“ค์–ด์™€์„œ ๋ฐฑ์—”๋“œ ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ค๊ฐ€ ์ปค์Šคํ…€ ๋œ ์–ด๋…ธํ…Œ์ด์…˜์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ์–ด๋…ธํ…Œ์ด์…˜๋„ ์ปค์Šคํ…€์ด ๋˜๋‹ค๋‹ˆ..! ์‹ ๊ธฐํ•ด์„œ ์ปค์Šคํ…€ ์–ด๋…ธํ…Œ์ด์…˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋‹ค. @์ปค์Šคํ…€์–ด๋…ธํ…Œ์ด์…˜ ๋ช… ํ”ํžˆ ์•„๋Š” ์–ด๋…ธํ…Œ์ด์…˜์—๋Š” @Controller @Service ๋“ฑ์ด ์žˆ๋Š”๋ฐ, ์ด๋“ค์€ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ(์–ด๋…ธํ…Œ์ด์…˜) ์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค. ์–ด๋…ธํ…Œ์ด์…˜์˜ ๋งŽ์€ ๊ธฐ๋Šฅ ์ค‘ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ปค์Šคํ…€ ํ•œ ๊ฒƒ์ด ์ปค์Šคํ…€ ์–ด๋…ธํ…Œ์ด์…˜์ด๋‹ค. ์ปค์Šคํ…€ ์–ด๋…ธํ…Œ์ด์…˜์€ @Target ๊ณผ @Retention ๋“ฑ meta annotation ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปค์Šคํ…€ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋Ÿฌํ•œ meta annotation ์€ ๋ณดํ†ต ๋‹ค๋ฅธ ์–ด๋…ธํ…Œ์ด์…˜ ์ƒ์„ฑ ์‹œ์—๋„ ํฌํ•จ๋˜๋Š” ์–ด๋…ธํ…Œ์ด์…˜์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋‚ด๊ฐ€ ๋ฐœ๊ฒฌํ•œ ์ปค์Šคํ…€ ์–ด๋…ธํ…Œ์ด์…˜์€ @Target @Retention ๋‘ ๊ฐ€์ง€ ์–ด๋…ธ.. 2023. 9. 19.
[JAVA] Spring Boot ํ™˜๊ฒฝ์—์„œ ํ†ฐ์บฃ ์‚ฌ์šฉํ•˜๊ธฐ 1. Eclipse MarketPlace ์— sts ๊ฒ€์ƒ‰ํ•ด์„œ Spring Tools 4 (aka Spring Tool Suite 4) ์„ค์น˜ 2. File - New - Other - Spring Boot ๊ฒ€์ƒ‰ํ•ด์„œ ์Šคํ”„๋ง ์›น ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ 3. ํ”„๋กœ์ ํŠธ ๊ฒฝ๋กœ ์„ค์ • Spring Boot ์—์„œ๋Š” jsp ํŒŒ์ผ ์ง€์›์„ ์•ˆํ•˜๊ธฐ ๋•Œ๋ฌธ์— jsp ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด jsp ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ์ •ํ•œ ๋‹ค์Œ application.properties ํŒŒ์ผ์— view ๊ฒฝ๋กœ์— ๋Œ€ํ•œ ์„ค์ •์„ ์ถ”๊ฐ€ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. // application.properties server.port=8080 spring.mvc.view.prefix=/WEB-INF/Views/ spring.mvc.view.suffix=.jsp Project ์šฐํด๋ฆญ - Run As.. 2021. 9. 27.
[JAVA] Spring Bean ์‚ฌ์šฉํ•˜๊ธฐ Spring ์„ธํŒ… maven project ์ƒ์„ฑ pom.xml ์— dependency ์ถ”๊ฐ€ : https://mvnrepository.com/ Context.xml ์— Bean ํƒœ๊ทธ ์‚ฌ์šฉํ•ด์„œ ๊ฐ์ฒด ์ƒ์„ฑํ•˜๊ธฐ @Bean : ํ•จ์ˆ˜/๊ฐ์ฒด ํ˜ธ์ถœ ์ž์ฒด๋ฅผ Spring ์ด ํ•˜๋„๋ก ํ•˜๋Š” ์–ด๋…ธํ…Œ์ด์…˜ bean ํƒœ๊ทธ์˜ id : ๋งŒ๋“ค ํ•จ์ˆ˜์˜ ์ด๋ฆ„ bean ํƒœ๊ทธ์˜ class : ํ•จ์ˆ˜์—์„œ ๋ฆฌํ„ดํ•  ๊ฐ’ ์ •์˜ constructor-arg ํƒœ๊ทธ์˜ ref : ์ƒ์„ฑ์ž์˜ ์ธ์ˆ˜ ์ „๋‹ฌ์„ ์œ„ํ•œ ํƒœ๊ทธ Hello.java ์ž‘์„ฑ Factory Pattern ์‚ฌ์šฉ package Pack01; import org.springframework.context.support.GenericXmlApplicationContext; interface Fuel{ Str.. 2021. 9. 24.
[JAVA] Spring ์œผ๋กœ ์ต๋ช… ํˆฌํ‘œ(์„ ๊ฑฐ) ํ”„๋กœ๊ทธ๋žจ ๋งŒ๋“ค๊ธฐ #2 ํˆฌํ‘œ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ(๋ณธ์ธ์ธ์ฆ, ์ค‘๋ณตํˆฌํ‘œํ™•์ธ, ํˆฌํ‘œ ํผ, ํˆฌํ‘œ์ž์™€ ์„ ๊ฑฐ ํ›„๋ณด์ž์˜ ์ •๋ณด ์—…๋ฐ์ดํŠธ)์— ๋Œ€ํ•œ ๊ฒƒ์€ ๋ชจ๋‘ ๊ตฌํ˜„ํ•˜์˜€์ง€๋งŒ ๋ฉ˜ํ† ๋‹˜์˜ ์กฐ์–ธ์œผ๋กœ ๋ช‡ ๊ฐ€์ง€ ๋น ํŠธ๋ฆฐ ๊ธฐ๋Šฅ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. 1. ํˆฌํ‘œ ์ทจ์†Œ ๋ณธ์ธ ์ธ์ฆ ํ›„์— ํˆฌํ‘œ ํผ์œผ๋กœ ์ ‘๊ทผํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ํˆฌํ‘œ ํผ์—์„œ ํˆฌํ‘œ๋ฅผ ์ทจ์†Œํ•˜๊ณ  ํ™ˆ์œผ๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ธฐ๋Šฅ์ด ์—†์—ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์„ ๊ฑฐ ํ›„๋ณด์ž๋ฅผ ๋ดค๋Š”๋ฐ ํˆฌํ‘œํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์ด ์—†๋‹ค๊ฑฐ๋‚˜ ํˆฌํ‘œ๋ฅผ ๋‚˜์ค‘์— ํ•˜๊ณ  ์‹ถ์–ด์ ธ์„œ ํˆฌํ‘œ ํผ์—์„œ ๋น ์ ธ ๋‚˜๊ฐ€๋Š” ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•˜์ง€ ์•Š์•˜๋˜ ๊ฒƒ์ด๋‹ค. ์ƒ๊ฐํ•ด๋ณด๋ฉด ์–ด๋–ค ์‚ฌ์ดํŠธ์—์„œ ์ƒ์„ธ ํŽ˜์ด์ง€์—์„œ ๋ฉ”์ธ ํŽ˜์ด์ง€๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ธฐ๋Šฅ, ๊ทธ๋ฆฌ๊ณ  ํผ์„ ๋„ฃ์€ ํŽ˜์ด์ง€์˜ ๊ฒฝ์šฐ์—๋Š” ํผ ์ž‘์„ฑ์„ ์ทจ์†Œํ•˜๋Š” ๋ฒ„ํŠผ์ด ์žˆ๋Š” ๊ฒƒ์ด ์–ด์ฐŒ๋ณด๋ฉด ๋‹น์—ฐํ•œ๋ฐ ๋ฏธ์ฒ˜ ๊ณ ๋ คํ•˜์ง€ ๋ชปํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ž˜์„œ ํˆฌํ‘œ ํผ์ด ์žˆ๋Š” VoteView.jsp ์—์„œ ํˆฌ.. 2021. 9. 19.
[JAVA] Spring ์œผ๋กœ ์ต๋ช… ํˆฌํ‘œ(์„ ๊ฑฐ) ํ”„๋กœ๊ทธ๋žจ ๋งŒ๋“ค๊ธฐ 1. DB ํ…Œ์ด๋ธ” ๊ตฌ์กฐ ๋ฐ ์ฟผ๋ฆฌ ์ž‘์„ฑ ํ…Œ์ด๋ธ” ์ƒ์„ฑ CREATE DATABASE db01; # ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ use DB01; CREATE TABLE citizen( cid varchar(20) NOT NULL PRIMARY KEY, # cid ์ปฌ๋Ÿผ ์ƒ์„ฑ cname varchar(20), # cname ์ปฌ๋Ÿผ ์ƒ์„ฑ cvote tinyint(1) DEFAULT 0 # cvote ์ปฌ๋Ÿผ ์ƒ์„ฑ ) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_bin; CREATE TABLE president( pid int AUTO_INCREMENT PRIMARY KEY NOT NULL, # pid ์ปฌ๋Ÿผ ์ƒ์„ฑ pname varchar(20), # pname ์ปฌ๋Ÿผ ์ƒ์„ฑ.. 2021. 9. 17.
[JAVA] Spring ๋ฐ์ดํ„ฐ ์ฃผ๊ณ  ๋ฐ›๊ธฐ 1. index.jsp ์ž‘์„ฑํ•˜๊ธฐ Hello World ๋งํฌ1 ๋งํฌ2 ๋งํฌ3 ๋งํฌ4 ๋งํฌ5 ๋งํฌ6 ๋งํฌ7 ๋งํฌ8 url ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ์ดํ„ฐ ๋ณด๋‚ด๊ธฐ 2. Tiger.java ํŒŒ์ผ ์ž‘์„ฑ package Pack01; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframewor.. 2021. 9. 16.
[JAVA] Spring Controller ์‹œ์ž‘ํ•˜๊ธฐ 1. Spring ์ดˆ๊ธฐ ์„ธํŒ… ์ฐธ๊ณ  : https://wz0z30.tistory.com/12 Java Spring ์ดˆ๊ธฐ ์„ธํŒ… (์ˆ˜๋™) 1. Maven Project ์ƒ์„ฑ ์นดํƒˆ๋กœ๊ทธ Internal ๋กœ ์„ค์ •ํ•œ ํ›„ web-app ์„ ํƒ Group id, Artifact id ์„ค์ • -> Finish C:\Users\user\eclipse-workspace\ํ”„๋กœ์ ํŠธ๋ช…\.settings ์— ์ ‘๊ทผ org.eclipse.jdt.core.prefs ํŒŒ์ผ.. wz0z30.tistory.com 2. src > main > java ํด๋” ์ƒ์„ฑ ํ›„ Package ์ƒ์„ฑ > class ํŒŒ์ผ ์ƒ์„ฑ 3. index.jsp ์ž‘์„ฑ Hello World ๋งํฌ1 ๋งํฌ2 ์€ Tiger.java์˜ @RequestMapping("t1") ์„ ์‹คํ–‰ํ•˜๋Š”.. 2021. 9. 16.
[Java] Spring ์ดˆ๊ธฐ ์„ธํŒ… (์ˆ˜๋™) 1. Maven Project ์ƒ์„ฑ ์นดํƒˆ๋กœ๊ทธ Internal ๋กœ ์„ค์ •ํ•œ ํ›„ web-app ์„ ํƒ Group id, Artifact id ์„ค์ • -> Finish C:\Users\user\eclipse-workspace\ํ”„๋กœ์ ํŠธ๋ช…\.settings ์— ์ ‘๊ทผ org.eclipse.jdt.core.prefs ํŒŒ์ผ ์ˆ˜์ • (๋ฒ„์ „ 16์œผ๋กœ ๋ณ€๊ฒฝ) eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=16 org.eclipse.jdt.core.compiler.compliance=16 org.eclipse.jdt.c.. 2021. 9. 15.