[ 스프링부트, 그래들, HelloWorld]STS,Gradle 설치및 WEB MVC 심플예제 간단히 STS 및 Gradle Support Plugin 을설치하여간단히 Spring Boot, Gradle Web 응용프로그램을작성해보자. 0. STS 및 Gradle Support Plugin 설치 -. STS 는 https://spring.io/tools/sts/all 에서다운받은후압축을풀면된다.( D:\ecommerce\ 에복사후압축을풀자 ). -. 그래들 (Gradle) 이란? 다운로드및설치 그래들은빌드툴인데, 빌드란? 자바로프로그램을작성한다고하면자바소스코드가있을것이고그안에서사용되고의존하는다른외부라이브러리가있을것이다. 이를컴파일하고패키징하는과정을빌드라고한다. 우리가알고있는빌드툴에는 Ant, Apache Ivy, Maven 등이있다. Gradle 은 Maven 을대체할수있는빌드, 프로젝트구성 / 관리, 테스트, 배포툴이다. 메이븐이정적인형태의 XML 기반으로작성되어동적인빌드인경우어려움이많이있었다 ( 그래들은빌드스크립트로그루비를사용한다 ). 그래들 (Gradle) 은 AntBuilder 와그루비스크립트를통해 Ant 의역할, 배포스크립트의역할까지도가능하며기존메이븐으로작성한빌드코드를간략하게줄여주고필요에따라쉽게프로그래밍적으로빌드스트립트를작성할수있다. 그루비를공부해야하는부분도있지만현재스프링오픈소스프로젝트, Vert.x 도 gradle 로빌드시스템을사용하고있다. 그래들은위에서언급한것처럼 Grooby 기반의 DSL(Domain Specific Language) 를사용하고의존성기반프로그래밍언어를위한툴로써빌드, 멀티빌드, 의존성관리의다양한방법을제공하며 Gradle Wrapper 를이용하여 Gradle 이설치되지않은곳에서도빌드가가능하다. -. Gradle 설치 - http://gradle.org/downloads/ 에서 binary zip 파일을다운받자. ( 현재는버전 2.10 파일명 : gradle-2.10-bin.zip) - 다운받은파일을 D:\dev-ecommerce 에압축을풀고 gradle-2.10\bin 폴더를윈도우환경변수경로 (Path) 에추가하자.
- CMD( 명령프롬프트 ) 를실행해서 gradle -version 이라는명령을입력해보자. C:\Users\ooo>gradle -version ------------------------------------------------------------ Gradle 2.10 ------------------------------------------------------------ Build time: 2015-12-21 21:15:04 UTC Build number: none Revision: 276bdcded730f53aa8c11b479986aafa58e124a6 Groovy: 2.4.4 Ant: Apache Ant(TM) version 1.9.3 compiled on December 23 2013 JVM: 1.8.0_45 (Oracle Corporation 25.45-b02) OS: Windows 7 6.1 amd64 -. STS 에 Gradle Support Plugin 설치하기 STS 를실행하여 Help -> Dashboard 를클릭하면다음과같은화면이나타나는데 IDE EXTENSIONS 를클릭하자.
아래화면에서 Gradle Support 를선택한후우측하단의 Install 버튼을클릭하자. 1. STS 플러그인을이용한 Gradle 프로젝트를간단히만들어 Spring Boot 를이용하여웹페이지에서확인하는예제를작성해보자. File -> New -> Project -> Gradle -> Gradle Project 를선택하고프로젝트명을 "springbootgradle" 이라고입력하자.( D:\dev-ecommerce\workspace 아래에생성 ) 2. 폴더구조는다음과같다. ( 기본적으로생성되는 org.gradle 패키지는삭제하자 )
3. 폴더에파일을각각만들자. ( 파일의속성에서인코딩을 UTF-8 로하자.) 폴더에서마우스우측버튼 -> New -> File -> 파일명을확장자까지입력 [build.gradle] buildscript { repositories { jcenter() maven { url "http://repo.spring.io/snapshot" maven { url "http://repo.spring.io/milestone" dependencies { classpath("org.springframework.boot:spring-boot-gradleplugin:1.3.1.release") apply plugin: 'java' apply plugin: 'war' apply plugin: 'spring-boot' jar { basename = 'exam-spring-boot' version = '0.1.0' repositories { mavencentral() maven { url "http://repo.spring.io/libs-milestone" configurations { providedruntime dependencies { compile ("org.springframework.boot:spring-boot-starter-web") providedruntime("org.apache.tomcat.embed:tomcat-embed-jasper") [compilejava, compiletestjava]*.options*.encoding = 'UTF-8'
task wrapper(type: Wrapper) { gradleversion = '2.10' 프로젝트에서마우스우측버튼 -> Gradle -> Refresh Dependencies 를클릭하여필요한 jar 파일을다운로드하자. [src/main/resources/application.properties] server.context-path=/springbootgradle server.port=8080 spring.mvc.view.prefix=/web-inf/jsp/ spring.mvc.view.suffix=.jsp [Application.java] package hello; import java.util.arrays; import org.springframework.boot.springapplication; import org.springframework.boot.autoconfigure.springbootapplication; import org.springframework.context.applicationcontext; /* SpringBoot 1.2.0.RELEASE 부터추가된 @SpringBootApplication 어노테이션은아래의모든어노테이션을포함한다. @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @Configuration : 어플리케이션컨텍스트에대한자바빈을정의하는소스 클래스라는것을알림 @EnableAutoConfiguration : 스프링부트에게클래스패스세팅, 다른자바빈, 기차설정등에의해자바빈을 ADD 하라고알림 @ComponentScan : hello 패키지의자바빈, 설정, 서비스등을자동스캔하라는 의미 */ @SpringBootApplication public class Application {
public static void main(string[] args) { SpringApplication.run(Application.class, args); [HelloController.java] package hello; import org.springframework.stereotype.controller; import org.springframework.ui.model; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.requestparam; @Controller public class HelloController { @RequestMapping("/hello") public String greeting(@requestparam(value="name", required=false, defaultvalue="world") String name, Model model) { model.addattribute("name", name); return "hello"; [/src/main/webapp/web-inf/jsp/hello.jsp] webapp/web-inf/jsp 폴더는생성하자. <html> <body> <h1>hello~ ${name</ha> </body> </html> 4. 명령프롬프트 (CMD) 를실행해서프로젝트루트로이동하여아래명령을실행하여빌드 & 실행하자. D:\dev-ecommerce\workspace\springbootgradle >gradle build && java -jar build/libs/examspring-boot-0.1.0.jar [ 결과화면 ]
빌드를한후프로젝트루트아래에 build 폴더가생기니확인하자. 5. 이제 WAS 가 localhost:8080 에웹서비스를시작했으니브라우저로확인해보자.
위예제에서 application.properties 파일을이용하여뷰이름을해석했는데, 자바설정을이용하려면 Application.java 파일에아래메소드를만들면된다. [application.properties] server.context-path=/springbootgradle server.port=8080 [Application.java] package hello; import java.util.arrays; import org.springframework.boot.springapplication; import org.springframework.boot.autoconfigure.springbootapplication; import org.springframework.context.applicationcontext; import org.springframework.context.annotation.bean; import org.springframework.web.servlet.view.internalresourceviewresolver; @SpringBootApplication public class Application { public static void main(string[] args) { SpringApplication.run(Application.class, args); @Bean public InternalResourceViewResolver setupviewresolver() { InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setprefix("/web-inf/jsp/"); resolver.setsuffix(".jsp");
return resolver;