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. ์ด์ 1 ๋ค์